1、command injection
漏洞介绍:
**漏洞产生的原因:**程序中的某些功能需要执行系统命令,并通过网页传递参数到后台执行。然而最根本的原因是没有对输入框中的内容做代码过滤,正常情况下输入框只能接收指定类型的数据。
漏洞影响:命令注入漏洞可以使攻击在受攻击的服务器上执行任何命令。
需要用到的知识:
&&:前一个指令执行成功,后面的指令才继续执行,就像进行与操作一样
||:前一个命令执行失败,后面的才继续执行,类似于或操作
&:直接连接多个命令
|:管道符,将前一个命令的输出作为下一个命令的输入
;:直接连接多个命令
解决乱码问题(后期补充)解决此问题的方法:在DVWA-master\dvwa\includes目录下找到dvwaPage.inc.php文件中所有的”charset=utf-8”,修改”charset=gb2312”,即可。
解决此问题的方法:在DVWA-master\dvwa\includes目录下找到dvwaPage.inc.php文件中所有的”charset=utf-8”,修改”charset=gb2312”,即可。
(一)Low
函数说明:shell_exec将所有输出流作为字符串返回。exec默认情况下返回输出的最后一行,但可以将所有输出提供为指定为第二个参数的数组。
shell_exec- 通过shell执行命令并将完整输出作为字符串返回
exec - 执行外部程序。
不同之处在于,shell_exec您将输出作为返回值。
说明:从此处可以看出代码并没有对submit提交的数据进行任何的处理
输入:
对应于:
(二)medium
说明PHP过滤了&&和;
由于&&和;被过滤所以我们考虑用||,但是使用这个的前提是前一个条件错误
(三)high
这里添加的黑名单变多单是可以看出|中多了一个空格所以|能够正常使用,因此当输入”127.0.0.1|whomai”,一样可以攻击,”|”是管道符,意思是将前者处理后的结果作为参数传给后者。
(四)impossible
再来看一下impossible的源码,看看别人是如何防范的:先将ip地址用点分为一个数组,然后判断每一位是否是数字,如果是数字,然后再把他们拼起来。针对特定命令有特定的防范措施,这样才能最大限度的降低漏洞产生的可能性
语法说明:
DVWA-command injection
最新推荐文章于 2024-03-13 19:56:42 发布