pwn做题经历之ret2text

ret2text

将二进制(32字节)文件托入ida

pwn做题经历之ret2text_第1张图片

F5显示出代码的c源码

pwn做题经历之ret2text_第2张图片

可见解题关键是vulnerable()函数

pwn做题经历之ret2text_第3张图片

漏洞十分明显gets栈溢出

gets读入数据长度不受限制

在虚拟机用gdb ret2text

run

输入8个A

然后进入vulnerable函数

pwn做题经历之ret2text_第4张图片

ebp-eax=10(16进制)=16(10进制)

ebp本身有4个字节(32字节程序)

所以payload应该为16+4个字符+shell地址

pwn做题经历之ret2text_第5张图片

payload=b'A'*16+b'B'*4+p32(0x08048522)

pwn做题经历之ret2text_第6张图片

成功得到shell

你可能感兴趣的:(linux)