可见是栈溢出,老'\0'绕过比较了,需要构建ROP链,泄露libc靠write 四、脚本 from pwn import * from LibcSearcher import * context(os='linux', arch='amd64', log_level='debug') ru=lambda x:io.recvuntil(x) rl=lambda :io.recvline() sla=lambda x,y:io.sendlineafter(x,y) sl=lambda x:io.s...
看到程序先例行检查一下 可以看到开启了canary和nx保护,需要注意的是这个acnary 将程序放入ida中shift+f12 没有关键性函数。我们进入main函数中 在main的gift程序里面我们可以看到明显的格式字符串漏洞,printf没有进行限定输入,所以我们可以通过这个程序获取到canary的值 我们进入程序试验一下,发现当第六个偏移的时候出现...
可能是LibcSearch有点拉了,还好有lemon师傅给我提供了一些指导[可以用patchelf去改程序依赖的libc库然后调试]。 一开始弄栈结构的时候又有点糊涂了,简单写一下 xxxxxxxx# 垃圾数据xxxxxxxx xxxxxxxx p_system# 返回地址p_system的返回地址 p_system的参数1 参数2 ... exp: pwnimport*fromLibcSearcher.LibcSearcheri...