DVWA靶场通关-Command Injection(命令行注入)
Brute Force(暴力(破解))、Command Injection(命令行注入)、CSRF(跨站请求伪造)、 File Inclusion(文件包含)、File Upload(文件上传)、Insecure CAPTCHA (不安全的验证码)、 SQL Injection(SQL注入)、SQL Injection(Blind)(SQL盲注)、XSS(DOM)(基于DOM树)、 XSS(Reflected)(反射型跨站脚本)、XSS(Stored)(存储型跨站脚本)
Command Injection,即命令注入攻击,是指由于嵌入式应用程序或者 web应用程序对用户提交的数据过滤不严格,导致黑客可以通过构造特殊命令字符串的方式,将数据提交至应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者网络资源等。
命令注入的形成需要如下三个条件:
1)使用了内部调用shell的函数:system(),exec()等
2)将外界传入的参数没有足够的过滤,直接传递给内部调用shell的函数
3)参数中shell的元字符没有被转义
危害:继承嵌入式应用程序或者 web应用程序的权限去执行系统命令读写执行文件,导致系统有可能会被恶意攻击或者泄露系统用户信息。
等级low
网站提示我们输入ip地址

尝试输入本机ip地址,127.0.0.1,点击提交,发现返回的数据和我们在cmd命令行里面执行ping 127.0.0.1的结果相似。网页端由于编码的问题所以有些是乱码
..\DVWA\dvwa\includes 目录下有个dvwaPage.ini.php文件
在文件中ctrl+f,用搜索栏查找 // Send Headers + main HTML code 这句话
Header( 'Content-Type: text/html;charset=utf-8' );
将UTF-8改为GBK或者GB2312即可
Header( 'Content-Type: text/html;charset=GB2312' );
shell_exec函数能执行系统命令
命令连接符:
;:前后命令依次执行,注意前后顺序,若更变目录,则必须在“一句”指令内
& :前面一个命令无论是否执行,后面的命令都能执行,两个命令都执行
&&:前面一个命令执行成功后,才能执行后面一个命令,两个命令都执行
|:前面一个命令无论是否执行,后面的命令都能执行且只执行后面一个
||:前面一个命令不能正常执行后,才能执行后面一个命令
127.0.0.1 | dir win命令dir

等级medium
127.0.0.1 | dir
127.0.0.1 & dir
等级high
源码分析:发现还是一样的套路,也是过滤字符但过滤得更多了。但仔细观察发现有一个过滤是’| ‘,注意这个过滤是加了空格的,说明这个过滤其实是没用的,只需要’|’后面直接加入参数,不保留空格,我们依然可以用这个命令连接符进行命令注入

浙公网安备 33010602011771号