Dvwa教程之命令行注入(二)
Command Injection,即命令注入,是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。PHP命令注入攻击漏洞是PHP应用程序中常见的脚本漏洞之一
用户通过浏览器提交执行命令,由于服务器端没有对执行函数进行过滤,从而造成可以执行危险命令。
命令连接符:
command1 && command2 先执行command1后执行command2
command1 | command2 只执行command2
command1 & command2 先执行command2后执行command1
以上三种连接符在windows和linux环境下都支持
常用的注入命令:
command1 & command2
不管command1执行成功与否,都会执行command2(将上一个命令的输出作为下一个命令的输入)
command1 && command2
先执行command1执行成功后才会执行command2
command1 | command2
只执行command2
command1 || command2
command1执行失败,再执行command2(若command1执行成功,就不再执行command2)
常用的url编码:
%20 = 空格
%5c = \
%26 = &
%7c = |
若Dvwa显示乱码
则要修改 .... \WWW\DVWA-master\dvwa\dvwaPage.inc.php 这个文件把u-f8修改成gbk2312 (277行).
查看服务器源代码
low 级别
未作任何字符串过滤,因此什么命令行都可以注入 && || & |
Medium 级别
做了&&过滤 因此还可以使用& || 和|进行命令行注入
High 级别
虽然过滤了所有字符串 但是有一个漏洞 '| ' => '', 多了一个空格 命令行注入的时候输入如
127.0.0.1|net user
就匹配失败
Impossible 级别
用stripslashes函数和explode清理了一数据所以不存在可利用的注入命令行漏洞