
做接口排查或者 Web 安全测试,很多人第一步就卡在 Burp 代理设置上。
Burp Suite 本身不复杂,真正容易出问题的地方,是浏览器、系统代理、证书、HTTPS 拦截这几块没有串起来。
我这几年帮同事排过不少“Burp 抓不到包”的问题,最后大多不是工具坏了,而是代理路径没走对。
这篇就按我自己平时的配置顺序,把 Burp 代理设置从 0 到可抓 HTTPS 包梳理一遍。只讲授权测试环境,不涉及未授权站点。
Burp 抓包不是浏览器“自动把请求送过来”,而是要让浏览器的请求先经过 Burp,再由 Burp 转发到目标网站。
可以先记住这条路径:
浏览器请求
↓
本机代理 127.0.0.1:8080
↓
Burp Proxy
↓
目标网站 / 接口服务器所以配置的关键点只有三个:
少任何一步,都可能出现“网页打不开”“只抓到 HTTP 抓不到 HTTPS”“Burp 里完全没请求”的情况。
打开 Burp Suite 后,进入:
Proxy → Proxy settings → Proxy listeners新版本 Burp 的菜单位置可能和老版本略有不同,但核心入口都是 Proxy 相关设置。
默认情况下,Burp 会有一个监听项:
127.0.0.1:8080这里可以理解成:Burp 在本机 8080 端口等着浏览器把请求转过来。
如果列表里没有监听项,就手动新增:
Bind to address:127.0.0.1
Bind to port:8080一般本机浏览器测试,用 127.0.0.1:8080 就够了。 如果你要抓手机、虚拟机或者局域网其他设备的流量,监听地址才需要改成网卡 IP 或 0.0.0.0,这个后面单独说。
┌──────────────┐
│ Chrome │
│ Firefox │
│ Edge │
└──────┬───────┘
│ 浏览器代理设置为
│ HTTP/HTTPS:127.0.0.1:8080
↓
┌──────────────┐
│ Burp Proxy │
│ Listener │
│ 127.0.0.1:8080│
└──────┬───────┘
│ 转发请求
↓
┌──────────────┐
│ 目标网站/API │
└──────────────┘我建议新手第一次配置时,不要同时开系统代理、插件代理、VPN、公司网关代理。 先把路径做简单,确认 Burp 能抓到,再逐个叠加其他网络环境。
Chrome 和 Edge 默认走系统代理。以 Windows 为例,可以这样设置:
设置 → 网络和 Internet → 代理 → 手动设置代理打开“使用代理服务器”,填:
地址:127.0.0.1
端口:8080保存后,再回到浏览器访问任意测试站点,比如:
http://example.com这时 Burp 的 Proxy 里如果打开了拦截,应该能看到请求停在 Intercept 页面。
如果你不想改系统代理,也可以装浏览器代理插件,例如 SwitchyOmega、Proxy SwitchySharp 这类工具,单独给浏览器配置一个代理情景:
代理协议:HTTP
代理服务器:127.0.0.1
代理端口:8080插件方式的好处是切换快,不容易影响微信、钉钉、下载器这些其他软件。
Firefox 可以不走系统代理,单独配置。路径是:
设置 → 常规 → 网络设置 → 设置选择“手动配置代理”,填:
HTTP 代理:127.0.0.1
端口:8080
HTTPS 代理:127.0.0.1
端口:8080下面几个选项要注意:
对所有协议使用此代理服务器:可勾选
不使用代理:localhost, 127.0.0.1如果你要测试本机服务,比如 http://localhost:3000,而这个地址被“不使用代理”排除了,Burp 可能抓不到。 这时候可以临时清空“不使用代理”列表,或者把测试服务改用本机 IP 访问。
代理配好后,进入:
Proxy → Intercept确认按钮是:
Intercept is on然后浏览器访问一个 HTTP 页面。 如果请求卡住,并且 Burp 里出现了请求内容,说明基本代理路径已经通了。
常见请求长这样:
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 ...
Accept: text/html,...如果你只是想观察流量,不想每个请求都手动放行,可以把它切成:
Intercept is off这样请求会自动通过,但仍然可以在:
Proxy → HTTP history里看到记录。
我平时排接口问题,大多是先关拦截,看 HTTP history; 只有需要改参数、改 Header、重放请求时,才打开 Intercept。
很多人第一次能抓 HTTP,却抓不到 HTTPS,浏览器还报类似错误:
您的连接不是私密连接
NET::ERR_CERT_AUTHORITY_INVALID这不是 Burp 配错了,而是 HTTPS 本来就会校验证书。 Burp 要看 HTTPS 明文,就需要在浏览器和目标网站之间做一次本地解密。浏览器必须信任 Burp 的 CA 证书,才能继续访问。
简单说就是:
浏览器信任 Burp CA
↓
Burp 才能正常解密 HTTPS 请求
↓
你才能在 Burp 里看到参数、Cookie、Header、响应内容先确认浏览器代理已经指向 Burp,然后在浏览器访问:
http://burp如果代理路径正常,会打开 Burp 的证书下载页面。
点击下载 CA 证书,一般文件名类似:
cacert.der不同系统安装方式不一样。
双击 cacert.der,选择:
安装证书证书存储位置建议选:
当前用户接着选择:
将所有的证书都放入下列存储点“浏览”,选择:
受信任的根证书颁发机构一路下一步,完成导入。
导入后建议重启浏览器,再访问 HTTPS 测试页面。 如果还是证书报错,先检查是不是浏览器没有走 Burp 代理,或者证书没有导入到“受信任的根证书颁发机构”。
下载证书后,双击打开,会进入“钥匙串访问”。
找到刚导入的 Burp 证书,通常名称和 PortSwigger / Burp 相关。 双击证书,展开“信任”,把:
使用此证书时改成:
始终信任保存时系统会要求输入开机密码。
这一步做完后,也建议重启浏览器。 macOS 上我见过最多的问题,是证书导入了,但没有改成“始终信任”,结果 HTTPS 仍然报错。
Firefox 有自己的证书管理,不一定完全跟系统证书走。
进入:
设置 → 隐私与安全 → 证书 → 查看证书选择:
证书颁发机构 → 导入选择刚才下载的 Burp CA 证书,然后勾选:
信任由此证书颁发机构来标识网站导入完成后,再访问 HTTPS 页面,看 Burp 的 HTTP history 里是否能看到明文请求。
没有安装 Burp CA:
浏览器 ── HTTPS ──> 目标网站
│
└─ 发现中间证书不可信 → 报错
安装并信任 Burp CA 后:
浏览器
↓ 信任 Burp 本地证书
Burp Proxy
↓ 与目标网站建立 HTTPS
目标网站这一步不是“跳过安全校验”,而是在授权测试环境里让浏览器信任你本机的测试代理。 测试结束后,如果不再使用 Burp,可以把证书从系统或浏览器里删除。
如果要抓手机 App 或手机浏览器流量,本机 127.0.0.1 就不能用了。
原因很简单: 手机上的 127.0.0.1 指的是手机自己,不是你的电脑。
手机抓包要改成电脑局域网 IP,例如:
电脑 IP:192.168.1.23
Burp 端口:8080Burp 监听地址也要调整。
进入:
Proxy → Proxy settings → Proxy listeners把监听地址改成:
All interfaces或者指定电脑的局域网 IP:
192.168.1.23:8080手机和电脑要连同一个 Wi-Fi,然后在手机 Wi-Fi 代理里填:
服务器:192.168.1.23
端口:8080手机浏览器再访问:
http://burp下载并安装证书。
这里有两个坑:
所以手机 App 抓包不如浏览器抓包稳定。 如果只是调试 Web 页面,优先用手机浏览器测;如果是 App,需要结合系统版本、证书策略和 App 自身网络配置判断。
我自己排问题一般不从 Burp 日志开始,而是先查这几个点。
访问:
http://burp能打开 Burp 页面,说明浏览器请求已经经过 Burp。 打不开,优先查代理设置。
有些人本地 8080 被别的软件占了,就把 Burp 改成了 8081。 但浏览器代理还填 8080,这样肯定抓不到。
Burp 和浏览器必须一致:
Burp:127.0.0.1:8080
浏览器:127.0.0.1:8080如果网页一直转圈,Burp 里有请求停着,说明不是网络坏了,是拦截开着。 点:
Forward或者直接切到:
Intercept is off只要 HTTPS 报证书不可信,就回到证书这一步检查。 尤其是 Firefox,要确认是否导入到 Firefox 自己的证书库。
浏览器或系统代理里常见排除项:
localhost
127.0.0.1
*.local如果你测试的是本地服务,可能刚好被排除。 这时 Burp 没记录,不代表 Burp 配错了。
VPN、公司代理、浏览器插件代理叠在一起时,请求路径会变复杂。 第一次配置 Burp,我建议先关掉其他代理,只保留 Burp。 等 Burp 能稳定抓包,再慢慢加回去。
如果你是第一次配置,可以按这个顺序走:
1. 打开 Burp,确认 127.0.0.1:8080 正在监听
2. 浏览器代理设置为 127.0.0.1:8080
3. 访问 http://burp,确认能打开
4. 下载 Burp CA 证书
5. 安装并信任证书
6. 打开 HTTPS 测试页面
7. 在 Proxy → HTTP history 里查看请求
8. 需要修改请求时,再打开 Intercept不要一开始就抓 App、抓小程序、抓复杂登录站。 先用普通网页把代理路径跑通,后面排问题会快很多。
问题 | 可能原因 | 处理方式 |
|---|---|---|
Burp 完全没请求 | 浏览器没走代理 | 检查浏览器或系统代理 |
访问网页一直转圈 | Intercept 拦住请求 | 点 Forward 或关闭 Intercept |
HTTP 能抓,HTTPS 报错 | CA 证书未信任 | 安装 Burp CA 证书 |
Firefox 抓不到 HTTPS | Firefox 证书库没导入 | 在 Firefox 内单独导入证书 |
手机无法连接 Burp | 监听地址只绑了 127.0.0.1 | 改成 All interfaces 或电脑局域网 IP |
手机能连但 App 抓不到 | App 不信任用户证书 | 需要看 Android 版本和 App 配置 |
本地服务抓不到 | localhost 被排除代理 | 清理“不使用代理”列表 |
Burp 代理设置看起来是工具问题,实际更像网络路径问题。
我一般不急着改 Burp 里的高级选项,而是先确认三件事:
Burp 有没有监听?
浏览器有没有走代理?
证书有没有被信任?这三步通了,Web 抓包基本就能跑起来。 后面再谈改包、重放、扫描、鉴权接口测试,才不会在最基础的代理配置上反复绕圈。
测试工具本身没有灰色不灰色,关键是使用边界。 只在自己有授权的系统、接口、环境里做抓包和测试,这是底线。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。