关于 Burp Suite 详解
一、Burp Suite 简介
Burp Suite 是由 PortSwigger 公司开发的一款集成式 Web 渗透测试工具,被广泛应用于安全研究、风险点挖掘、CTF 比赛、SRC 风险点报告等领域。其强大的功能和良好的交互性使其成为 Web 安全领域的标准工具之一。
主要特点包括:
-
强大的抓包、修改请求能力
-
内置爆破模块(Intruder)、自动化扫描模块(Scanner)
-
支持插件扩展(BApp Store)
-
丰富的手动测试模块(Repeater、Decoder、Comparer)
二、Burp Suite 下载与安装
1. 版本选择
Burp Suite 有两个主要版本:
-
Community Edition(免费版):功能受限,适合学习和简单测试
-
Professional Edition(专业版):提供完整功能,如自动化扫描、批量爆破、多线程等
2. 下载地址
-
官网:https://portswigger.net/burp
-
国内用户可以使用代理访问,或在 Github / 论坛寻找镜像安装包
3. 安装流程
Windows 系统:
-
下载
.exe
安装包,双击安装即可。 -
默认会在开始菜单创建快捷方式。
Linux 系统:
chmod +x burpsuite_pro_linux_v202x_xxx.sh
./burpsuite_pro_linux_v202x_xxx.sh
MacOS 系统:
-
下载
.dmg
文件,拖动到应用目录即可。
4. Java 环境依赖
Burp Suite 使用 Java 编写,安装包内已集成 JRE,无需额外配置。但也可以使用命令行运行 jar 包:
java -jar burpsuite_community_v202x_xxx.jar
三、启动与界面总览
1. 启动
-
打开 Burp Suite → 创建 Temporary Project → 下一步
-
选择使用默认配置启动
2. 主界面布局
Burp Suite 主界面分为顶部导航栏和下部模块区域。
-
Target:目标管理与站点地图
-
Proxy:拦截、修改和转发请求
-
Intruder:参数爆破工具
-
Repeater:手动发送请求调试
-
Scanner(Pro):自动风险点扫描
-
Decoder:常用编码解码转换
-
Comparer:内容对比
-
Extender:扩展插件管理
四、核心模块详解
模块 | 作用描述 | 备注 |
---|---|---|
Proxy | 拦截并修改客户端与服务器的HTTP/HTTPS请求与响应 | 渗透测试中最常用的模块 |
Repeater | 手动修改请求后反复发送,观察服务器响应 | 方便测试参数与功能 |
Intruder | 自动化爆破工具,支持自定义payload和爆破策略 | 爆破口令、参数枚举的利器 |
Scanner | 专业版自动风险点扫描器 | 自动扫描常见风险点 |
Sequencer | 分析会话令牌随机性,判断令牌安全性 | 会话管理安全性分析 |
Decoder | 编码/解码工具,支持多种编码格式 | 支持Base64、URL编码等 |
Comparer | 对比两个数据包差异 | 用于分析响应或请求的细微差异 |
Extender | 加载插件,扩展功能 | 可以自定义扩展,安装第三方插件 |
4.1 Proxy 模块:抓包与请求拦截
4.1.1 功能概览
Burp 的 Proxy 模块是所有渗透测试的第一入口,它的主要职责包括:
功能 | 描述 |
---|---|
拦截浏览器请求 | 自动抓取通过代理访问的所有 HTTP/HTTPS 请求 |
修改请求参数 | 在请求发出前修改 Header、参数、Cookie 等内容 |
转发或阻止请求 | 拦截后可手动选择是否发送或丢弃该请求 |
记录 HTTP 历史记录 | 自动保存请求/响应内容,供后续分析使用 |
4.1.2 抓包环境配置
1)设置 Burp 的监听代理
-
打开 Burp → 进入:
Proxy
→Options
→Proxy Listeners
-
默认监听地址为:
地址:127.0.0.1 端口:8080
可以自定义为 0.0.0.0
(让其他设备也能连接,如手机)。
2)配置浏览器代理(推荐用 Firefox)
进入 Firefox 设置 → 网络设置 → 手动代理配置:
HTTP 代理:127.0.0.1
端口:8080
所有协议使用相同代理:勾选
3)导入 Burp 的 CA 根证书(解决 HTTPS 报错)
HTTPS 抓包默认是失败的,你必须安装 Burp 的 CA 根证书:
步骤:
-
配置好代理后,在浏览器访问:
http://burp
-
点击
CA Certificate
下载证书(通常为.cer
) -
导入浏览器:
-
Firefox:设置 → 隐私与安全 → 证书 → 查看证书 → 导入
-
勾选:“信任此 CA 以识别网站”
-
4.1.3 Proxy 界面详解(Sub Tabs)
子模块 | 作用 |
---|---|
Intercept | 实时拦截请求并编辑参数 |
HTTP history | 所有被拦截并处理过的请求与响应记录 |
WebSockets history | WebSocket 通信记录 |
Options | 监听端口、拦截规则、自定义过滤等 |
4.1.4 使用流程详解
步骤 1:打开拦截功能
-
Proxy > Intercept > Intercept is ON
(确保开启) -
此时浏览器中发出的请求会在此处暂停
步骤 2:查看并修改请求内容
可以在拦截窗口看到:
GET /index.php?id=1 HTTP/1.1
Host: example.com
Cookie: sessionid=xxxxx
可以修改任何字段,比如参数、头部信息,然后再转发。
步骤 3:选择操作
按钮 | 作用 |
---|---|
Forward | 发送请求到服务器(放行) |
Drop | 丢弃请求(不会发送) |
Action | 发送到其他模块(Repeater、Intruder) |
Intercept is ON/OFF | 开关拦截 |
步骤 4:查看历史记录
-
Proxy > HTTP history
:可查看所有已发请求与返回响应,双击即可查看详情。 -
功能类似于 Fiddler 的 Session 面板,支持筛选与搜索。
步骤 5:设置拦截规则
进入:Proxy > Options > Intercept Client Requests
可以设置条件,比如只拦截带参数的 GET 请求:
Match: Request Line → Contains → ?
或者只拦截特定域名、路径。
=======================================
4.2 Repeater 模块:手动调试请求
4.2.1 功能概览
功能 | 说明 |
---|---|
对请求进行细致测试和修改 | 可自由编辑请求参数、头部、方法等 |
重复发送请求 | 对同一个请求反复发送不同版本做对比 |
分析响应差异 | 手动观察响应中是否存在风险点回显、状态变化等 |
手动验证风险点 | 利用已知 payload 或测试参数精细打点,确认是否存在风险点 |
4.2.2 使用方法(配合 Proxy 模块)
Step 1:抓包并发送到 Repeater
在 Proxy 或 HTTP history 中选中感兴趣的请求,右键 → Send to Repeater
也可点击顶部菜单的 Action
→ Send to Repeater
Step 2:进入 Repeater 模块查看请求
点击顶部 Repeater
模块,左侧标签页显示发过来的请求(编号如:[1]
, [2]
)
请求结构示例:
POST /login HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
Cookie: session=abc123username=admin&password=admin
可以修改任何部分(方法、路径、参数、Cookie、头部等)
Step 3:点击 Send 发起请求
点击右上角 Send
按钮,请求就会发出。
响应内容将展示在下方,可以查看:
-
Raw(原始响应)
-
HTML(网页渲染)
-
JSON(结构化数据)
-
Headers(响应头)
-
Pretty(格式化视图)
Step 4:复制、对比多个请求
Repeater 支持多标签页:
-
一个请求修改参数为
password=admin
-
另一个请求改为
password=123456
可以对比响应状态码、页面内容差异,从而判断:
-
是否存在弱口令
-
是否参数可注入
-
是否行为发生变化
4.2.3 应用场景详解
1)手动测试 SQL 注入
原始参数:id=1
尝试注入:id=1'
进一步测试:id=1 AND 1=1、id=1 AND 1=2
观察响应是否一致,用于判断注入点是否存在。
2)手动测试 XSS
q=test → 替换为:q=<script>alert(1)</script>
查看响应中是否被反射出来,或 HTML 是否被执行。
3)测试权限绕过
Authorization: Bearer admin-token→ 替换为:Authorization: Bearer guest-token
→ 删除认证头看响应是否一致
判断接口是否需要鉴权或存在越权风险点。
4)利用爆破 Payload 手动尝试绕过验证
可以逐个尝试不同的 Content-Type、Referer、Origin、路径绕过等:
/admin → /..;/admin
Referer: https://evil.com
X-Original-URL: /admin
=======================================
4.3 Intruder 模块:自动化爆破测试
4.3.1 功能概览
功能 | 描述 |
---|---|
密码爆破 | 爆破登录口令、验证码、Token 等 |
参数枚举 | 枚举接口参数值、文件名、路径等 |
多种攻击模式 | Sniper、Cluster Bomb、Pitchfork、Battering Ram |
加载字典 | 自定义字典进行有针对性攻击 |
响应差异对比 | 分析响应长度、状态码、内容等判断爆破成功与否 |
4.3.2 核心术语解释
术语 | 含义 |
---|---|
Payload | 要爆破或替换的值(如密码字典、用户名列表) |
Position | 插入 Payload 的位置,用 § 包裹 |
Attack Type | 攻击模式,控制 payload 如何插入多个位置 |
Payload Set | 一组 Payload 数据,对应一个 §§ 位置 |
Payload Processing | 可对 Payload 进行编码、添加前后缀等处理 |
4.3.3 操作流程
1)抓包发送到 Intruder
-
在 Proxy 模块或 HTTP History 中选择一个请求(如登录接口)
-
右键 → Send to Intruder
2)配置 Position(设置爆破位置)
在 Intruder → Positions 标签页,Burp 会自动标记所有可变字段(用 §
包住)
可以:
-
点击 Clear 清除所有标记
-
手动选中要爆破的字段,如
POST /login username=§admin§&password=§123456§
3)选择攻击类型(Attack Type)
模式 | 用途 | 示例 |
---|---|---|
Sniper | 单点替换 | 多个 payload 依次插入同一位置(最常用) |
Battering Ram | 所有位置使用同一 payload | 用于如“用户名=密码”情况 |
Pitchfork | 多个位置同步对应 payload | 第一个位置用 payload1[0],第二个用 payload2[0] |
Cluster Bomb | 多个位置做全组合 | 两组 payload 两两组合,爆破所有可能组合 |
4)加载字典(Payload)
进入 Payloads 标签页:
-
选择 Payload set:Set 1、Set 2(对应 § 位置)
-
填写 payload(如用户名、密码列表)
-
可以手动输入,也可以加载字典文件(如
rockyou.txt
)
示例:
admin
root
guest
test
5)开始攻击
点击右上角 Start Attack(注意:社区版速率有限)
会看到结果表格:
请求编号 | 状态码 | 长度 | 响应摘要 |
---|---|---|---|
1 | 200 | 450 | Login failed |
2 | 302 | 120 | Redirect to /dashboard |
4.3.4 实战案例
示例 1:爆破登录密码
请求体:
POST /login
username=admin&password=§123456§
使用字典:rockyou.txt
,观察是否出现状态码不同、返回 "Welcome" 字样。
示例 2:爆破后台目录
GET /§admin§ HTTP/1.1
Payload:admin
, dashboard
, manager
, console
如果返回 200,则该目录可能存在。
示例 3:枚举参数值
GET /product?id=§1§
Payload:1 到 100 的 ID,观察是否有“商品不存在”或真实商品返回信息。
=======================================
4.4 Scanner 模块(Pro):自动风险点扫描
4.4.1 功能概览
功能 | 描述 |
---|---|
主动扫描 | 主动发起各种攻击载荷,模拟真实攻击测试 |
被动扫描 | 分析正常请求响应内容,挖掘安全隐患 |
风险点识别 | SQL 注入、XSS、CSRF、SSRF、信息泄露、IDOR 等 |
修复建议 | 每个风险点报告中都有技术说明与修复建议 |
报告输出 | 支持导出 HTML、PDF 格式的风险点报告,便于整理与汇报 |
4.4.2 核心原理简析
主动扫描(Active Scanning)
-
对接口参数注入测试 Payload(如
'
,<script>
,../../etc/passwd
等) -
比较响应差异,判断是否存在风险点
-
使用 Burp 内置规则进行组合探测
被动扫描(Passive Scanning)
-
不发起额外请求,仅分析响应内容
-
检查 Headers 是否安全(如 CSP、X-Frame-Options 缺失)
-
分析信息泄露内容(如泄露服务器信息、版本号、内网路径等)
4.4.3 操作流程
1)启用自动扫描
进入:
Dashboard → Live Passive Crawl and Audit → Start Live Tasks
设置自动扫描触发方式(建议开启):
-
Live Passive Crawl
-
Live Active Audit (需专业版)
2)扫描目标网站
常见方法:
-
Proxy 抓包访问目标,Burp 自动记录并启动被动扫描
-
在 Target → Site map 中选择某个请求,右键 → Scan
-
自己构造请求(如登录请求),在 Repeater 中右键 Scan
-
在 Dashboard 中点击 New Scan → URL list,批量扫描多个目标
3)分析风险点结果
查看位置:
Dashboard → Issues
结果表格说明:
项目 | 描述 |
---|---|
Issue Type | 风险点类型(如 SQLi、XSS) |
Severity | 严重等级(高、中、低、信息) |
Confidence | Burp 判断该风险点的可信度 |
URL | 风险点对应的 URL |
Param | 存在问题的参数名称 |
点击任意风险点 → 查看详细信息:
-
风险点说明(Description)
-
复现步骤(Request/Response)
-
修复建议(Remediation)
4.4.4 识别的常见风险点类型
风险点类型 | 示例说明 |
---|---|
SQL Injection | 参数可被 SQL 注入语句操控,如 id=1' OR 1=1 -- |
XSS | 参数回显未过滤导致脚本注入 |
CSRF | 接口无鉴权控制,可被第三方伪造请求 |
信息泄露 | 页面泄露路径、调试信息、版本号等 |
Clickjacking | 页面未设置防点击劫持 Header |
Open Redirect | 参数可跳转任意 URL,可能用于钓鱼或绕过验证 |
Unencrypted Communications | 明文通信传输敏感信息(如账号密码) |
IDOR | 直接访问资源 ID 即可获得敏感数据,如 /user/12345 |
4.4.5 实战案例
示例 1:SQL 注入风险点发现
-
抓取请求
GET /product?id=3
-
右键 → Scan → 自动测试参数是否可注入
-
Scanner 发出类似测试:
id=3' OR '1'='1
id=3 AND 1=2
- 响应差异出现时,Scanner 会标记 SQL 注入并提示风险等级
示例 2:信息泄露
-
浏览网站首页 → 响应头中包含
X-Powered-By: PHP/7.3.0
-
被动扫描自动标记:泄露服务器版本,建议移除或模糊化信息
示例 3:XSS 测试
-
请求中包含
search=xxx
-
Scanner 发出 payload:
<script>alert(1)</script>
- 响应中原样回显,被标记为反射型 XSS
=======================================
4.5 Target 模块:目标资源管理
4.5.1 功能总览
功能分类 | 描述 |
---|---|
Site map | 展示网站完整结构、目录、接口列表 |
Scope 设置 | 设定测试范围,避免扫描/测试外部网站 |
请求详情查看 | 查看请求/响应、Header、参数、Cookies 等 |
一键跳转 | 右键直接送到 Repeater、Scanner、Intruder 模块 |
高亮标记 | 对特定路径进行颜色分类标注(重点目标) |
界面 Filter | 精确过滤指定路径、状态码、方法、内容类型等 |
4.5.2 Site map(站点地图)
显示方式
-
树状结构展示网站的页面、API 路径
-
每一个目录节点下挂载其资源请求
-
动态构建,访问或扫描后自动生成
信息维度
-
URL
-
请求方法(GET/POST/PUT 等)
-
状态码(200、403、500 等)
-
请求大小、响应类型
-
是否为参数化接口
示例:
example.com/
├── login.php
├── api/
│ ├── user?id=1
│ └── data
├── admin/
│ └── index.php
4.5.3 Scope(作用域设置)
建议操作第一步就是设置 Scope!
设置方法
路径:
Target → Scope → Add
可以添加:
-
单个 URL(https://example.com)
-
模糊路径(https://example.com/api/*)
-
正则匹配(更灵活)
功能用途
功能 | 描述 |
---|---|
限定扫描 | Scanner 只对作用域内 URL 发起请求 |
限定抓包 | Proxy 会提示你是否要拦截非作用域请求 |
安全防止误扫 | 避免扫到公网、生产、他人站点 |
提高效率 | 减少扫描负担、干扰信息 |
4.5.4 请求查看与管理
可以点击站点地图中的任意请求,查看详情:
请求细节:
-
请求行(如
GET /user?id=1
) -
请求头(Header)
-
Cookies
-
请求体(POST 数据)
响应详情:
-
状态码(如 200、403)
-
响应头
-
HTML 内容
-
JS/JSON 内容
-
可直接双击发送到
Repeater
或Intruder
4.5.5 过滤器(Filter)
Target 模块支持强大的过滤机制:
点击页面右上角 Filter(或使用 Filter 面板),可设置:
筛选项 | 说明 |
---|---|
Method | 仅查看 GET / POST 请求等 |
MIME Type | 限定 Content-Type,如 HTML/JSON |
Status | 状态码,如 仅查看 200 或 403 页面 |
In Scope | 是否为作用域内 URL |
Parameter | 是否带有参数 |
Request/Response 字符串匹配 | 关键字搜索内容 |
4.5.6 快捷功能(右键菜单)
在 Site Map 中点击任意一条请求 → 右键,可操作:
功能 | 说明 |
---|---|
Send to Repeater | 送去重放测试 |
Send to Intruder | 送去参数爆破 |
Send to Scanner | 发起风险点扫描 |
Add to scope | 加入作用域 |
Copy URL / Raw | 复制请求 |
Highlight | 高亮标记 |
Add Comment | 添加备注 |
4.5.7 使用建议流程
-
开启抓包访问目标网站
-
Proxy → 抓数据
-
-
查看 Site Map 自动生成结构
-
Target → Site Map 自动记录接口
-
-
设置 Scope,限定测试范围
-
Target → Scope → Add → example.com
-
-
选取目标接口,右键送到 Repeater/Scanner/Intruder
-
精准测试目标资源
-
-
高亮重点路径 / 标注可疑接口
-
后续更好管理、复测
-
=======================================
4.6 Decoder 模块:编码/解码/哈希处理
4.6.1 功能概览
功能 | 描述 |
---|---|
编码 | 支持多种编码格式(Base64、URL、Hex 等) |
解码 | 对请求中加密/混淆内容进行还原 |
哈希生成 | 快速生成 MD5、SHA1、SHA256 等哈希 |
美化/压缩 | 格式化 JSON、HTML、JS 等内容,便于阅读 |
字符分析 | ASCII、Unicode 码查看 |
4.6.2 支持的常见格式
类型 | 示例 | 说明 |
---|---|---|
Base64 | YWRtaW4= → admin | 常用于 Token、账号信息 |
URL 编码 | %3Cscript%3E → <script> | 常用于 URL 参数、XSS 检测 |
Hex 编码 | 0x61 → a | 用于低层传输、编码 |
HTML 编码 | <div> → <div> | 防止前端渲染 XSS |
MD5 哈希 | admin → 21232f297a57a5a743894a0e4a801fc3 | 弱密码爆破时常见 |
SHA-1/256 哈希 | 用于签名验证、完整性校验 |
4.6.3 操作流程示例
Step 1: 打开 Decoder
路径:
Burp Suite → Decoder
会看到两个窗口:
-
上方为输入窗口(原始数据)
-
下方为输出窗口(编码或解码结果)
Step 2: 粘贴原始内容
例子:拦截到一个参数如下:
token=YWRtaW4=
粘贴 YWRtaW4=
到 Decoder 上方区域。
Step 3: 点击 Decode As → Base64
操作:
右键 → Decode As → Base64
下方立即显示结果:
admin
说明这个 Base64 编码就是 "admin"。
Step 4: 尝试编码、哈希等操作
可以继续:
-
右键 → Encode As → URL/Hex/Base64(反向操作)
-
右键 → Hash → MD5/SHA1/SHA256
例子:
admin → MD5 → 21232f297a57a5a743894a0e4a801fc3
-------
组合示例:Base64 + URL 双重编码
参数:
token=YVdSbGJuTjFjbVV1WTI5dA%3D%3D
分析流程:
-
先 URL 解码:
YVdSbGJuTjFjbVV1WTI5dA== → Base64 字符
- 然后 Base64 解码:
admin123(明文)
Decoder 可连续使用:
右键 Decode As → URL → Decode As → Base64
=======================================
4.7 Comparer 模块:请求响应对比
4.7.1 功能概览
功能 | 说明 |
---|---|
文本对比 | 对比任意两段文本(如参数、页面代码) |
请求对比 | 比较两个 HTTP 请求之间的差异 |
响应对比 | 对比两个 HTTP 响应的差异 |
字节级 / 行级 / 单词级 对比 | 更细粒度的差异标注 |
4.7.2 模块入口与操作方式
Step 1: 打开 Comparer 模块
路径:
Burp Suite → Comparer
界面上会显示:
-
Item 1:左边对比项
-
Item 2:右边对比项
Step 2: 添加对比内容
可以从其他模块(如 Repeater、Proxy、Target)中 右键 → Send to Comparer
支持内容类型:
-
Request(请求)
-
Response(响应)
-
任意选中内容(字符串、HTML)
Step 3: 开始对比
对比完成后,可选择不同对比视图:
对比方式 | 说明 |
---|---|
Words | 按单词对比(默认) |
Lines | 按行对比 |
Bytes | 按字节对比(最精确) |
差异处会高亮显示,一目了然。
4.7.3 实战应用示例
示例 1:SQL 注入是否生效?
-
修改参数 ID:
-
请求 1:
id=1
-
请求 2:
id=1'
-
发送两个响应到 Comparer 模块
→ 若对比发现页面结构/错误信息明显不同,说明注入有效。
示例 2:登录成功与失败响应
-
请求 1:正常密码 → 返回“Welcome admin”
-
请求 2:错误密码 → 返回“Login failed”
通过 Comparer 比较响应
→ 可精确识别响应中是否出现标志性信息,判断登录成功逻辑。
示例 3:XSS 回显验证
插入 payload:
<script>alert(1)</script>
比较修改前和修改后的响应:
-
如果返回中包含
<script>alert(1)</script>
,说明存在反射型 XSS。 -
如果过滤或消失,可能被 WAF 拦截或应用做了编码处理。
示例 4:参数污染测试
-
请求 1:单个参数:
user=admin
-
请求 2:重复参数:
user=admin&user=test
比较响应 → 判断是否存在参数优先级风险点或逻辑偏差。
4.7.4 常见风险点对比实战
风险点类型 | 对比对象 |
---|---|
SQL 注入 | 正常参数响应 vs 注入参数响应 |
XSS | 普通搜索关键词 vs 注入 XSS payload |
文件包含 | 正常路径请求 vs 带 ../etc/passwd 路径 |
登录认证 | 错误 vs 正确凭据响应差异 |
权限绕过 | 管理员 vs 普通用户请求响应内容 |
=======================================
4.8 Extender 模块:插件拓展系统
4.8.1 模块作用概览
Extender 模块 让 Burp 具备了极强的“可定制性”。可以通过它:
功能 | 说明 |
---|---|
加载插件 | 官方 BApp Store 提供大量插件 |
编写插件 | 支持 Java / Python(通过 Jython)编写自定义功能 |
增强功能 | 提供扫描增强、指纹识别、编码工具、字典生成器等能力 |
控制插件行为 | 启用/禁用插件、查看错误日志等 |
4.8.2 插件安装(使用 BApp Store)
Step 1: 打开 Extender 模块
进入:
Burp → Extender → BApp Store
Step 2: 安装插件
在 BApp Store 中:
-
搜索想要的插件,如
Hackvertor
、Autorize
、JSON Beautifier
等 -
点击右侧的
Install
即可自动安装并启用插件
安装后插件通常会出现在顶部菜单栏,或整合到其他模块(如 Repeater/Proxy/Scanner)中。
4.8.3 自定义插件开发(Java / Python)
语言支持
语言 | 描述 |
---|---|
Java | 官方推荐,直接编译成 JAR 包 |
Python | 通过 Jython 加载 Python 脚本(需配置 Jython 环境) |
环境配置(Python 插件)
1)下载 Jython 的 jar 包(如:jython-standalone-2.7.2.jar
) 下载地址
2)设置 Interpreter 路径:
Burp → Extender → Options → Python Environment → Set Jython Location
3)加载插件脚本:
Burp → Extender → Extensions → Add → Extension Type: Python → 选择 .py 文件
插件模板(Python 示例)
from burp import IBurpExtenderclass BurpExtender(IBurpExtender):def registerExtenderCallbacks(self, callbacks):self._callbacks = callbacksself._helpers = callbacks.getHelpers()callbacks.setExtensionName("Hello Burp")print("[*] Hello from your custom Burp plugin!")
这是一个最简单的插件,加载后会在控制台输出一句话。
可以继续拓展功能,如自动修改请求参数、记录日志、生成 payload 等。
4.8.4 常用插件推荐
插件名称 | 功能 | 类型 |
---|---|---|
Hackvertor | 编解码、字符混淆、payload 转换 | 渗透辅助 |
Autorize | 自动测试权限绕过风险点 | 权限测试 |
Logger++ | 强化日志记录,支持搜索与分析 | 请求记录 |
JSON Beautifier | 格式化 JSON,提高可读性 | 调试分析 |
JS Miner | 抓取页面中的 JS 文件 | 前端分析 |
Burp Bounty Pro(付费) | 高级扫描规则编写 | 扫描器扩展 |
Request Smuggler | 测试 HTTP 请求走私风险点 | 协议安全 |
Active Scan++ | 增强主动扫描插件 | 自动化测试 |
Software Vulnerability Scanner | 检查 JS/框架中存在的 CVE 风险点 | 第三方库检测 |
4.8.5 插件加载后的结构
在 Burp 界面中:
-
Extender → Extensions:管理所有已加载插件
-
Extender → Options:配置环境、查看错误日志、输出插件 console
-
某些插件会新建独立 Tab,如
Hackvertor
、Autorize
会出现在顶栏
4.8.6 实战应用举例
情景 1:批量权限绕过测试
使用插件:Autorize
-
登录管理员账号,抓包任意请求
-
切换为普通用户,打开 Autorize 插件
-
自动重复请求并对比响应差异 → 快速识别哪些接口未做权限校验
情景 2:构造复杂 payload 编码
使用插件:Hackvertor
-
将
<script>alert(1)</script>
编码成:
\x3cscript\x3ealert(1)\x3c/script\x3e
- 或 Base64/URL/Unicode 编码,生成多种混淆形式,绕过 WAF 规则。
情景 3:发现隐藏 JS 中的密钥信息
使用插件:JS Miner
-
自动扫描当前页面中加载的所有 JavaScript 文件
-
抓取并分析敏感关键字(如 token、key、api 等)
-
节省大量手工分析时间
五、常用使用流程
5.1 配置代理 + 安装证书
设置 Burp 的代理监听地址
打开:
Proxy → Options → Proxy Listeners
默认监听地址:
127.0.0.1:8080
配置浏览器代理
方式一(推荐):
-
使用插件
FoxyProxy
设置代理为127.0.0.1:8080
方式二(手动):
-
Chrome/Firefox → 设置 → 网络设置 → 手动代理 → 填入上面地址
安装 Burp 的 CA 根证书(避免 HTTPS 报错)
步骤:
-
访问
http://burpsuite
(必须配置了代理才能访问) -
下载 CA 证书(点击“CA Certificate”)
-
导入浏览器:
-
Chrome:设置 → 隐私 → 证书管理 → 导入
-
Firefox:设置 → 隐私与安全 → 证书 → 查看证书 → 导入
-
完成后,Burp 能无障碍抓取 HTTPS 请求(如登录请求)
=======================================
5.2 抓包与请求拦截
进入模块:
Proxy → Intercept
功能说明:
操作 | 说明 |
---|---|
Intercept is ON | 拦截浏览器请求,可手动查看与修改 |
Forward | 转发请求 |
Drop | 丢弃请求(可用于阻断恶意请求) |
Send to Repeater | 发送请求到 Repeater 模块,便于手动测试 |
HTTP history | 查看历史请求,支持过滤、搜索 |
=======================================
5.3 手动风险点测试(Repeater 模块)
进入模块:
Repeater
操作流程:
-
将请求右键
Send to Repeater
-
在 Repeater 中手动修改参数进行测试:
-
改参数名、值
-
构造注入 payload
-
-
点击
Send
,查看返回响应 → 比较响应差异
常用于:
-
SQL 注入、XSS、逻辑风险点验证
-
绕过身份验证
-
对比正常与异常请求的不同
=======================================
5.4 爆破测试(Intruder 模块)
进入模块:
Intruder → Positions
功能与步骤:
-
右键请求 →
Send to Intruder
-
设置攻击位置(${} 包围的参数)
-
选择攻击模式:
模式 | 说明 |
---|---|
Sniper | 针对单个参数依次尝试 |
Cluster Bomb | 多参数组合测试(笛卡尔积) |
Pitchfork | 多参数一对一测试 |
Battering Ram | 所有参数统一使用同一 payload |
-
加载字典(Common.txt、password.lst等)
-
启动攻击,分析响应长度/状态码变化
=======================================
5.5 自动扫描(仅限 Burp Pro)
进入模块:
Dashboard → New Scan
或:
-
Proxy 请求右键 → Actively Scan
-
Target 树右键 → Scan this host
功能:
-
被动扫描:分析你访问过的请求中的潜在风险点(无需手动触发)
-
主动扫描:模拟各种攻击请求进行测试
可识别风险点类型:
-
SQLi、XSS、CSRF、命令注入、敏感信息泄露等
-
提供详细风险点描述、请求响应内容、修复建议
六、实战演练
示例 1:登录爆破
场景:
目标系统有一个登录表单:
POST /login
username=admin&password=xxxxx
步骤:
-
代理拦截登录请求 →
Send to Intruder
-
Payload 设置:
-
选择密码字段为位置参数(Payload Position)
-
加载密码字典(如
rockyou.txt
)
-
-
启动攻击 → 查看响应差异:
-
响应状态码不同
-
响应体含有“Welcome” 等关键字
-
成功判断出正确密码。
=======================================
示例 2:SQL 注入测试
目标 URL:
GET /product?id=1
手动注入测试:
- 改成:
/product?id=1' OR '1'='1
-
拦截 →
Send to Repeater
→ 发送请求
如果页面响应正常内容而非报错,说明可能存在 SQL 注入
更高级 payload 如:
1 AND SLEEP(5) -- (测试盲注)
1' ORDER BY 3 --
可配合 sqlmap
进一步自动化测试
=======================================
示例 3:XSS 检测
输入点:
http://site.com/search?q=hello
尝试 payload:
<script>alert(1)</script>
步骤:
-
修改 URL 为:
/search?q=<script>alert(1)</script>
-
拦截 →
Send to Repeater
→ 发送请求 -
查看返回页面中是否存在原样输出(未编码处理)
若弹窗或源码中出现 <script>alert(1)</script>
,存在反射型 XSS
进阶 payload 示例:
"><img src=x onerror=alert(1)>
<svg/onload=alert(1)>
七、推荐靶场 & 练习平台
靶场/平台 | 地址 |
---|---|
DVWA | https://github.com/digininja/DVWA |
bWAPP | https://sourceforge.net/projects/bwapp/ |
PortSwigger Labs | https://portswigger.net/web-security |
WebGoat | https://owasp.org/www-project-webgoat/ |
八、总结
Burp Suite 是一个功能极其强大的 Web 安全测试平台,初学者可以从抓包和 Repeater 开始,逐步掌握 Intruder、Scanner、插件扩展等进阶功能。在实战中合理组合使用这些模块,能显著提升渗透效率与发现风险点的能力。