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

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

 127.0.0.1 |dir

 

 

 

posted @ 2023-09-17 17:00  TinKode  阅读(805)  评论(0)    收藏  举报