angr-doc 3: Solver Engine
求解引擎 Solver Engine angr的能力不仅体现在它是一个模拟器上,也体现在它能够使用被称为符号变量的方式执行。我们可以说一个变量拥有一个符号,这个符号只要一个名字就能生效,而不是说一个变量拥有一个确实的数值。然后对符号变量执行算术操作就产生了由操作构成的树(在编译原理中它的术语是语法抽象树或者AST)。AST可以被翻译成能被一个SMT…
angr-doc 2: Loading a Binary
载入一个二进制文件 Loading a Binary 在上一章,我们初次尝试了angr的载入设施——你加载了/bin/true,并且在不加载共享资源库的同时再次加载了它。你也看到了像proj.loader等angr能做的事情。现在,我们将深入这些接口的细节,并且了解我们能通过它们获取到的信息。 装载器 The Loader 让我们加载example…
Writeup for RealWorldCTF2021 Crypto
RealWorld CTF 2021 Crypto 这次比赛有两道crypto,都是ECC相关的,第一道由于之前不了解Demytko体系,比赛期间并未找到paper,未能作出,赛后看了7feilee师傅发的paper才复现出来,第二题倒比较简单,分析出曲线的表达式然后发现在模N上是线性的即可解出。 Old Curse 这题使用的攻击方式是这篇pap…
pwn随机数漏洞
pwn随机数漏洞 PWN中通常使用srand()和rand()配合使用来设置伪随机数。通常当我们输入的数可以覆盖到srand()中的值时,我们可以预测rand()产生固定序列。 关于rand()和sand() rand() rand()函数是使用线性同余法生成随机数,因为其周期特别长,所以在一定范围内可以看成随机的。但每次生成都是固定的序列 我们使…
pwn动态链接库
pwn动态链接库 在众多ROP方法中,重点是要找到system函数的地址来进行ROP,而有的elf源文件中并没有system函数,这时就可以利用libc system 函数属于 libc,而 libc.so 动态链接库中的函数之间相对偏移是固定的。 即使程序有 ASLR 保护,也只是针对于地址中间位进行随机,最低的 12 位并不会发生改变。 所以如…
thumbnail
PLT&GOT
Linux动态链接 一个比喻:发布的文章里复制别人的文字,属于静态链接。给出别人文章的链接,属于动态链接。 Linux下的动态链接是通过PLT&GOT 来实现的 动态链接每个函数需要两个东西: 1.用来存放外部函数地址的数据段 2.用来获取数据段记录的外部函数地址的代码 对应两个表。存放外部的函数地址的数据表为GOT表;存放额外代码的表为P…
thumbnail
Kernel_pwn 入门
kernel pwn的入门学习 1.前置知识 1.1目标文件 kernel pwn题会提供编译好了的内核文件bzImage、文件系统镜像和qemu启动脚本,漏洞点一般位于.ko文件(驱动模块文件)中,该文件允许将内核的功能模块化, 能够方便地添加或删除内核的功能,因此这类文件是便于出题人动手脚的地方,我们要分析的就是这类二进制文件。 寻找用于ROP…
angr-doc 1: Top Level Interfaces
顶层接口 Top Level Interfaces 开始使用angr的第一步是将一个二进制文件加载到一个项目中。我们使用/bin/true为例。 >>> import angr >>> proj = angr.Project('/bin/true') 在angr中,我们通过项目控制一切。你可以使用项目在你…
thumbnail
*CTF2020 writeup by 天璇Merak
*CTF By 天璇Merak Web lottery ECB按照块加密,前后块不相关,开多个用户,把用户A的enc前两块,用户B的 enc后三块拼起来,由于json同名变量覆盖特性,可以使得用户A的lottery为用户B充钱 import requests import string import random import base64 url…
thumbnail
RoarCTF(安全客转载)
RoarCTF By 佛跳墙 WEB ezsql 实现注入。 #coding=utf-8 import requests import threading import string import time import sys pt = '{}0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJK…