mcpField
B
Burp Suite Web Application Testing

Burp Suite Web Application Testing

github.com/davila7安全33.0k242 次安装今天更新
代码仓库

关于 Burp Suite Web Application Testing

使用 Burp Suite 开展 Web 应用安全测试的技能,涵盖 HTTP 拦截、请求分析、手动测试和扫描结果审查。面向获准测试,并说明 Community 与 Professional 版本的能力差异。

主要功能

  1. 01拦截并修改 HTTP 流量
  2. 02查看历史记录并设置目标范围
  3. 03重放请求并分析响应
  4. 04运行 Professional 版漏洞扫描
  5. 05配置 Intruder 载荷攻击

适用场景

  1. 01在获准的应用测试中检查请求
  2. 02测试参数处理和业务逻辑
  3. 03通过响应查找漏洞迹象
  4. 04扫描范围内目标并记录发现

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davila7/claude-code-templates --skill burp-suite-web-application-testing

安装后在 Claude Code 中输入/burp-suite-web-application-testing确认已加载。

详细介绍

Burp Suite Web 应用测试

目的

使用 Burp Suite 的集成工具集执行全面的 Web 应用安全测试,包括 HTTP 流量拦截与修改、请求分析与重放、自动化漏洞扫描以及手动测试工作流。此技能通过基于代理的测试方法,帮助系统地发现和利用 Web 应用漏洞。

输入 / 前提条件

所需工具
  • 已安装 Burp Suite Community 或 Professional Edition
  • Burp 内置浏览器或已配置的外部浏览器
  • 目标 Web 应用 URL
  • 用于身份验证测试的有效凭据(如适用)
环境设置
  • 使用临时项目或命名项目启动 Burp Suite
  • 代理监听器在 127.0.0.1:8080(默认)处处于活动状态
  • 浏览器已配置为使用 Burp 代理(或使用 Burp 浏览器)
  • 已安装用于 HTTPS 拦截的 CA 证书
版本对比
功能CommunityProfessional
代理✓✓
Repeater✓✓
Intruder有限完整
Scanner✗✓
扩展✓✓

输出 / 交付物

主要输出
  • 已拦截和修改的 HTTP 请求/响应
  • 附带修复建议的漏洞扫描报告
  • HTTP 历史记录和站点地图文档
  • 已识别漏洞的概念验证利用代码

核心工作流

阶段 1:拦截 HTTP 流量
启动 Burp 浏览器

打开集成浏览器以实现无缝代理集成:

  1. 打开 Burp Suite 并创建/打开项目
  2. 转到 Proxy > Intercept 选项卡
  3. 点击 Open Browser 启动预配置的浏览器
  4. 调整窗口位置,以便同时查看 Burp 和浏览器
配置拦截

控制要捕获的请求:

Proxy > Intercept > Intercept is on/off toggle

When ON: Requests pause for review/modification
When OFF: Requests pass through, logged to history
拦截并转发请求

处理被拦截的流量:

  1. 将拦截开关设为 Intercept on
  2. 在浏览器中导航到目标 URL
  3. 在 Proxy > Intercept 选项卡中查看被挂起的请求
  4. 检查请求内容(标头、参数、正文)
  5. 点击 Forward 将请求发送到服务器
  6. 继续转发后续请求,直到页面加载完成
查看 HTTP 历史记录

访问完整的流量日志:

  1. 转到 Proxy > HTTP history 选项卡
  2. 点击任意条目以查看完整请求/响应
  3. 点击列标题进行排序(# 表示按时间顺序)
  4. 使用筛选器聚焦相关流量
阶段 2:修改请求
拦截并修改

在转发前更改请求参数:

  1. 启用拦截:Intercept on
  2. 在浏览器中触发目标请求
  3. 在被拦截的请求中找到要修改的参数
  4. 在请求编辑器中直接编辑值
  5. 点击 Forward 发送修改后的请求
常见修改目标
目标示例用途
价格参数price=1测试业务逻辑
用户 IDuserId=admin测试访问控制
数量值qty=-1测试输入验证
隐藏字段isAdmin=true测试权限提升
示例:价格篡改
POST /cart HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

productId=1&quantity=1&price=100

# Modify to:
productId=1&quantity=1&price=1

结果:商品以修改后的价格加入购物车。

阶段 3:设置目标范围
定义范围

将测试聚焦于特定目标:

  1. 转到 Target > Site map
  2. 在左侧面板中右键点击目标主机
  3. 选择 Add to scope
  4. 出现提示时,点击 Yes 以排除范围外流量
按范围筛选

从 HTTP 历史记录中移除无关内容:

  1. 点击 HTTP 历史记录上方的显示筛选器
  2. 选择 Show only in-scope items
  3. 历史记录现在只显示目标站点的流量
范围的优势
  • 减少第三方请求造成的杂乱
  • 防止意外测试范围外的站点
  • 提高扫描效率
  • 生成更简洁的报告
阶段 4:使用 Burp Repeater
将请求发送到 Repeater

准备请求以进行手动测试:

  1. 在 HTTP 历史记录中识别有趣的请求
  2. 右键单击请求并选择 发送到 Repeater
  3. 转到 Repeater 选项卡以访问请求
修改并重新发送

高效测试不同输入:

1. View request in Repeater tab
2. Modify parameter values
3. Click Send to submit request
4. Review response in right panel
5. Use navigation arrows to review request history
Repeater 测试工作流
Original Request:
GET /product?productId=1 HTTP/1.1

Test 1: productId=2    → Valid product response
Test 2: productId=999  → Not Found response  
Test 3: productId='    → Error/exception response
Test 4: productId=1 OR 1=1 → SQL injection test
分析响应

查找漏洞迹象:

  • 揭示堆栈跟踪的错误消息
  • 框架/版本信息泄露
  • 响应长度不同,可能表明存在逻辑缺陷
  • 时间差异可能表明存在盲注
  • 响应中出现意外数据
阶段 5:运行自动扫描
启动新扫描

启动漏洞扫描(仅限 Professional):

  1. 转到 Dashboard 选项卡
  2. 点击 新建扫描
  3. 在 要扫描的 URL 字段中输入目标 URL
  4. 配置扫描设置
扫描配置选项
模式描述时长
轻量高层概览约 15 分钟
快速快速漏洞检查约 30 分钟
平衡标准全面扫描约 1-2 小时
深度彻底测试数小时
监控扫描进度

跟踪扫描活动:

  1. 在 Dashboard 中查看任务状态
  2. 实时观察 Target > Site map 的更新
  3. 在 Issues 选项卡中查看发现的漏洞
查看已识别的问题

分析扫描结果:

  1. 在 Dashboard 中选择扫描任务
  2. 转到 Issues 选项卡
  3. 点击问题以查看:
    • 建议:描述和修复方法
    • 请求:触发问题的 HTTP 请求
    • 响应:显示漏洞的服务器响应
阶段 6:Intruder 攻击
配置 Intruder

设置自动化攻击:

  1. 将请求发送到 Intruder(右键单击 > 发送到 Intruder)
  2. 转到 Intruder 选项卡
  3. 使用 § 标记定义有效载荷位置
  4. 选择攻击类型
攻击类型
类型描述使用场景
狙击手单个位置,迭代有效载荷对一个参数进行模糊测试
攻城锤所有位置使用相同的有效载荷凭据测试
音叉并行迭代有效载荷用户名:密码组合
集束炸弹所有有效载荷组合完全暴力破解
配置有效载荷
Positions Tab:
POST /login HTTP/1.1
...
username=§admin§&password=§password§

Payloads Tab:
Set 1: admin, user, test, guest
Set 2: password, 123456, admin, letmein
分析结果

查看攻击输出:

  • 按响应长度排序以查找异常
  • 按状态代码筛选成功的尝试
  • 使用 grep 搜索特定字符串
  • 导出结果以用于文档记录

快速参考

键盘快捷键
操作Windows/LinuxmacOS
转发请求Ctrl+FCmd+F
丢弃请求Ctrl+DCmd+D
发送到 RepeaterCtrl+RCmd+R
发送到 IntruderCtrl+ICmd+I
切换拦截Ctrl+TCmd+T
常用测试有效载荷
# SQL Injection
' OR '1'='1
' OR '1'='1'--
1 UNION SELECT NULL--

# XSS
<script>alert(1)</script>
"><img src=x onerror=alert(1)>
javascript:alert(1)

# Path Traversal
../../../etc/passwd
..\..\..\..\windows\win.ini

# Command Injection
; ls -la
| cat /etc/passwd
`whoami`
请求修改提示
  • 右键单击以查看上下文菜单选项
  • 使用解码器进行编码/解码
  • 使用 Comparer 工具比较请求
  • 将有趣的请求保存到项目中

限制和防护措施

操作边界
  • 仅测试已获授权的应用程序
  • 配置范围,以防意外测试范围外的目标
  • 限制扫描速率,以避免拒绝服务
  • 记录所有发现和操作
技术限制
  • Community Edition 不提供自动扫描器
  • 某些网站可能会拦截代理流量
  • HSTS/证书固定可能需要额外配置
  • 大规模扫描可能触发 WAF 拦截
最佳实践
  • 在进行大量测试前,务必设置目标范围
  • 使用 Burp 的浏览器以确保可靠拦截
  • 定期保存项目以保留工作成果
  • 手动检查扫描结果,排除误报

示例

示例 1:业务逻辑测试

场景:操纵电子商务价格

  1. 正常将商品加入购物车并拦截请求
  2. 在 POST 请求正文中找到 price=9999 参数
  3. 将其修改为 price=1
  4. 转发请求
  5. 按操纵后的价格完成结账

发现:服务器信任客户端提供的价格值。

示例 2:绕过身份验证

场景:测试登录表单

  1. 提交有效凭据,在 Repeater 中捕获请求
  2. 将请求发送到 Repeater 进行测试
  3. 尝试:username=admin' OR '1'='1'--
  4. 观察成功登录的响应

发现:身份验证中存在 SQL 注入。

示例 3:信息泄露

场景:基于错误的信息收集

  1. 导航到产品页面,观察 productId 参数
  2. 将请求发送到 Repeater
  3. 将 productId=1 更改为 productId=test
  4. 观察详细错误信息,其中泄露了框架版本

发现:堆栈跟踪中泄露了 Apache Struts 2.5.12。

故障排除

浏览器未通过代理连接
  • 确认代理侦听器已启用(Proxy > Options)
  • 检查浏览器代理设置是否指向 127.0.0.1:8080
  • 确保防火墙未阻止本地连接
  • 使用 Burp 内置浏览器以确保可靠配置
HTTPS 拦截失败
  • 在浏览器/系统中安装 Burp CA 证书
  • 导航到 http://burp 下载证书
  • 将证书添加到受信任的根证书
  • 安装后重启浏览器
性能缓慢
  • 限制范围以减少处理量
  • 禁用不必要的扩展
  • 在启动选项中增加 Java 堆大小
  • 关闭未使用的 Burp 标签页和功能
请求未被拦截
  • 确认已启用“Intercept on”
  • 检查拦截规则是否过滤了目标
  • 确保浏览器正在使用 Burp 代理
  • 确认目标未使用不受支持的协议

评论

支持 Markdown