[PWN]安恒杯2019.2 filesystem

之前一直玩逆向,鉴于逆向和pwn都算同一类,寒假花了点时间补了下。

由于自己太菜,被几个函数误导了好久。。。。最后到点刚好解出来,没

能来得及提交。。。被自己蠢哭了

[PWN]安恒杯2019.2 filesystem_第1张图片

main函数很简单,各种菜单输入匹配,一眼就看到个B4cKd0oR

可疑的很!更进去看看是啥

[PWN]安恒杯2019.2 filesystem_第2张图片

看到个system,那不是简单了,立马输入B4cKd0oR,键入ls命令

程序返回了服务器上的文件目录,看到一个flag.txt!!

那直接cat flag.txt不就完了?

当然不行,read函数从标准流中指读取2字节。还不能输入sh开启子shell

欧霍,完蛋。

再看看主函数

格式串漏洞吗?仔细观察程序的其他逻辑,并没又发现可以利用的地方。

但是格式串是个思路。

[PWN]安恒杯2019.2 filesystem_第3张图片

checksec选项似乎有蹊跷,他也使用了输入缓冲区的地址作为参数

跟进函数

[PWN]安恒杯2019.2 filesystem_第4张图片

逻辑很清楚,首先接受输入索引,检测是否这个文件。

然后通过文件内容构造shell命令获得文件的MD5校验和

snprintf函数显然是个格式串漏洞,%s并没有过滤文件内容

我们选择Edit

选项构造payload

[PWN]安恒杯2019.2 filesystem_第5张图片

封闭 双引号分号间隔字符串即可。

 

你可能感兴趣的:(Pwn,Reverse,C)