DWVA-Command Injection【命令注入攻击】
命令注入攻击,是指黑客通过把HTML代码输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态生成的内容。命令注入漏洞是特别危险的,因为他们允许未经授权的执行操作系统命令,他们的存在,因为应用程序无法正确的验证和过滤,使用时调用shell的功能,攻击者控制这些参数,可以欺骗应用程序执行任何系统命令,其结果是被欺骗应用程序执行攻击者的额外命令。
DVWA的相应模块中,有如下功能:应用提供了一个用来ping对象主机的功能。正常情况下,输入IP地址,返回命令结果。
一、Low
查看php源码可知,低级命令注入攻击用户输入执行ping命令时,基本没有任何防御。
我们用&&来串行执行命令 127.0.0.1&&dir(查看文件夹)
可以看到dir命令被执行,并且打印出了其结果。
如果我们用更复杂的命令附在以上命令之后,基本都可以执行,包括创建删除文件等等,可以对宿主系统造成非常大的危害。
二、Medium
使用黑名单机制,替换掉如“&&”和“;”这样的命令符号。但是这样简单的黑名单是很容易绕过的,比如“|”管道符就没有屏蔽
三、High
完善了黑名单机制,筛除了更多字符,但仍有可能绕开。
四、Impossible
使用白名单机制替换掉黑名单,将用户输入的字符串重组为数组,依次遍历数组内元素,删除其中所有的非数字和“.”。这样就达到了防御命令注入的目的。