一道web一血题,9次尝试差点最后栽跟头了
![](https://img-blog.csdnimg.cn/img_convert/3a469d6acfb3444a84961656333962f9.png)
环境打开是一个html页面,并且有一个简单的登录框
![](https://img-blog.csdnimg.cn/img_convert/713dc9c76daa4a0bbc406a3d5930b5ac.png)
抓包看一下,post中username=admin&password=passwd&login=login,猜测这里login=login可能是一个命令,改一下看看
![](https://img-blog.csdnimg.cn/img_convert/19eb80c6d7ab433681e75265c1691074.png)
修改login=echo "123",发包后回显证实了猜测,这里可以执行命令
![](https://img-blog.csdnimg.cn/img_convert/f52da70cbb7e4ce7abe1ddd07db3ace1.png)
接下来就是ls查看文件列表,找到了flag的位置
![](https://img-blog.csdnimg.cn/img_convert/61a29dc81ef24b26a8e43413260c3a37.png)
然后就是查看,这里就到了重点
![](https://img-blog.csdnimg.cn/img_convert/db5a9d6172f044729240c30ae73ea838.png)
很明显是有过滤的,那linux常见读文件的命令cat、tail、nl、less、head挨个试一遍,发现这个绕过是“真简单”啊,直接拿到flag。
![](https://img-blog.csdnimg.cn/img_convert/5a7bd83606ec41d3962691f61a310c37.png)
然后提交flag发现一直错误,重启环境、提交几次之后发现不对劲,这个flag是假的……
后来想到有一个命令能以八进制输出文件的内容,od命令,就试了一下,具体用法在这od命令
![](https://img-blog.csdnimg.cn/img_convert/d4740e8e68c746bfb8599f74e8220aa5.png)
效果还不错,这次这个flag是对了
后来再尝试的时候,发现burp可以直接扫出来命令注入
![](https://img-blog.csdnimg.cn/img_convert/882f583c6ff0478794e87b3f391dfe69.png)
不知道这道题还有没有别的解法了……