DVWA 命令执行审计
LOW
使用POST方式接受表单,isset()判断是否传入,将传入的ip赋值给$target
使用php_name获取主机信息,用stristr()判断是否是win系统
通过if进行判断是否为空后,使用shell_exec()执行并将所有输出流作为字符串返回
此执行过程无任何过滤。
Medium
将ip的值赋给变量target后,定义了一个数组substitutions,该数组的功能是将&&和;替换为空
使用字符串替换函数str_replace(),将过滤的ip再赋值给$target。使用通道符号绕过
High
丰富了过滤内容,发现|后有个空格,直接用|绕过
impose
使用checkToken()验证index.php页面的token,防止csrf。
stripslashes()函数删除由addslashes()添加的反斜杠。
explode()函数,将target字符串以'.'为分隔符打散为数组,因为正确的ip地址是以'.'为分隔符。
下面通过if判断,数组前4个是否是数字,是,再将前4个以'.'进行拼接;否,则输出用户输入有误。
generateSessionToken();用来生成token。