【网络安全】DVWA靶场实战&BurpSuite内网渗透


我们先来认识一下BurpSuite中有哪些攻击模式,然后开始实战操作

一、 攻击模式介绍

1.1 Sniper(狙击手)

下面攻击案例即将使用,对单个参数进行攻击破解

联想战争中狙击手的作用,一次只能击杀一名敌人

在这里插入图片描述

1.2 Battering ram(攻城锤)

联想古代的攻城锤,特点就是攻击范围比狙击手大,但是效率不一定高

在这里插入图片描述

可以设置多个攻击字段,但是payload值只有一个

在这里插入图片描述

攻击的值只有一个

在这里插入图片描述

在这种情况下发起攻击,用户名和密码的值将是一样的,不适合密码获取

在这里插入图片描述

它会把一个值给到所有攻击字段
适合在多个字段中找合适值

1.3 Pitchfork(草叉)

联想农民伯伯耕地使用的草叉,如果地上有六个洞,但叉子只有四个分支,那么它最多只能插入四个洞中

对于攻击也是一样的,无法做到对所有可能性进行穷举验证,容易遗漏正确数据

在这里插入图片描述

允许设置很多payload来源

它的字段,默认按先后顺序排列

我们给第一个字段(用户名),添加5个内容

在这里插入图片描述

同样给第二个字段,添加6个密码

在这里插入图片描述

然后发起攻击,会看到,它只跑了5次,取两个数中最少的那个

从多个字典提取值,赋给多个字段,按顺序一一对应
例如:
100个用户名
50个密码
最终请求次数:50次

在这里插入图片描述

会出现一种情况,字典中有正确的用户名和密码,但是没有匹配成功,说明还不够全面,我们使用榴霰弹,交叉验证

1.4 Cluster bomb(榴霰弹)

联想二战中的榴霰弹,攻击范围大,攻击个体多,还可以做到彻底摧毁某一片土地,缺点就是造价昂贵

对于攻击也是一样的,它可以通过枚举,将所有的可能性都试一次,做到无疏漏,但问题就是使用它来破解参数,花费的时间占用的资源较多

在这里插入图片描述

同样,我们使用上次5个用户名和6个密码测试

结果发现,请求次数是30次

在这里插入图片描述

所有字典全部交叉验证

我们开始攻击,在30次匹配中有一组是正确的

在这里插入图片描述

二、 DVWA靶场搭建

DVWA是一款开源的练习web漏洞的靶场工具,用PHP代码编写而成。
需要PHP和Apache环境运行。

在下载好小皮基础上,我们需要下载DVWA靶场环境和一个文本编辑工具,Sublime

DVWA靶场网盘下载
提取码:tkwm

文本编辑Sublime下载
提取码:bwhe

2.1 下载DVWA工程

在这里插入图片描述

把解压后的代码放在PHPStudy的WWW路径下(根目录)。

在这里插入图片描述

位置如下

在这里插入图片描述

2.2 添加网站

打开phpstudy,添加网站。

这一步除了填写域名,其他的都不用改。

域名跟上一步的文件夹名字一致,会自动填充根目录。
(这里写成小写dvwa)

在这里插入图片描述

部署成功稍等几秒,Apache会自动重启

2.3 初始化数据库

修改配置文件:

WWW\DVWA\config\config.inc.php

在这里插入图片描述

修改IP、库名(默认dvwa不用改)、用户名、密码、端口

这里将user设置为root

在这里插入图片描述

数据库密码在小皮数据库选项中查看

在这里插入图片描述

打开首页

http://localhost/dvwa

选择Setup

在这里插入图片描述

点击最下方的 Create /Reset Database初始化数据库

在这里插入图片描述

提示报错,我们需要修改配置文件

在这里插入图片描述

首先要确定自己的PHP版本

在小皮中查看

在这里插入图片描述

找到PHP配置文件

phpstudy_pro\Extensions\php\php7.3.4nts\php.ini

在这里插入图片描述

把以下两个值都改为ON

在这里插入图片描述

2.4 登录

初始化后可以登录首页

http://localhost/dvwa

在这里插入图片描述

登录成功

在这里插入图片描述

2.5设置安全级别

靶场设置不同安全级别可以对渗透测试人员练习提供更多的经验

在这里插入图片描述

三、内网渗透

3.1 靶场环境开启

首先开启小皮,启动Apache和MYSQL

在这里插入图片描述

打开BurpSuite内置浏览器

为什么不用自带浏览器呢,自带浏览器请求和响应的数据太多太杂,有些广告,视频等等都会被抓包抓到,不利于初学者学习攻击原理

在这里插入图片描述

输入网址,进入靶场

localhost/dvwa/

在这里插入图片描述

登录进去后,我们修改安全级别为最低级

测试网站在没有附加防御措施下的安全性

在这里插入图片描述

3.2 拦截打开

首先,我们打开拦截,然后在网站中随便输入,提交用户名和密码

这里我们已经知道用户名是admin,密码是password,我们想要做的是在反馈中看到密码,故先测试获取密码。

在这里插入图片描述

可以看到BP已经抓到了包

在这里插入图片描述

3.3 拦截包发送Intruder模块

然后我们把包发送到intruder模块

在这里插入图片描述

会看到intruder模块已经接收到包

在这里插入图片描述

我们看到,BurpSuite默认将这些字段打上分解符,BurpSuite默认你即将测试这些字段

在这里插入图片描述

但我们实际测试的只有密码值,所以点击清空

在这里插入图片描述

3.4 选择攻击字段

我们选中密码的值,点击ADD,添加分解符

在这里插入图片描述

3.5 选择攻击模式

攻击模式有四种,分别是Sniper、Battering ram、Pitchfork、Cluster bomb

选择攻击模式。这里选择Sniper,因为我们只要密码,是针对单个参数攻击

在这里插入图片描述

3.6 设置payload

进入Payloads(攻击载荷)模块,我们先使用Simple list,简单列表

在这里插入图片描述

爆破字典设置

在这里插入图片描述

3.7 其他设置

还可以对攻击字段做进一步设置

在这里插入图片描述

设置线程值为10

在这里插入图片描述

3.8 发起攻击

点击start

在这里插入图片描述

开始攻击

在这里插入图片描述

3.9 查看结果

单击密码,可以看到它返回的响应

这里1111显示密码不匹配,故不是正确密码

在这里插入图片描述

但每个都点开查看不现实,所以我们要对响应内容的长度进行排序

会发现有一个值的长度和其他不一样,在值爆破中,正确值和错误值的长度是不同的,可以利用这一点进行快速判断

最终确认正确密码是password
在这里插入图片描述

四、 标记结果(补充说明)

为了更快找到正确的值,我们想对正确的结果进行标记

即这段匹配成功响应

在这里插入图片描述

我们进入Intruder模块下的Options,找到Grep-Match

在这里插入图片描述

再次发起攻击,会在正确值位置出现标记

在这里插入图片描述

五、获取CSRF Token

5.1 切换安全级别

先把代理拦截关闭,将拦截级别切换到HIgh

在这里插入图片描述

其中涉及到CSRF token,它是什么意思呢

类似于古代的令牌,没有它,不能进入网站,但它和正常的令牌区别就在于,每次的令牌都不一样

在这里插入图片描述

用户每一次访问,都需要一个新的Token
	一次使用,用完销毁
这一次浏览器响应给你,下一次你需要带上它上次给的token来访问才能进入网站
轮流依次访问

5.2 拦截打开

我们现在打开拦截

随便输入一个密码,会发现已经拦截到,并且安全级别是high

在这里插入图片描述

同样,发送到intruder模块

5.3 Pitchfork攻击

我们只能使用pitchfork攻击模式,然后将两个字段标识处理

在这里插入图片描述

5.4 攻击字段设置

进入payloads模块

先给密码一个字段

00000
1223
1232312
password
ashkkjd

在这里插入图片描述

在第二个字段,token值,我们使用载荷类型Recrusvive grep

它可以用来提取相应数据的比如拿到PHPSESSIONID,拿到TOKEN 等等,可以通过格式匹配抓取到对应的字段值。

在这里插入图片描述

它的规则需要在Option中设置,找到Grep-Extract,点击ADD添加,单击Refetch response生成一个相应,在响应中找到token,双击内容,会自动生成一套匹配规则

规则内容:

语句中前面是 value=' ,后面是' />\r\n		</form>
则中间一定是token

在这里插入图片描述

选中之后复制token值

9dff1b7aaa0dca5d78eb501602b2c34a

回到payload,我们发现已经将规则添加进去了

在这里插入图片描述

注意:
使用该模式,只能使用单线程
为了避免上一个请求还没有回来,下一个又发出去

5.5 单线程设置

打开Resource Pool,选择单线程

在这里插入图片描述

5.6 开始攻击

然后发起攻击,结果显示爆破成功

在这里插入图片描述

六、 绕过验证码

举例

对于这样一个网站的验证码,我们想要绕过它,通过不关注公众号就能查看网站里的内容

https://www.lxlinux.net/7001.html

6.1 开启代理拦截

首先打开浏览器BP代理

在这里插入图片描述

打开拦截,在验证码处输入666666,回车,会看到BP已经拦截到验证码

在这里插入图片描述

6.2 发送Intruder模块

现在我们把它发送到Intruder模块

在这里插入图片描述

我们现在要做一个固定长度是6位的验证码

在这里插入图片描述

这里如果用生成字典的方法,可以生成从000001到999999一共一百万个密码,但是花费时间太久

6.3 篡改响应结果

所有我们试一下篡改响应结果

在这里插入图片描述

然后点击Forward放行,会看到一个服务器响应信息

{"msg":"校验码已失效,请重新获取!","resultCode":null,"success":false,"value":"666666","values":{}}

在这里插入图片描述

我们将success值改为ture

在这里插入图片描述

6.4 放行数据包

继续点击Foreword

在这里插入图片描述

6.5 成功跳过验证码

然后来看一下浏览器中网页是否已经跳过验证码

在这里插入图片描述

成功在不输入验证码的前提下,进入网站

这里只给大家举个例子,虽然拿验证码并不难,但通过一个简单的例子,我们可以学到渗透的思路(感兴趣可以自己试试,真实有效)

猜你喜欢

转载自blog.csdn.net/weixin_48701521/article/details/131872265