ret2libc (有system有binsh)

题目来源:https://github.com/ctf-wiki/ctf-challenges/tree/master/pwn/stackoverflow/ret2libc/ret2libc1

查看保护,只是开了nx(不可执行内存保护)用于防御缓冲区溢出等代码注入攻击

同时还知道是32位架构。

拖入ida

代码很简单,明显的栈溢出漏洞,gets可以无限输入,但是s的空间有限,ida中显示的是100,但是由于栈对齐等很多原因导致这个数字有时不正确。最好就是用gdb动态调试一番

看他的溢出点

可以cyclic -l daab 也可以

结果都一样 112 ida这次不准。

偏移有了 从看得见system函数,ok直接用就行了,用plt表上的 ,因为它会直接跳转并调用它。至于为啥不能用got表的 我觉得这是第一次执行,表里啥也没有。反正都知道plt它是个跳板直接就到那个函数了。

binsh在ida用shift+F12即可找到

脚本很简单,sys覆盖到返回地址后它本身有个返回地址的操作,总之不重要,随便啥覆盖就行,知道32位一个返回地址占4字节就OK ,binsh作为参数传入sys即可。

另外,ROPgadget也可以查找