题目描述
这是一个在线测试网络延迟的平台,路由器中经常会见到。无任何安全措施,尝试获取 flag。
Solution
打开网页,可以看到后端源代码:
后端没有任何防护,直接调用了exec()
执行系统命令,这里会产生命令注入漏洞。
对于命令执行漏洞,我们有一些常见的连接符总结:
连接符 | 举例 | 效果 |
---|---|---|
; |
A;B |
先执行 A,再执行 B |
& |
A&B |
先执行 A 再执行 B,如果 A 执行失败,还会继续执行 B |
| |
A|B |
先执行 A 再执行 B,不管 A 成功与否都会去执行 B |
&& |
A&&B |
A 执行成功,然后才会执行 B |
|| |
A||B |
A 执行失败,然后才会执行 B |
我们可以输入:
0.0.0.0 | ls
我们查看一下当前目录下这个奇怪的文件:
0.0.0.0 | cat 112211812210872.php
文件没有内容。注意,这是在服务器里的文件,我们可以试一试用浏览器访问:
浏览器访问也是空白一片。这里可能是存在编码问题,我们 base64 编码一下注入的命令:
0.0.0.0 | cat 112211812210872.php | base64
把它解码出来即可得到 Flag: