安卓渗透指南(五)- 双剑合璧:Fiddler与Burp Suite的进阶联动抓包实战
1. 为什么需要Fiddler与Burp Suite联动
在移动安全测试中,单独使用Fiddler或Burp Suite往往难以应对复杂场景。Fiddler擅长流量捕获和简单修改,但对HTTPS流量的深度分析能力有限;Burp Suite虽然功能强大,但在移动端流量捕获上不如Fiddler便捷。两者联动可以发挥各自优势:先用Fiddler捕获手机流量,再通过Burp Suite进行深度安全测试。
我曾在测试某金融类App时发现,单独使用Burp Suite会漏掉关键的WebSocket通信,而仅用Fiddler又无法有效检测接口漏洞。通过将Fiddler设置为上游代理,成功捕获到所有通信流量并转发给Burp Suite进行漏洞扫描,最终发现了3个高危漏洞。这种组合拳方案在实际测试中非常实用。
2. 环境准备与基础配置
2.1 软件安装与汉化
Fiddler Classic最新版可从官网直接下载,安装过程保持默认选项即可。对于英文界面不适应的用户,可以下载汉化包:
- 将FiddlerTexts.txt放入安装根目录
- 把FdToChinese.dll复制到Scripts文件夹
- 重启Fiddler即可完成汉化
Burp Suite建议使用Professional版,社区版虽然免费但缺少扫描器等关键功能。安装后需要生成临时许可证或购买正式授权。
2.2 证书配置关键步骤
电脑端证书安装要注意:
- 在Fiddler的Tools > Options > HTTPS中勾选"Decrypt HTTPS traffic"
- 点击"Actions"按钮导出证书
- 在证书管理器中确保证书出现在"Trusted Root Certification Authorities"
手机端配置更复杂,特别是Android 7以上系统:
# 查看证书哈希值 openssl x509 -inform DER -in FiddlerRoot.cer -noout -subject_hash # 重命名证书为哈希值加.0后缀 mv FiddlerRoot.cer $(openssl x509 -inform DER -in FiddlerRoot.cer -noout -subject_hash).03. 进阶联动配置技巧
3.1 流量转发规则定制
在Fiddler的Rules > Customize Rules中修改OnBeforeRequest函数:
if (oSession.host.Contains("target.com")) { oSession["x-overrideGateway"] = "127.0.0.1:8080"; // 转发到Burp }这种条件转发可以:
- 只将目标域名流量发给Burp,减少干扰
- 对特定路径或参数进行预处理
- 实现基于正则表达式的智能路由
3.2 断点与自动响应配合
Fiddler的断点功能(Before Requests/After Responses)可以:
- 拦截请求修改参数后再转发
- 捕获响应并插入测试payload
- 配合AutoResponder实现自动化mock
实测案例:某API接口有签名校验,通过断点修改参数后保持签名不变,成功绕过校验并发现越权漏洞。
4. 复杂协议抓包方案
4.1 WebSocket流量捕获
在Fiddler中需要:
- 勾选Rules > WebSocket > Capture WebSocket Connections
- 设置Filters只显示目标域名
- 使用Log tab实时监控通信
常见问题排查:
- 如果连接立即断开,检查证书是否安装正确
- 消息不显示可能是加密导致,需要配置解密规则
- 高频率通信建议保存会话后离线分析
4.2 gRPC流量解析方案
gRPC抓包需要额外配置:
- 安装ProtoBuf插件
- 设置环境变量GRPC_TRACE=all
- 在FiddlerScript中添加解码规则
示例解码函数:
static function DecodeGrpc(bArr: byte[]): String { // 解码逻辑实现 return decodedString; }5. 实战案例与问题排查
5.1 金融App测试案例
测试某银行App时遇到:
- 证书绑定(Pinning)导致连接中断
- 非标准端口通信
- 二进制协议传输
解决方案:
- 使用JustTrustMe模块绕过证书绑定
- 在Fiddler中设置端口转发规则
- 开发自定义解码脚本处理二进制数据
5.2 常见错误解决方法
问题1:手机无法连接代理
- 检查电脑防火墙设置
- 确认代理IP和端口正确
- 测试电脑能否ping通手机
问题2:HTTPS网站显示不安全
- 重新安装证书
- 检查系统时间是否正确
- 确认没有其他代理干扰
问题3:Burp收不到转发流量
- 检查Fiddler转发规则
- 确认Burp监听端口匹配
- 查看Fiddler日志找转发记录
6. 性能优化与高级技巧
6.1 流量过滤策略
高效过滤规则示例:
if (!oSession.uriContains("api/v1") || oSession.host != "prod.server.com") { oSession["ui-hide"] = "true"; }这样可以:
- 只显示关键API流量
- 降低系统资源占用
- 聚焦分析目标请求
6.2 自动化测试集成
结合Python实现自动化:
import requests from bs4 import BeautifulSoup def check_vulnerability(url): # 通过Fiddler代理发送测试请求 proxies = {'http': 'http://127.0.0.1:8888'} res = requests.get(url, proxies=proxies) # 分析响应内容 soup = BeautifulSoup(res.text, 'html.parser') return soup.find_all('script')这种方案适合:
- 批量扫描接口
- 自动化漏洞验证
- 持续监控业务安全
在实际项目中,我通常会先使用Fiddler捕获典型流量,分析出关键接口和参数后,再编写自动化脚本进行深度测试。这种方法比单纯手动测试效率提升至少3倍。
