之前一直玩逆向,鉴于逆向和pwn都算同一类,寒假花了点时间补了下。
由于自己太菜,被几个函数误导了好久。。。。最后到点刚好解出来,没
能来得及提交。。。被自己蠢哭了
文章图片
main函数很简单,各种菜单输入匹配,一眼就看到个B4cKd0oR
可疑的很!更进去看看是啥
文章图片
看到个system,那不是简单了,立马输入B4cKd0oR,键入ls命令
程序返回了服务器上的文件目录,看到一个flag.txt!!
那直接cat flag.txt不就完了?
当然不行,read函数从标准流中指读取2字节。还不能输入sh开启子shell
欧霍,完蛋。
再看看主函数
文章图片
格式串漏洞吗?仔细观察程序的其他逻辑,并没又发现可以利用的地方。
但是格式串是个思路。
文章图片
checksec选项似乎有蹊跷,他也使用了输入缓冲区的地址作为参数
【Pwn|[PWN]安恒杯2019.2 filesystem】跟进函数
文章图片
逻辑很清楚,首先接受输入索引,检测是否这个文件。
然后通过文件内容构造shell命令获得文件的MD5校验和
snprintf函数显然是个格式串漏洞,%s并没有过滤文件内容
我们选择Edit
选项构造payload
文章图片
封闭 双引号分号间隔字符串即可。
推荐阅读
- c/c++|有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代...
- C/C++|C/C++ basis 02
- Qt实战|Qt+OpenCV联合开发(二十一)--图像翻转与旋转
- Qt实战|Qt+OpenCV联合开发(十四)--图像感兴趣区域(ROI)的提取
- Qt实战|Qt+OpenCV联合开发(十三)--通道分离与合并
- opencv|Qt+OpenCV联合开发(十六)--图像几何形状绘制
- Qt实战|Qt+OpenCV联合开发(十七)--随机数与随机颜色
- SNAT的MASQUERADE地址选择与端口选择
- IPTABLES的连接跟踪与NAT分析
- IPVS分析