Command Injection 命令注入丨DVWA

Command Injection

用户可以在命令注入模块输入一个 IP 地址,然后该模块 ping 该地址并将结果返回给用户。这类功能可能常常出现在一些服务型的网站中。

然而,这类功能的本质是把命令与用户输入的字段进行组合。因此,用户可以通过构造特殊的输入来达到入侵目的。其实这点似乎有点类似 SQL 注入。


思路

在 Windows 或 Linux 的命令行界面,是可以使用 &&|| 等逻辑运算符的,因此,利用这种漏洞的思路就显而易见咯。
[cc lang = “bash” escaped = “true”]
ping 127.0.0.1 || ipconfig
ping 127.0.0.1 | ipconfig
ping 127.0.0.1 && ipconfig
ping 127.0.0.1 & ipconfig
ping 127.0.0.1|ipconfig
ping 127.0.0.1;ipconfig
[/cc]

上述为一些例子,其中 &| 分别是“与”和“或”的短路运算符。

这个模块的不同难度等级区分度不大,Meidum 和 High 只是在毫无任何防御措施的 Low 的基础上,加入黑名单。通过该黑名单过滤用户输入中的一些不被服务器所期望的字符。而 Impossible 中,通过判断用户输入是否为 IP 地址来达到修补该漏洞的目的。

基于以上分析,我们可以通过构造不同的输入来自动化测试该漏洞,一个小技巧是在逻辑运算符前后加入不等量的空格


总结

没有总结,就继续学习吧,冲鸭!!!



Leave a Reply

Your email address will not be published. Required fields are marked *