DVWA---命令注入篇

简介: DVWA---命令注入篇
  1. 什么是命令注入

即 Command Injection。是指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。在Web应用中,有时候会用到一些命令执行的函数,如phpsystem、exec、shell_exec等,当对用户输入的命令没有进行限制或者过滤不严导致用户可以执行任意命令时,就会造成命令执行漏洞。

  1. 注入原理
  2. 640.png
  3. 黑客将构造好的命令发送给web服务器,服务器根据拼接命令执行注入的命令,最后讲结果显示给黑客。
  1. DVWA演练
  • Low等级

在讲命令注入之前不得不讲讲DOS下一些符号的使用方法了

&&:只有当前面的命令执行成功才执行后面的命令

&:无论怎样执行后面的命令

||:只有当前面的命令执行失败才执行后面的命令

|:将前面命令执行的输出作为后面命令执行的输入

说完使用方法我们直接来分析源代码

640.png

这里就是检测了字符串第一次出现的位置没有做任何过滤,所以我们可以直接使用DOS连接符进行注入!

640.png

这里有点乱码。但是没关系可以看到是执行了我们后面那个ipconfig命令的!


  • Medium等级

看看源代码

640.png

这里对我们输入的&&符号和;号进行了替换,替换成看空字符。所以在我们进行命令注入的时候就要避开替换的字符。所以我们要避开&&符号所以我们可以利用&号来注入。

640.png

  • High

看看源代码

640.png

可以看到这里几乎对所有的DOS连接符都做了替换,但是仔细观察就会发现一点弊端。

640.png

这里的 | 符号后面多了一个空格,现实生活中就相当于程序员小手一抖多了一个空格,也就是多了这一个空格,导致过滤不严格,我们的 | 符号没有被过滤,所以我们可以进行命令注入。但是注意 | 符号是在前一条命令执行失败的时候在执行下一条所以,我们前面ping的ip地址一点要是ping不通的。我本机192.168.2.1是ping不通的所以

640.png

  • Impossible等级

看看源代码640.png

这里检查了token防止了CSRF,还使用了stripslashes函数去除反斜杠,explode函数进行分割。

640.png

Is_numeric函数检查是否为数字,并且给出了严格的输入限制,只有如“数字.数字.数字.数字”的输入才会被接收执行,因此不存在命令注入漏洞。


目录
相关文章
|
7月前
|
SQL
注入工具 -- sqlmap(自定义检测参数)
注入工具 -- sqlmap(自定义检测参数)
83 0
|
7月前
|
SQL 关系型数据库 MySQL
注入工具 -- sqlmap(注入参数)
注入工具 -- sqlmap(注入参数)
116 0
|
7月前
|
SQL
​注入工具 -- sqlmap(获取目标)
​注入工具 -- sqlmap(获取目标)
62 0
|
7月前
|
安全 Python
注入工具 -- DSSS
注入工具 -- DSSS
60 0
|
7月前
|
安全 数据库
注入工具 -- sqlmap(枚举信息)
注入工具 -- sqlmap(枚举信息)
66 0
|
7月前
|
SQL 关系型数据库 MySQL
解密 sqli靶场第一关:一步一步学习 SQL 注入技术
解密 sqli靶场第一关:一步一步学习 SQL 注入技术
101 0
解密 sqli靶场第一关:一步一步学习 SQL 注入技术
|
安全 中间件 应用服务中间件
ctfshow-web4(文件包含&日志注入)
ctfshow-web4(文件包含&日志注入)
286 0
|
SQL 安全 网络安全
Sqlmap学习 -- Tamper绕过脚本
Sqlmap学习 -- Tamper绕过脚本
1046 0
|
关系型数据库 MySQL 数据库
Sqlmap学习 -- Tapmer绕过脚本(三)
Sqlmap学习 -- Tapmer绕过脚本(三)
194 0
|
SQL XML 安全
SQLMap注入工具
SQLMap 是一个开源渗透测试工具,它可以自动检测和利用 SQL 注入漏洞并接管数据库服务器。它具有强大的检测引擎,同时有众多功能,包括数据库指纹识别、从数据库中获取数据、访问底层文件系统以及在操作系统上带内连接执行命令。