目标站正常访问,页面 DevTools 里也没看到异常请求,但 Burp Logger 里却一直冒出这种东西:
GET /CallbackView-B6Zh-rk5.js HTTP/1.1Host: 状态码 404,刷一遍页面冒一堆。
更离谱的是,正确路径明明应该是:
/assets/CallbackView-B6Zh-rk5.js也就是说,正常页面资源在 /assets/ 下,结果 Burp 里莫名其妙多出来一堆根路径 JS 请求。
这不是网站正常行为,这是有人在背后瞎搞。
一开始怀疑 FindSomething
最开始我怀疑 FindSomething。
因为它确实有自动分析页面资源的行为,而且即使没开会员,也可能跑基础扫描逻辑。会员、Vue 分析这种功能看起来就很容易把页面资源扒一遍。
于是我把 FindSomething 关了。
结果呢?
Burp 继续冒 404。
行,不是它,至少不是当前这批请求的直接来源。
然后怀疑 SnowEyes
接着看 SnowEyes。
这个更像。它的代码里确实有问题:把 ./CallbackView-B6Zh-rk5.js 这种相对路径拿页面 origin 去拼,直接拼成了:
/CallbackView-B6Zh-rk5.js这就是错的。正常应该相对 /assets/index-xxx.js 去解析,结果它硬生生解析到了站点根目录。
这种逻辑说难听点就是乱来。
我把 SnowEyes 也关了。
结果呢?
Burp 还是继续冒 404。
这时候就很火大了:两个嫌疑插件都关了,Burp 里还在刷,说明还有别的扩展在后台偷偷发请求。
关键证据:页面 DevTools 没有,Burp 有
这里有一个非常关键的点:
Chrome 页面 DevTools 的 Network 里,没有这个根路径 404。
Burp 里有。
而这些 404 请求的特征也很明显:
Sec-Fetch-Site: noneSec-Fetch-Mode: corsSec-Fetch-Dest: empty没有 Referer,还带着 Chrome UA 和 Cookie。
这基本就不是页面自己发的请求,而是浏览器扩展后台、Service Worker、插件脚本这种东西在发。也就是说,它不出现在页面 Network 里,但会经过 Chrome 代理,所以 Burp 能抓到。
这就很恶心。
你以为你在看网站流量,实际上你在看一堆插件制造出来的垃圾噪音。
Wappalyzer 也关了,还是不行
为了排除,我又关了 Wappalyzer。
结果 404 仍然继续。
所以 Wappalyzer 不是主因。
最后锁定 Source Detector
最后关掉 Source Detector。
世界清净了。
连续刷新页面后,Burp 里只剩正常请求:
/assets/.../api/...图片字体CSS正常 JS没有新的:
/CallbackView-B6Zh-rk5.js这就很清楚了。
在我的环境里,这一轮持续刷 404 的罪魁祸首就是 Source Detector。
它到底干了什么蠢事?
Source Detector 的后台脚本会监听 JS/CSS 请求:
browserAPI.webRequest.onCompleted.addListener(...)然后只要看到 .js 或 .css,就后台再来一次:
fetch(details.url)目的大概是读取文件内容,从最后一行找:
sourceMappingURL听起来好像很合理,对吧?
但问题是:你他妈这是浏览器扩展,不是隐身人。
你后台 fetch 一次,Burp 就多一条请求。你监听全站 JS/CSS,再挨个 fetch,Burp 里就被你塞满垃圾流量。对于做安全测试、接口分析、漏洞验证的人来说,这就是污染现场。
更烦的是,这种请求不出现在页面 DevTools 里。普通排查会被绕进去,以为是页面代码、站点资源、前端构建,甚至目标系统的问题。
结果查半天,是插件自己在后台作妖。
我最后怎么改的
我把 Source Detector 的后台逻辑改了。
核心原则很简单:
默认不要自动 fetch 页面 JS/CSS。
现在它仍然可以监听页面请求,但默认配置下会直接返回:
if (!autoFetchSourceMaps) {return;}我还加了一个设置项:
Auto-fetch JS/CSS for source maps默认关闭。
也就是说,平时尤其是 Burp 抓包时,它不应该再制造额外 JS 请求。如果真有人想让它自动扒 sourcemap,可以自己去设置里手动打开。
结论
这次排查下来,我只想说一句:
浏览器插件别他妈在后台乱 fetch。
尤其是安全测试环境里,Burp 的流量应该尽量接近真实页面行为。插件如果为了“方便分析”就在后台自动请求 JS/CSS,那它不是辅助工具,它就是噪音制造机。
这次的结论:Source Detector纯啥吊插件
以后 Burp 抓包前,第一件事不是看目标站有没有问题,而是先把这些“自作聪明”的插件全关掉。
否则你抓到的不是目标站流量,是插件屎山在你代理里拉出来的噪音。
- END -
夜雨聆风