题目描述

这是一个在线测试网络延迟的平台,路由器中经常会见到。无任何安全措施,尝试获取 flag。

Solution

打开网页,可以看到后端源代码:

1.png

后端没有任何防护,直接调用了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

我们可以输入:

  1. 0.0.0.0 | ls

2.png

我们查看一下当前目录下这个奇怪的文件:

  1. 0.0.0.0 | cat 112211812210872.php

3.png

文件没有内容。注意,这是在服务器里的文件,我们可以试一试用浏览器访问:

4.png

浏览器访问也是空白一片。这里可能是存在编码问题,我们 base64 编码一下注入的命令:

  1. 0.0.0.0 | cat 112211812210872.php | base64

5.png

把它解码出来即可得到 Flag:

6.png