DVWA--Command Injection

  1. Command Injection

命令行注入是利用系统弱点获取对系统的访问权限,以执行恶意代码、获取用户数据和参与其他活动。命令行注入常用的参数有&&、&、|、||、;、%0a(换行符的URL编码)

1.;
各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。
2.&&
若前面的命令执行成功,才会去执行后面的命令。这样可以保证所有的命令执行完毕后,执行过程都是成功的。
3.||
||是或的意思,只有前面的命令执行失败后才去执行下一条命令,直到执行成功一条命令为止。
4.|
|是管道符号。管道符号改变标准输入的源或者是标准输出的目的地。
5.&
&是后台任务符号。 后台任务符号使shell在后台执行该任务,这样用户就可以立即得到一个提示符并继续其他工作。
6.%0a
因为%0a是url编码,所以一定要输在url中,否则%0a会被再次编码

 

命令行注入low任务分析通过代码审计可得知该段代码主要功能是实现ping命令我们可以利用其执行其他cmd命令

DVWA--Command Injection_第1张图片

 

解决方案由于缺少过滤我们可以采用连接符&&的方式来查询我们想得到的信息如ifconfigifconfig命令是linux系统中的shell命令,可以帮助用户查看网络状况,可以看到你想看到的众多网络信息,比如延迟,IP,主机信息,物理地址信息等等。

DVWA--Command Injection_第2张图片

命令行注入medium任务分析:通过代码审计可得知该级别与low级别功能相同但是增加了过滤手段即把&&;过滤为空

DVWA--Command Injection_第3张图片 

解决方案虽然有了过滤的加入但是过滤的并不全面所以我们可采用其他手段进行绕过&

实施过程:127.0.0.1&ifconfig

运行结果

DVWA--Command Injection_第4张图片

 命令行注入(high)任务分析:通过代码审计可以得知该级别在medium的基础上再次新增了过滤的规则

DVWA--Command Injection_第5张图片

解决方案:虽然进一步更新了过滤的规则,但是从代码可以看出'|  '中间存在一个空格,所以我们在绕过时不加空格即可实现

实施过程:127.0.0.1|ifconfig

运行结果:DVWA--Command Injection_第6张图片

小结:在执行cmd命令时应注意过滤连接符,如过滤不严谨,容易导致cmd命令被恶意调用执行。 

 

 

你可能感兴趣的:(web安全)