关于 burp-suite-testing
burp-suite-testing 是使用 Burp Suite 进行授权 Web 应用安全评估的技能,涵盖代理流量检查、请求重放与修改、手动测试及 Professional 版扫描。主动测试前要求确认书面授权和范围。
主要功能
- 01拦截并检查 HTTP 流量
- 02修改并重放请求
- 03设置目标范围与过滤器
- 04运行 Professional 漏洞扫描
- 05查看发现项及修复建议
适用场景
- 01测试获准应用的访问控制
- 02在沙箱中检查输入处理
- 03记录扫描发现以便修复
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill burp-suite-testing安装后在 Claude Code 中输入/burp-suite-testing确认已加载。
详细介绍
⚠️ 仅限授权使用 此技能仅用于教育目的或经授权的安全评估。 使用此工具前,必须获得系统所有者明确的书面许可。 滥用此工具属于违法行为,且严格禁止。
强制确认关卡 在运行任何会探测、利用、更改目标、在目标上建立持久性、从目标提取数据或尝试获取目标凭据的命令之前:
- 请用户说明确切的目标 URL、IP、账号或资源。
- 请用户确认已获得书面授权,并说明许可范围。
- 展示确切的命令,并解释其预期效果。
- 等待用户在当前对话中明确确认。
未获得此确认时,只能进行只读操作,并仅提供防御性指导。优先使用沙盒、一次性 VM 或受控实验室。
仅限授权使用:此技能仅可用于经授权的安全评估、防御性验证或受控的教育环境。
Burp Suite Web 应用测试
目的
使用 Burp Suite 集成的工具集执行全面的 Web 应用安全测试,包括 HTTP 流量拦截与修改、请求分析与重放、自动化漏洞扫描以及手动测试工作流。此技能通过基于代理的测试方法,支持系统地发现和利用 Web 应用漏洞。
使用专用测试浏览器/配置文件,并且只在其中信任 Burp 的 CA;完成后移除该信任。范围筛选器可减少干扰,但不是安全边界:请明确限制扫描/重放的目标、重定向、外部服务、账号操作和速率预算。凭据测试需要指定测试账号,并设置尝试次数/锁定限制。请妥善保管捕获的会话,并在报告中删去令牌/密码。以下示例均为假设内容,并非评估结果。
输入/前置条件
必需工具
- 已安装 Burp Suite Community 或 Professional Edition
- Burp 内置浏览器或已配置的外部浏览器
- 目标 Web 应用 URL
- 用于已验证测试的有效凭据(如适用)
环境设置
- 已启动 Burp Suite,并创建/打开临时或命名项目
- 代理监听器已在 127.0.0.1:8080 上激活(默认)
- 浏览器已配置为使用 Burp 代理(或使用 Burp 的浏览器)
- 已安装用于 HTTPS 拦截的 CA 证书
版本对比
| 功能 | Community | Professional |
|---|---|---|
| 代理 | ✓ | ✓ |
| Repeater | ✓ | ✓ |
| Intruder | 有限 | 完整 |
| Scanner | ✗ | ✓ |
| 扩展 | ✓ | ✓ |
输出/交付物
主要输出
- 已拦截和修改的 HTTP 请求/响应
- 包含修复建议的漏洞扫描报告
- HTTP 历史记录和站点地图文档
- 已识别漏洞的概念验证攻击代码
核心工作流
阶段 1:拦截 HTTP 流量
启动 Burp 的浏览器
打开集成浏览器,以无缝集成代理:
- 打开 Burp Suite 并创建/打开项目
- 转到 Proxy > Intercept 选项卡
- 点击 Open Browser,启动预配置的浏览器
- 调整窗口位置,以便同时查看 Burp 和浏览器
配置拦截
控制捕获哪些请求:
Proxy > Intercept > Intercept is on/off toggle
When ON: Requests pause for review/modification
When OFF: Requests pass through, logged to history
拦截并转发请求
处理拦截的流量:
- 将拦截开关设为 Intercept on
- 在浏览器中导航到目标 URL
- 在 Proxy > Intercept 选项卡中查看被暂停的请求
- 检查请求内容(标头、参数、正文)
- 点击 Forward,将请求发送到服务
- 持续转发后续请求,直至页面加载完成
查看 HTTP 历史记录
查看完整的流量日志:
- 转到 Proxy > HTTP history 选项卡
- 点击任意条目以查看完整的请求/响应
- 点击列标题进行排序(点击 # 可按时间顺序排列)
- 使用筛选器聚焦相关流量
阶段 2:修改请求
拦截和修改
在转发前更改请求参数:
- 启用拦截:开启拦截
- 在浏览器中触发目标请求
- 在拦截的请求中找到要修改的参数
- 直接在请求编辑器中编辑值
- 点击 转发 发送修改后的请求
常见修改目标
| 目标 | 示例 | 用途 |
|---|---|---|
| 价格参数 | price=1 | 测试业务逻辑 |
| 用户 ID | userId=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:设置目标范围
定义范围
将测试重点放在特定目标上:
- 前往 Target > Site map
- 在左侧面板中右键点击目标主机
- 选择 Add to scope
- 出现提示时,点击 Yes,以排除范围外的流量
按范围筛选
从 HTTP 历史记录中移除无关内容:
- 点击 HTTP 历史记录上方的显示筛选器
- 选择 Show only in-scope items
- 历史记录现在仅显示目标站点的流量
范围的优势
- 减少第三方请求造成的干扰
- 防止意外测试范围外的站点
- 提高扫描效率
- 生成更简洁的报告
阶段 4:使用 Burp Repeater
将请求发送到 Repeater
准备请求以进行手动测试:
- 在 HTTP 历史记录中找到有意义的请求
- 右键点击请求并选择 Send to Repeater
- 前往 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 版支持):
- 前往 Dashboard 标签页
- 点击 New scan
- 在 URLs to scan 字段中输入目标 URL
- 配置扫描设置
扫描配置选项
| 模式 | 描述 | 时长 |
|---|---|---|
| 轻量级 | 高层级概览 | ~15 分钟 |
| 快速 | 快速漏洞检查 | ~30 分钟 |
| 平衡 | 标准全面扫描 | ~1-2 小时 |
| 深度 | 全面测试 | 数小时 |
监控扫描进度
跟踪扫描活动:
- 在 Dashboard 中查看任务状态
- 实时查看 Target > Site map 的更新
- 在 Issues 标签页中查看已发现的漏洞
查看已识别的问题
分析扫描结果:
- 在 Dashboard 中选择扫描任务
- 前往 Issues 标签页
- 点击问题以查看:
- Advisory:描述和修复建议
- Request:触发该问题的 HTTP 请求
- Response:显示漏洞的服务器响应
阶段 6:Intruder 攻击
配置 Intruder
设置自动化攻击:
- 将请求发送到 Intruder(右键点击 > Send to Intruder)
- 前往 Intruder 标签页
- 使用 § 标记定义载荷位置
- 选择攻击类型
攻击类型
| 类型 | 描述 | 用例 |
|---|---|---|
| Sniper | 单个位置,逐个迭代载荷 | 对单个参数进行模糊测试 |
| Battering ram | 所有位置使用相同载荷 | 凭据测试 |
| Pitchfork | 并行迭代载荷 | 用户名:密码对 |
| Cluster bomb | 所有载荷组合 | 完全暴力破解 |
配置载荷
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/Linux | macOS |
|---|---|---|
| 转发请求 | Ctrl+F | Cmd+F |
| 丢弃请求 | Ctrl+D | Cmd+D |
| 发送到 Repeater | Ctrl+R | Cmd+R |
| 发送到 Intruder | Ctrl+I | Cmd+I |
| 切换拦截 | Ctrl+T | Cmd+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`
请求修改技巧
- 右键打开上下文菜单选项
- 使用 decoder 进行编码/解码
- 使用 Comparer 工具比较请求
- 将有用的请求保存到项目中
限制和防护措施
操作边界
- 仅测试获得授权的应用程序
- 配置范围,避免意外测试范围之外的目标
- 限制扫描速率,避免拒绝服务
- 记录所有发现和操作
技术限制
- Community Edition 不具备自动扫描器
- 某些网站可能会拦截代理流量
- HSTS/证书固定可能需要额外配置
- 大规模扫描可能触发 WAF 拦截
最佳实践
- 在进行广泛测试前,务必设置目标范围
- 使用 Burp 的浏览器,确保可靠拦截
- 定期保存项目,以保留工作成果
- 手动检查扫描结果,排除误报
示例
示例 1:业务逻辑测试
场景:电商价格篡改
- 正常将商品加入购物车,拦截请求
- 在 POST 正文中找到
price=9999参数 - 将其修改为
price=1 - 转发请求
- 使用沙盒购物车/测试支付验证由服务器计算的总金额;未经单独明确授权,不要下真实订单
发现:服务器信任客户端提供的价格值。
示例 2:绕过身份验证
场景:测试登录表单
- 提交有效凭据,在 Repeater 中捕获请求
- 将请求发送到 Repeater 进行测试
- 尝试:
username=admin' OR '1'='1'-- - 观察是否收到成功登录响应
发现:身份验证中存在 SQL 注入。
示例 3:信息泄露
场景:基于错误的信息收集
- 访问产品页面,观察
productId参数 - 将请求发送到 Repeater
- 将
productId=1改为productId=test - 观察错误信息是否泄露框架版本
发现:堆栈跟踪中泄露了 Apache Struts 2.5.12。
故障排除
浏览器无法通过代理连接
- 确认代理侦听器处于活动状态(Proxy > Options)
- 检查浏览器代理设置是否指向 127.0.0.1:8080
- 确认防火墙未阻止本地连接
- 使用 Burp 内置浏览器,确保配置可靠
HTTPS 拦截失败
- 在浏览器/系统中安装 Burp CA 证书
- 访问 http://burp 下载证书
- 将证书添加到受信任的根证书
- 安装后重启浏览器
性能缓慢
- 限定范围以减少处理量
- 禁用不必要的扩展
- 在启动选项中增加 Java 堆大小
- 关闭未使用的 Burp 标签页和功能
请求未被拦截
- 确认已启用“Intercept on”
- 检查拦截规则是否过滤了目标
- 确认浏览器正在使用 Burp 代理
- 确认目标未使用不受支持的协议
适用场景
此技能适用于执行概述中所述的工作流或操作。