Burp Suite 最值钱的地方,不是它能抓包,而是它把“抓包”这件事变成了一个可以反复折腾的工作台。很多人第一次打开它,看到 Proxy、Intruder、Repeater 一堆标签,会觉得不过是个中间人代理。真正用久了才发现,它更像一把瑞士军刀,刀片不一定都锋利,但关键时刻总能掏出一片来用。
我最早用 Burp 是为了改一个参数。浏览器里提交表单,价格字段被前端锁死,改不了。打开 Proxy,把请求拦下来,把 price=199 改成 price=1,放行,订单金额真变了。那一刻的感受很直接:前端校验基本等于装饰。后来才知道,这种操作在 Burp 里连入门都算不上,只是 Proxy 模块最基础的功能。
Proxy 的核心是拦截和修改。默认情况下,Burp 会在本地 8080 端口起一个代理服务,浏览器流量走它,它就能看到所有 HTTP/HTTPS 请求。HTTPS 需要装 Burp 的 CA 证书,否则浏览器会报证书错误。装完证书,流量解密,请求和响应都赤裸裸摆在面前。这个过程中,Burp 不只是“看”,还能“改”。拦截开关打开,每个请求都可以手动编辑后再放行,或者直接丢弃。测试越权、改参数、绕验证,全靠这个动作。
Repeater 是我用得最多的模块。它不花哨,就是把一个请求单独拎出来,让你反复发。改一个 header,发一次;换个 cookie,再发一次。响应直接显示在右边,状态码、长度、内容一目了然。做 SQL 注入盲测的时候,Repeater 里手动调 payload,看响应时间差异,比写脚本快得多。有时候一个请求要发几十遍,Repeater 的标签页可以一直留着,不用重新构造。
Intruder 是 Burp 里争议最大的模块。免费版限速,跑字典慢得让人想砸键盘。但它的逻辑很清晰:把请求里某个位置标记成 payload 点,加载字典,批量发送,根据响应长度或状态码筛选结果。爆破密码、枚举用户 ID、fuzz 参数,都是这个套路。社区版虽然慢,但配合正确的字典和过滤条件,依然能出结果。我见过有人用 Intruder 跑出后台弱口令,也见过有人跑了一晚上只得到一堆 302。工具本身不保证成功,它只是把重复劳动自动化。
Scanner 是专业版才有的功能,自动爬站和漏洞扫描。它省事,但别全信。自动扫描容易漏掉逻辑漏洞,也容易把正常功能误报成问题。我一般用它做初步排查,拿到可疑点后再手动验证。真正有价值的漏洞,往往藏在业务逻辑里,而不是扫描器能覆盖的规则库里。
Burp 的扩展生态是它另一个强项。BApp Store 里装个 Logger++,所有请求响应自动记录,方便回溯。装个 Autorize,自动测试越权,省去手动换 cookie 的麻烦。装个 Turbo Intruder,用 Python 写并发爆破,速度比原生 Intruder 快一个量级。这些扩展不是官方做的,但和 Burp 结合得很紧。用久了会形成自己的工具链,每个人装的扩展都不一样。
说点实际的。Burp 吃内存,开久了容易卡。项目文件会越来越大,定期清理不用的请求和响应。代理历史记录默认全存,跑一轮扫描下来可能几万条,找东西很痛苦。我习惯用 Logger++ 做过滤,或者直接清空历史重新开始。另外,Burp 的界面基于 Java Swing,高分辨率屏幕下字小得费眼,得手动调字体。这些细节没人写在教程里,但每天用的人都会碰到。
Burp Suite 不是魔法。它把 HTTP 请求变成了可编辑的文本,把重复发送变成了按钮,把漏洞验证变成了手动调试。真正决定结果的,还是用的人知道要改哪个参数、要发什么 payload、要看响应的哪个字段。工具只是把门槛降低了一点,把效率提高了一点。剩下的,靠经验,靠耐心,靠对目标系统的理解。