- 众所周知,Fiddler可以用于抓包
- 在未进行进一步配置的情况下只能抓取http请求,对于https请求则无能为力
- 这一问题可以通过安装fiddler提供的证书解决
- 然而,谷歌真的evil,安卓7以上版本系统由于安全策略的一系列改写变得只信任系统目录中的证书(淦)
- 因此,以往的直接访问链接下载证书,并安装到用户目录的方法已经彻底失效
针对这一问题,有以下几种解决办法:
- 把Android扬了,转投ios,穷逼不配爬虫(雾)
- 把Android7+扬了,用Android7-
- 淦就完了,爷就要把证书安进系统目录(强行喂屎)
鉴于我又穷又拧巴,方法1、2直接排除,今天就讲方法3
操作步骤
- 准备
- 确保手机已root
- 如果您的计算机装有fiddler4,请将所有设置还原到出场设置,或卸载后重新安装,以避免不可控因素的影响
- 确保手机与计算机能够连接到相同网络
- fiddler相关设置
- tools -- options -- https
- 勾选capture、decrypt、ignore开头的三个选项
- 点开下拉列表,选择from remote client only
- tolls -- options -- connettions
- 勾选act、monitor、allow、reuse client、reuse server开头的五个选项
- 记住fiddler license on port后的四位数字(后记作端口号)
- tools -- options -- https
- 导出证书
- tools -- options -- https
- 点击actions按钮
- 点击open Windows certificate manager
- 弹出名称为certmgr的窗口
- 依次点击 受信任的证书颁发机构 -- 证书
- 在窗口右侧列表中寻找到DO_NOT_TRUST_FiddlerRoot
- 右键 所有任务 - 导出 -不要导出私钥 - Base64格式
- 修改导出文件文件名为269953fb.0,记作手机证书文件
- 证书导入
- 将手机证书文件传输到手机任意目录
- 手机端下载root explorer文件管理器
- 进入管理器,确保赋予root explorer文件管理器root权限后,点击 挂载为可读写
- 将此前的手机证书文件导入到目录 /etc/security/cacerts
- 重启fiddler与手机,将手机与电脑连接到相同网络,手机端设置WiFi代理
注意事项
- 本教程与大部分教程不同点在于,大部分教程仅将证书安装到用户目录,本教程利用root将证书安装到系统目录,前者方法在安卓7+系统下已失效
- 本教程操作完成后能够抓取绝大部分https请求,但对于抓取微信小程序数据包支持较差,若目的为抓取微信小程序数据包,建议使用iOS设备
- 本教程未进行配图,适合具有一定经验的fiddler使用者。主要目的为记录本次解决问题经历,若有不懂之处可参照以下链接:
-
步骤3、4可参考:Root安装证书到系统目录
安卓抓包——Android 7+ system安装证书到系统目录 - 步骤5可参考大部分fiddler教程中代理设置相关部分
-
步骤3、4可参考:Root安装证书到系统目录