DVWA学习记录系列(三)Command Injection命令执行模块

提示:本文主要针对于Command Injection命令执行模块全等级的分析以及相应的破解。


前言

本次主要针对于DVWA当中的Command Injection命令执行模块进行学习。主要进行的是dvwa的low、medium、high级别进行破解,由于impossible模块难度过高所以都将不进行impossible的实验。


一、Command Injection是什么?

      Command Injection,即命令执行注入,指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。

二、使用步骤

1.实验所需的命令初了解

命令如下(示例):

ping 127.0.0.1 && ipconfig
ping 127.0.0.1 & ipconfig
ping 127.0.0.1&&ipconfig
ping 127.0.0.1&ipconfig
ping 127.0.0.1 || ipconfig
ping 127.0.0.1 | ipconfig
ping 127.0.0.1|ipconfig
ping 127.0.0.1;ipconfig //本命令用于linux中
ping 127.0.0.1 && echo i am hacker > d:\\1.txt && start d:\\1.txt  //创建一个1.txt文本并打开

命令具体用法请自行实验了解!!!

2.实验开始

1. low级别:
      查看对应的源代码:
在这里插入图片描述       可知,在提交submit后,系统会自行使用ping+【我们自行输入的值】因此可对其进行输入一些命令行的命令对其命令执行操作。
       low级别并未对输入的转义符进行过滤因此以上所有转义符皆可用。例如:
在这里插入图片描述
其余命令自行尝试…

2. medium级别:
      进行代码分析:
在这里插入图片描述       可知,在medium级别中设置了黑名单,将&&与;进行了替换,将其编程空格输出:
       若继续输入127.0.0.1 && ipconfig,则会报错
在这里插入图片描述       需要进行队转义符的修改:
在这里插入图片描述       由此可知设置了对应的黑名单后,有些字符将不能使用,但可以使用其他的进行绕过黑名单进行使用。

3. high级别
      分析源代码可知:
在这里插入图片描述       黑名单中设置了更多的过滤项,并使用str_replace函数将转义符转成空格。
      注意图中画线的地方:
             1.代码将所有的&都进行了过滤因此无论&还是&&都将失败。
             2.代码中的 | 是由|与空格组成,因此它并未过滤到|,所以可用此进行操作。可直接写成127.0.0.1 |ipconfig。
             3.本代码也对||进行过滤,但并未对||+空格进行过滤,因此该命令也是可行的:127.0.0.1 || start D:\1.txt
在这里插入图片描述在这里插入图片描述

      也可使用burp,直接对其进行自动化测试,也是将包发至intruder模块,并选中ip=后面的内容进行爆破,方法类似于(一)中的字典爆破步骤。

三、解决dvwa页面输入命令后结果为乱码的bug

      一般情况下直接输入127.0.0.1会出现如下图的乱码:
在这里插入图片描述       查阅资料后发现,乱码的出现是由于命令行dvwa的字符集不匹配的问题,因此需要修改dvwa的字符集。
      …/DVWA/dvwa/includes目录下,有个dvwaPage.inc.php文件,打开文件,将编码集UTF-8改为GBK或者GB2312即可。

在这里插入图片描述       而后再进行测试,此时已不出现乱码的问题了。
在这里插入图片描述

总结

通过本节测试以及对impossible代码分析,可得出以下的防命令执行措施:
1)设置过滤的黑名单;
2)替换转义字符;
3)设置stripslashes防止sql注入;
4)使用check token防止csrf攻击;
5)可对输入的值进行划分匹配。如本实验中的IP,可用exploade(".",$target)对IP地址的四位数进行划分,并用is_numeric对分割后的数字进行判断是否为真实值。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值