Dvwa command injection命令注入攻击实操
承接上次dvwa的攻击,这次来实现command injection命令注入攻击,跟上次一样打开配置环境然后进入dvwa
实验原理
命令注入执行漏洞攻击时一种常见的网络安全漏洞,它常常存在于可以让用户向应用程序传递数据并且没有加以限制和检查的输入端,使得攻击者可以通过构造恶意的代码绕过限制让操作系统执行恶意代码。通常在web应用表单提交、输入框、文件上传等数据提交的地方。例如apache log4j和log4j2的反序列化漏洞原理就是如此。
防范措施
对用户能够上传数据的输入端进行严格的检查和黑白名单限制,对转义字符、格式等做硬性要求。
实验步骤
- low等级
首先查看内容,是一个ping的指令我们可以选择ping一下主机或者其他的
127.0.0.1(因为简单)
我选择ping百度可以看到也能ping,查看源码发现它是调用了Windows的cmd并执行相应的ping操作。而且它对于输入的内容并没有加以限制即我们可以通过逻辑符 &&或者是||来实现对于命令提示符的其他调用
所以我们在IP address加上&&netuser就可以实现增加管理员身份了。
- medium等级
有了low等级的思路,我们就同理来做medium等级,可以看到它对于&&和;字符进行了限制。
但是它并没有对其他字符做出限制,我们通过查找Windows、Linux系统的常用特殊符号我们就可以从中选择一种而没有在源码中加以限制的进行逻辑代码的编写来实现漏洞。
- high等级
通过源码分析high等级已经基于我们medium等级加了更多的限制,但是我们逐条查看发现在| 的限制中只是对于| 加以了限制而没有单纯对|加以限制所以就可以通过这样的方式来实现我们命令注入。
- impossible等级
等级四已经摒弃了前三个等级的限制策略,因为它只是针对于IP地址,所以它采用了对于IP地址严格输入的方式,对于每一部分加以检查让攻击破无可破。