pwn——basic rop
(ret2shellcode):
老规矩,先checksec一下:
发现啥都没开
放入ida中:
查看源代码发现存在get函数,存在溢出
查找控制台,发现没有,当然题目已经告诉没有了,但是在这里我们发现了一个函数strncpy,
它的功能就是将第二个参数里的值按第三个参数大小复制到第一个参数里面,进入buf2里查看,发现buf2在bss段里:
在这里我们通过gdb调试看这个段的一些属性,这里说明一下,bss段是ELF文件里面的一个特殊段,一般用于存放一些临时变量,所以在文件未运行是不会为其分配地址的,所以要查看bss段必须让程序运行才可以,随便下个断点,然后查看
与bss段地址(0804A080)对照发现
r - read
w - write
x - execute
具备可执行权限,所以思路有了,大致是:
1.建立控制台
2.找出偏移量
3.输入shellcraft并将返回值溢出为buf2
如何确定偏移量可参考
https://blog.youkuaiyun.com/taopaode/article/details/104766090
下面上exp:
这里偷懒没有计算偏移量,是一种佛系写法,大家不要学笔者
正当的写法应该是这样的: