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

news2024/11/26 13:57:57

BurpSuite 内网渗透

  • 一、 攻击模式介绍
    • 1.1 Sniper(狙击手)
    • 1.2 Battering ram(攻城锤)
    • 1.3 Pitchfork(草叉)
    • 1.4 Cluster bomb(榴霰弹)
  • 二、 DVWA靶场搭建
    • 2.1 下载DVWA工程
    • 2.2 添加网站
    • 2.3 初始化数据库
    • 2.4 登录
    • 2.5设置安全级别
  • 三、内网渗透
    • 3.1 靶场环境开启
    • 3.2 拦截打开
    • 3.3 拦截包发送Intruder模块
    • 3.4 选择攻击字段
    • 3.5 选择攻击模式
    • 3.6 设置payload
    • 3.7 其他设置
    • 3.8 发起攻击
    • 3.9 查看结果
  • 四、 标记结果(补充说明)
  • 五、获取CSRF Token
    • 5.1 切换安全级别
    • 5.2 拦截打开
    • 5.3 Pitchfork攻击
    • 5.4 攻击字段设置
    • 5.5 单线程设置
    • 5.6 开始攻击
  • 六、 绕过验证码
    • 6.1 开启代理拦截
    • 6.2 发送Intruder模块
    • 6.3 篡改响应结果
    • 6.4 放行数据包
    • 6.5 成功跳过验证码


我们先来认识一下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 成功跳过验证码

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

在这里插入图片描述

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/778438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

19 QListWidget控件

Tips: 对于列表式数据可以使用QStringList进行左移一块输入。 代码&#xff1a; //listWidget使用 // QListWidgetItem * item new QListWidgetItem("锄禾日当午"); // QListWidgetItem * item2 new QListWidgetItem("汗滴禾下土"); // ui->…

vue前端打包优化

建议&#xff0c;使用pnpn代替原生的npm 具体操作如下&#xff1a; pnpm安装&#xff0c;如果是linux&#xff0c;需要把npm和pnpm设置为环境变量## 安装pnpm npm install -g pnpm5.15.0 --registryhttps://registry.npm.taobao.org ## 设置淘宝镜像pnpm config set registry…

Vue3+vite实现组件上传npm并应用

场景&#xff1a;就是A项目的组件需要在B项目中使用 下面举例的是把a项目pagination分页组件上传到npm&#xff0c;在b项目使用 采坑日记&#xff1a;封装的组件一定要起name要不调用不成功 1.1 配置打包 1.1 首先在公用组件components文件夹下创建index.js文件&#xff0c…

JavaSwing+MySQL的小区物业管理系统

点击以下链接获取源码&#xff1a; https://download.csdn.net/download/qq_64505944/88071096 JDK1.8、MySQL5.7 《数据库原理课程设计》课程设计任务书 题 目&#xff1a; 小区物业管理系统 学生姓名&#xff1a; xxxxxx 班 级&#xff1a; xx 级软件工程 x 班 学 号&#…

虚继承是如何解决二义性和数据的冗余的

我们知道面向对象的三大特性分别为封装,继承,多态。在继承中&#xff0c;我们知道一个类可以继承另一个类&#xff0c;这样的关系被叫做子类&#xff08;派生类&#xff09;继承父类&#xff08;基类&#xff09;&#xff0c;并且子类可以使用到父类的接口。但是在C中还被设计了…

ElasticSearch学习--数据聚合

介绍 数据聚合可以帮助我们对海量的数据进行统计分析&#xff0c;如果结合kibana&#xff0c;我们还能形成可视化的图形报表。自动补全可以根据用户输入的部分关键字去自动补全和提示。数据同步可以帮助我们解决es和mysql的数据一致性问题。集群可以帮助我们了解结构和不同节点…

Pytorch个人学习记录总结 08

目录 神经网络-搭建小实战和Sequential的使用 版本1——未用Sequential 版本2——用Sequential 神经网络-搭建小实战和Sequential的使用 torch.nn.Sequential的官方文档地址&#xff0c;模块将按照它们在构造函数中传递的顺序添加。代码实现的是下图&#xff1a; 版本1—…

BeanFactory容器的构建和使用示例

BeanFactory容器的实现流程&#xff1a; BeanFactory是Spring框架中的一部分&#xff0c;它提供了IoC&#xff08;控制反转&#xff09;的实现机制。下面是BeanFactory的IoC实现过程&#xff1a; 定义Bean定义&#xff1a;首先&#xff0c;我们需要在配置文件中定义Bean的定义…

[数据结构]顺序表和ArrayList

顺序表的介绍 在了解顺序表之前先了解一下什么叫做线性表&#xff1a; 线性表&#xff08;linear list&#xff09;&#xff1a;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。 常见的线性表&#xff1a;顺序表、链表、栈、队列… 线性…

数学建模入门-如何从0开始,掌握数学建模的基本技能

一、前言 本文主要面向没有了解过数学建模的同学&#xff0c;帮助同学们如何快速地进行数学建模的入门并且尽快地在各类赛事中获奖&#xff0c;或者写出优秀的数学建模论文。 在本文中&#xff0c;我将从什么是数学建模、数学建模的应用领域、数学建模的基本步骤、数学建模的技…

两天学会用Webpack打包前端代码-day01

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;请留下您的足迹&#xff09; 目录 什么是 Webpack&#xff1f; 使用 Webpack 体验webpack打包过程 修改 Webpack 打包入口和出口 入口 出…

[JAVAee]线程安全

目录 线程安全的理解 线程不安全的原因 ①非原子性 ②可见性 ③代码重排序 体会何为不安全的线程 保证线程安全 一个代码在多线程的环境下就很容易出现错误. 线程安全的理解 线程安全是什么呢?通俗的来讲,线程安全就是在多线程的环境下,代码的结果是符合我们预期的,就…

R语言-数据分析及建模(第1节)分类与预测问题简介

小伙伴们&#xff0c;今天我们学习R语言-数据分析及建模&#xff08;第1节&#xff09;分类与预测问题简介 01-分类与预测问题简介 ◆分类和预测是预测问题的两种主要类型&#xff0c;分类主要是预测分类标号&#xff08;离散属性&#xff09; &#xff0c;而预测主要是建立连续…

Windows11的VS201x编译OpenCV+Contrib+CUDA

(1) CUDA下载&#xff0c;注意要和cudnn版本号相关。 我安装的是cuda11.0,注意VS2015不能编译CUDA11&#xff0c;所以用VS2015的话需要下载CUDA 10。因为更高的版本目前还没有cudnn。 (2) 下载和安装VS2015。 (3) 下载和解压CMake。 CMake地址&#xff1a; Releases Kitw…

性能测试Ⅱ(压力测试与负载测试详解)

协议 性能理论&#xff1a;并发编程 &#xff0c;系统调度&#xff0c;调度算法 监控 压力测试与负载测试的区别是什么&#xff1f; 负载测试 在被测系统上持续不断的增加压力&#xff0c;直到性能指标(响应时间等)超过预定指标或者某种资源(CPU&内存)使用已达到饱和状…

每天五分钟机器学习:多项式非线性回归模型

本文重点 在前面的课程中,我们学习了线性回归模型和非线性回归模型的区别和联系。多项式非线性回归模型是一种用于拟合非线性数据的回归模型。与线性回归模型不同,多项式非线性回归模型可以通过增加多项式的次数来适应更复杂的数据模式。在本文中,我们将介绍多项式非线性回…

[SpringMVC]仿写SpringMVC(注解开发)

文章目录 前提&#xff1a;1、代码结构2、核心&#xff1a;YhzMVC3、初始化步骤是&#xff1a;4、执行 前提&#xff1a; 当前版本无接受网络请求功能&#xff0c;不喜勿喷&#x1f64f;&#x1f64f; 本文将对代码核心进行讲解&#xff0c;源码已上传到gitee仓库 1、代码结构…

SpringBoot集成Druid实现数据库连接池

一、引入依赖 完整的pom文件如下所示: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http…

第四讲:MySQL中DDL一些基本数据类型及表的创建、查询

目录 1、创建表:2、DDL一些基本数据类型&#xff1a; 1、创建表: 部分单词及解析&#xff1a; 1、tables:表 2、comment:评论&#xff0c;解释 3、gender:性别 4、neighbor&#xff1a;邻居 1、创建表&#xff1a;&#xff08;注&#xff1a;在自定义数据库操作&#xff0c;…

Vue--》打造个性化医疗服务的医院预约系统(二)

今天开始使用 vue3 + ts 搭建一个医院预约系统的前台页面,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关…