主题
Burp Suite 上手:截获、重放、爆破
前三个阶段你一直在"看"Web:看它怎么跑、看它长什么样、看它怎么存数据。这一课开始,你要伸手去"碰"它——用一个中间人代理,把浏览器发出的每一个请求都拦下来,改成你想要的样子再发出去。这是安全方向的手感起点。
一、Burp Suite 是什么,社区版够用在哪
Burp Suite 是 PortSwigger 出品的 Web 安全测试工具,本质是一个能读、能改 HTTP/HTTPS 流量的代理 + 一堆配套小工具。它不"攻击"任何东西,它只是把浏览器和服务器之间的对话摊开给你看,并允许你插话。
社区版(Community Edition)免费,够你现在用:
| 功能 | 社区版 | 专业版 |
|---|---|---|
| Proxy 拦截 / 改包 | ✅ 完整 | ✅ |
| HTTP history 历史 | ✅ 完整 | ✅ |
| Repeater 重放 | ✅ 完整 | ✅ |
| Decoder / Comparer | ✅ 完整 | ✅ |
| Intruder 爆破 | ⚠️ 限速(有延迟) | ✅ 高速 |
| Scanner 自动扫描 | ❌ | ✅ |
结论:学习阶段就用社区版,Intruder 慢一点无所谓,因为你只在本地靶场上跑几十个请求。等你以后真的考了证书、要做项目,再考虑专业版。
二、Proxy 的工作原理:让流量绕道走
正常情况:浏览器 → 服务器。开了代理之后:浏览器 → Burp → 服务器。
Burp 的角色是中间人(Man-in-the-Middle):它同时冒充"服务器"面对浏览器、冒充"浏览器"面对服务器。所以:
- 浏览器以为自己在跟
www.example.com说话,其实在跟 Burp 说话; - 服务器以为自己在跟浏览器说话,其实在跟 Burp 说话;
- Burp 在中间把内容原样打印一份给你,你想改哪就改哪。
这也解释了为什么 HTTPS 必须导入证书:HTTPS 的设计目标就是"没人能当中间人"。Burp 想当中间人,就得给浏览器出示一张由 Burp 自己签发的证书。浏览器不认识 Burp 这个"发证机构",就会报警。你手动把 Burp 的 CA 证书装进系统/浏览器信任列表,浏览器才会认账,Burp 才能解密你看到的明文。
一句话理解:代理负责拦,证书负责骗过浏览器的小锁。
三、安装与启动
- 到官网
https://portswigger.net/burp/communitydownload下载 Community Edition(Windows 版是.exe安装包)。 - 一路 Next 装完,启动时选 Temporary project → Use Burp defaults,直接进主界面。
- 首次进入会弹出向导,选 Proxy 那一栏,确认监听设置是:
text
Proxy listeners
Interface: 127.0.0.1:8080 (只监听本机,不要填 0.0.0.0)
Running: ✅- 两种让流量经过 Burp 的方式,任选一种:
方式 A(推荐,最省事):用 Burp 内置浏览器 点顶部 Proxy → Intercept is on 旁边的 Open Browser,Burp 会启动一个已经配好代理、也已经信任 Burp 证书的 Chromium。这条路径不需要你做第四节的手动导证书,适合第一次上手。
方式 B:给系统浏览器配代理
- Windows 设置 → 网络和 Internet → 代理 → 手动设置代理 → 打开;
- 地址填
127.0.0.1,端口填8080; - 保存后打开 Edge/Chrome,流量就会进 Burp。
- 用完记得把代理关掉,否则关掉 Burp 后浏览器就彻底上不了网了。
四、导入 Burp CA 证书
给系统浏览器(方式 B)或手机抓包时,必须装证书。
路径一:电脑浏览器
- 浏览器访问
http://burp(代理开着的情况下,这个地址由 Burp 自己提供); - 点右上角 CA Certificate,下载
cacert.der; - 把后缀改成
.cer,双击打开 → 安装证书; - 存储位置选 当前用户 → 下一步 → 将所有的证书都放入下列存储 → 浏览 → 选 受信任的根证书颁发机构 → 确定 → 完成;
- 弹出安全警告点"是",提示"导入成功";
- 如果是 Firefox,它用自己的证书库,要在 设置 → 隐私与安全 → 证书 → 查看证书 → 导入,勾选"信任由此证书颁发机构来标识网站"。
路径二:手机(抓 App 流量时要)
- 手机和电脑连同一个 WiFi(关键,见第七节的坑);
- 电脑上把 Burp 监听改成
All interfaces(Proxy → Options → Edit → Bind to all interfaces),并放行 Windows 防火墙; - 手机 WiFi 设置里配置手动代理:主机名填电脑的局域网 IP(
ipconfig里那个192.168.x.x),端口8080; - 手机浏览器访问
http://电脑IP:8080,同样点 CA Certificate 下载; - 安卓:设置 → 安全 → 加密与凭据 → 从存储设备安装 → 选 CA 证书 → 装完会在"用户凭据"里;
- iOS:设置 → 已下载描述文件 → 安装,再去 通用 → 关于本机 → 证书信任设置 里手动打开开关(很多人卡在这一步)。
五、核心功能逐个上手
5.1 Proxy:拦截与放行
打开 Proxy → Intercept,把 Intercept is on 点亮。之后浏览器每发一个请求,Burp 都会停在那儿等你,你可以改路径、改参数、改 Cookie,然后点 Forward 放行,或点 Drop 丢掉。点击 Action → Send to Repeater 可以把当前请求丢给重放器。
日常调试建议把 Intercept 关掉(is off),让流量自动流过,只在 History 里翻——一直开着会让你点 Forward 点到手酸。
5.2 HTTP history:看历史
Proxy → HTTP history 是整节课最有价值的面板。它记录了所有经过的请求,包含方法、路径、状态码、长度、MIME 类型。点开任意一条,下面就是完整的请求报文和响应报文。
这正好接上第一阶段学的报文结构:请求行、请求头、请求体、状态行、响应头,一个字段都不少。想筛某类请求,可以在下方 Filter 里按关键字、状态码过滤。
5.3 Repeater:改包重放
右键任意请求 → Send to Repeater(快捷键 Ctrl+R),切到 Repeater 标签:
- 左边是原始请求,随便改——改参数值、加一个 Header、把
GET换成POST; - 点 Send,右边立刻出现服务器的新响应;
- 可以反复改、反复发,这是手工测试漏洞的主力工具。
5.4 Intruder:爆破与枚举
右键请求 → Send to Intruder。Intruder 是把请求里某个位置换成"一堆候选值"逐条发送。
使用时需要三步:
- Positions:Burp 会自动标记参数值,你点 Clear § 清空,再手动选中要替换的部分,点 Add § 包起来;
- Payloads:选负载类型,最简单的是 Simple list,把你自己的字典粘贴进去;
- 点 Start attack,看结果表格里哪一条的长度/状态码和别的不一样。
四种攻击类型先记两个:
| 类型 | 含义 | 典型用途 |
|---|---|---|
| Sniper | 一次只替换一个位置,遍历字典 | 单参数测试、找用户名是否存在 |
| Cluster bomb | 多个位置做笛卡尔积 | 用户名 × 密码 的登录爆破 |
常见用途:登录口枚举。 先用 Sniper 只跑"用户名"这个位置,观察响应长度差异——如果"admin 存在"和"admin 不存在"的响应长度不同,你就能列出哪些账号真实存在;再用 Cluster bomb 拿"已知存在的用户名 × 弱密码字典"试着登录。
只在自己搭的靶场上用,比如下一课的 DVWA 的 Brute Force 关。对别人的网站跑爆破,就是《法律红线》那一课要讲的事。
5.5 Decoder:编解码
很多参数是编码过的(URL 编码、Base64、HTML 实体)。Decoder 面板让你在明文和编码之间来回切:贴进去,选 Decode as → Base64,右边就出明文。改完再用 Encode as 编回去,粘回 Repeater 发送。
六、常见坑
| 现象 | 原因 | 解决 |
|---|---|---|
| 开了代理,浏览器打不开任何网页 | Burp 没启动,或代理配了但 Burp 没监听 | 先确认 Burp 在跑、8080 监听是 Running;不用时关掉系统代理 |
页面报 NET::ERR_CERT_AUTHORITY_INVALID | Burp 证书没装或装错位置 | 把证书装进"受信任的根证书颁发机构",Firefox 要单独装 |
| 手机连不上 Burp | 手机和电脑不在同一网段 | 两台设备连同一个 WiFi;把 Burp 监听改成 All interfaces |
| 电脑能抓,手机抓不了 | Windows 防火墙拦了入站 8080 | 防火墙 → 高级设置 → 入站规则 → 新建规则放行 TCP 8080 |
| 首页能抓,某个 App 抓不到 | App 做了证书固定(SSL Pinning) | 学习阶段先跳过这类 App,别硬啃 |
| 关掉 Burp 后浏览器上不了网 | 系统代理还开着 | 回到代理设置,把"手动设置代理"关掉 |
💡 动手实验 1:启动 Burp,用内置浏览器打开你的知识库
https://www.myxbw.cn。切到 Proxy → HTTP history,找到那条 HTML 主文档请求,点开看响应头——你会看到x-frame-options: DENY那条安全头。这就是第一阶段的报文知识变成了你能摸到的实物。
💡 动手实验 2:在 HTTP history 里找到任意一条请求,右键 Send to Repeater,把请求行里的路径改成
/wp-admin,点 Send。观察状态码变成 403——这是知识库里那条block-scanner-paths防火墙规则在干活。再改成/又回到 200。
💡 动手实验 3:等下一课把 DVWA 跑起来后,在它的 SQL Injection 页面输入
1提交,把请求送进 Repeater,把参数改成1',对比两次响应。这一个动作就把第三阶段学的 SQL 知识从"读"变成了"打"。
七、小结
text
浏览器 →(代理 127.0.0.1:8080)→ Burp → 服务器
证书让 HTTPS 解密可行
Proxy 拦 → History 看 → Repeater 改 → Intruder 批量 → Decoder 编解码记住三句话:
- Burp 本身是中性的,它只是一个更听话的浏览器;
- 工具的价值在于对照原理:每改一个字段,都问自己"服务器为什么会因此改变行为";
- 先用内置浏览器把流程跑通,再折腾系统代理和手机抓包。
下一步,把 DVWA 搭起来,你才有可以合法练手的目标;同时务必读完 法律红线,明确哪些动作永远不能对外做。想复习代理出现的报文细节,回看 HTTP 请求与响应;想复习 Cookie 为什么会成为攻击目标,回看 Cookie 与 Session。
📎 本课对应知识库阅读:《SQL 注入》