DVWA之命令注入漏洞

简介:

命令注入是一种攻击,其目标是通过易受攻击的应用程序在主机操作系统上执行任意命令。当应用程序将不安全的用户提供的数据(表单、Cookie、HTTP表头等)传递给系统shell时,可能会产生命令注入漏洞。在进行攻击时,攻击者提供的操作系统命令通常以易受攻击的应用程序的权限执行。

产生原因:

web服务器没有对用户提交的参数进行有效的检测过滤

操作系统允许一条语句在使用连接符和管道符后执行多条命令

科普Windows命令的连接符【‘&’‘&&’‘||’‘|’】的含义及其用法

一、各个连接符的含义

二、用法演示

1.a && b 2.a & b 3.a || b 4.a | b

一、各个连接符的含义

a && b :代表首先执行前者命令a再执行后命令b,但是前提条件是命令a执行正确才会执行命令b,在a执行失败的情况下不会执行b命令。所以又被称为短路运算符。

(前面的命令执行成功后,它后面的命令才被执行)

a & b:代表首先执行命令a再执行命令b,如果a执行失败,还是会继续执行命令b。也就是说命令b的执行不会受到命令a的干扰。

(表示简单的拼接,A命令语句和B命令语句没有制约关系)

a || b:代表首先执行a命令再执行b命令,如果a命令执行成功,就不会执行b命令,相反,如果a命令执行不成功,就会执行b命令。

(前面的命令执行失败,它后面的命令才被执行)

a | b:代表首先执行a命令,再执行b命令,不管a命令成功与否,都会去执行b命令。

(当第一条命令失败时,它仍然会执行第二条命令,表示A命令语句的输出,作为B命令语句的输入执行。)

low低级

检查源代码

未对代码进行任何过滤,可以直接在后面拼接命令

  • 登陆DVWA平台,选择Low级别然后进入Command Injection模块。

  • 通过页面我们可以看出这是让你输入一个IP地址然后对其进行Ping测试,因此我们先只输入一个地址观察一下。

可以看见这里不仅仅返回了127.0.0.1的Ping检测信息,还返回了刚刚拼接dir命令的结果即当前目录下的文件和子目录的信息。然后我们就可以通过拼接其他命令进行攻击,达到我们的目的。

medium 中级

查看源代码

这段代码的作用就是对输入的字符进行判断若出现‘&&’或‘;’字符则用‘’代替。这样就在一定程度上隔绝了用此类连接符连接的命令注入。这是明显的黑名单做法,可还是不能有效的阻挡命令注入。

  • 我们同样先试一下Low级别的做法,输入127.0.0.1&&dir进行测试,发现失败了。

  • 不过windows下的管道符或者连接符不只有&&,还有以下几种:

command1&command2 无论command1是否执行成功都要执行command2

command1&&command2 只有command1执行成功后才执行command2

command1||command2 只有command1执行失败后才执行command2

command1|command2 将command1的执行结果传递给command2

既然用&&连接测试失败了,我们试一下利用&进行连接,我们输入127.0.0.1进行测试,发现下方成功显示出了命令结果,则表示注入成功。

可见过滤了&&和;

可用127.0.0.1 & whoami

127.0.0.1 & ipconfig

127.0.0.1 | dir

127.0.0.1 & shutdown

可见服务端已接收到关机命令

higth 高级

我们在依次使用不同的连接符或管道符进行测试,我们发现只有管道符 ‘|’ 对命令进行连接才能实现测试。通过刚刚Medium级别,我们同样猜测这里应该同样的采用了黑名单的做法,不过相对于Medium级别的扩大了黑名单的内容。接下来我们看一下High级别的代码:

可见过滤了一系列字符,但是"|"中有一个空格,可以利用这个漏洞借此绕过

127.0.0.1 |netstat

果然如同Medium级别一样采用的是黑名单方法,并扩大了限制的字符,在一定程度上限制了命令注入,但并没有起到实际作用。

impossible 不可能

发现这里还添加了token参数的检验,杜绝了CSRF漏洞的利用,并且这里我们发现在代码中,其限制了输入数据的格式,也就是说这里采用了白名单的做法,只有输入的格式跟白名单的一样才能通过验证,其他的都不行。这样就基本上杜绝了命令注入。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咩了个咩咩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值