rsbo-1 和 rsbo-2 writeup
这两道题的文件是一样的,不过一个没要求getshell,一个要求getshll
rsbo-1防护机制:只开启了堆栈不可执行题目hint: ROP, open, read很明显要要用ROP调用执行open()函数打开flag文件 然后用read()函数读取文件ida反编译代码**
它先执行init函数 ,打开“/home/ctf/flag”文件,然后读到buf上,再用随机数将buf的内容破坏,最后用memset将buf的内容清零。然后执行read_80_bytes()函数,这里存在溢出点,具体需要填充的字节为108,这个函数读取0x80个字节的内容到v5上,然后将返回值赋给v8,接下来的一个fo
rop 和 rop2 writeup
题目来源:国外的一个ctf平台hackme
rophint: ROP buffer overflow防护机制:
拖到IDA反编译一下
可以看到有很多函数 ,不管是用到的还是没用的都有,说明它编译时用的是静态连接我们可以通过ROPgadget 来直接构造ropchain命令为 ROPgadget –binary rop –ropchain
栈的大小可以通过peda的pattern search 来找到先生成 长度为100的字符串 pattern create 100然后执行程序
栈的大小为12exp:
from pwn import *
from struct import pa