CTF Web 题必备:Burp Suite 的抓包与改包
Proxy、Repeater、Intruder 三件套,覆盖 Web CTF 里大部分的抓包改包需求。
Web 方向的 CTF,几乎绕不开 Burp Suite。它的核心能力就一句话:拦下浏览器和服务器之间的请求,让你随便改。
仅限 CTF 靶场和授权测试。
先让流量经过 Burp
默认配置下,Burp 的 Proxy 监听 127.0.0.1:8080。把浏览器(或系统)的代理指向这个地址,所有请求就会先到 Burp。
抓 HTTPS 需要额外装证书:浏览器访问 http://burp 下载 CA 证书,装到系统或浏览器信任列表里。不装的话,HTTPS 请求会报证书错误。
如果不想改系统代理,也可以用浏览器插件(如 FoxyProxy)只对目标域名走代理,日常上网不受影响。
Proxy:看和改
Proxy → HTTP history 会记录所有经过的请求。点开任意一条,可以:
- 看请求头、参数、Cookie、响应;
- 右键 → Send to Repeater,丢到重放器里慢慢改;
- 右键 → Send to Intruder,做参数爆破。
最常用的操作是改包重放:把请求发到 Repeater,改一个参数、点 Send,看响应变化。
Repeater:手动测试的主战场
Repeater 是「改一次、发一次、看一次」的工具。Web CTF 里大量题目(SQL 注入、越权、逻辑漏洞、命令执行)都是在这里一点点试出来的。
几个技巧:
- 用
Ctrl+R快速发送,Ctrl+Space补全; - 关注响应长度、状态码、返回内容的变化;
- 改
Cookie、X-Forwarded-For、Referer这些头,很多题就考这个; - 参数编码(URL 编码、Base64)可以在 Decoder 里处理。
Intruder:批量爆破
Intruder 用来对某个位置做批量替换,比如:
- 用户名/密码字典爆破;
- 数字 ID 遍历(越权);
- 目录/参数枚举。
基本流程:把请求发到 Intruder → 选中要替换的位置 → 设置 payload(字典或数字范围)→ 点 Start attack。
看结果时重点关注响应长度差异,长度不一样的那条往往就是成功的。
其他常用模块
- Decoder:Base64、URL、Hex 编解码,CTF 里的编码题很好用;
- Comparer:对比两个响应,找差异;
- Scanner:专业版才有,社区版没有自动扫描,只能手动测。
常见的坑
抓不到包。 先确认浏览器代理生效、目标走的是 HTTP 而不是 HTTPS 直连,有些程序会绕过系统代理。
HTTPS 证书错误。 没装 Burp 的 CA 证书,或者装了但没信任。
请求被压缩。 响应是 gzip 时,Burp 一般会自动解压,但有些客户端不会,注意看。
字符编码问题。 中文参数、特殊符号在改包时容易被转义,必要时用 Decoder 处理。
别忘了关代理。 测完记得把浏览器代理关掉,不然正常上网全被 Burp 拦着。
替代方案
不想装 Burp 的话,mitmproxy 是命令行版,适合写脚本自动化;浏览器 F12 的 Network 面板也能改包重发,但功能有限。
对 CTF 来说,Burp 社区版已经够用——Proxy + Repeater + Intruder 这三个模块能覆盖大部分 Web 题。
小结
Burp 的用法可以归纳成一条链:Proxy 抓包 → Repeater 手动改 → Intruder 批量试。
真正解题靠的还是对 Web 漏洞的理解:知道该改哪个参数、该看哪个响应,工具只是把手动操作变快而已。
留言