fiddler使用教程抓取url

打开Fiddler,用教左边会话列表里那一堆密密麻麻的程抓URL,才是用教我们真正要盯住的东西。很多人装了Fiddler,程抓看两眼就关了,用教觉得不过是程抓个抓包工具。其实你只要会过滤、用教会找、程抓会导出,用教它就能变成你分析接口、程抓排查请求的用教一把快刀。

先解决一个最基本的程抓问题:怎么让Fiddler只显示你关心的URL。默认情况下,用教你打开一个网页,程抓图片、用教JS、CSS全混在一起,翻三页都找不到你要的那个接口。点一下右侧的Filters标签,勾上Use Filters,在Hosts里填你要抓的域名,比如 api.example.com。下面那个下拉框选“Show only the following Hosts”,再点Actions → Run Filterset now。列表瞬间清爽。这个操作我每次抓包前必做,省下来的时间够泡杯茶。

更快的办法是用快捷键 Ctrl+F 调出Find Session窗口。但那个是搜索,不是过滤。真正好用的是在会话列表上方的黑色输入框里直接敲 url:关键词。比如你怀疑登录接口带“login”字样,就输入 url:login,回车。Fiddler会高亮所有匹配的会话。旁边那个下拉菜单可以切换成“Highlight”或“Filter”。我习惯用Filter模式,配合 Select All 然后 Delete 清掉无关请求,剩下的就是你要的URL。

抓HTTPS的URL需要多一步。Tools → Options → HTTPS,勾上Decrypt HTTPS traffic。第一次会弹证书安装,点Yes就行。不装这个,你只能看到CONNECT请求,看不到具体路径。装完之后重启Fiddler,再访问https站点,URL就完整露出来了。有个坑:有些App用了证书绑定(SSL Pinning),Fiddler抓不到。这时候要么用Xposed模块绕过,要么换用Charles配合JustTrustMe。Fiddler本身不解决这个问题,别在这上面死磕。

找到目标URL之后,右键 → Copy → Just Url。或者直接选中会话,按 Ctrl+U,URL就进剪贴板了。要批量导出?菜单栏 File → Export Sessions → Selected Sessions,选“Raw Files”或者“cURL Script”。导出成cURL之后,你可以在终端里直接重放请求,改参数测试。我经常这么干:抓到一个可疑的POST接口,导出cURL,把里面的token换掉,看返回什么错误码。比在浏览器里反复登录快得多。

还有一种情况:URL里带动态参数,比如 ?timestamp=1690000000&sign=abc123。你每次刷新页面,这个URL都不一样。想抓固定模式怎么办?在Fiddler里按 Ctrl+R 打开Rules → Customize Rules。找到 OnBeforeRequest 函数,加一行 oSession.url = oSession.url.Replace("timestamp=1690000000", "timestamp=1111111111");。保存后Fiddler会自动重写请求。这个技巧用来测试服务端是否校验时间戳特别管用。改完发出去,如果返回“签名错误”,说明校验逻辑生效了。

最后说个观察。很多人抓URL只盯着GET请求,觉得POST看不到参数。其实Fiddler的Inspectors → WebForms标签会把POST的body解析成表格,比看Raw文本舒服多了。还有,URL里的 %2F、%3D 这些编码,右键 → Decode Selected Session 就能还原。别手动去查ASCII表,浪费时间。

Fiddler抓URL这件事,核心就三句话:过滤掉噪音,解密HTTPS,导出你需要的。剩下的都是熟练度问题。我见过有人抓了半年包还在用鼠标一个个点,也见过有人写个FiddlerScript自动把URL按域名分类存到不同文件夹。工具是死的,你把它当记事本用,它就只是个记事本。