使用Fiddler抓取HTTPS网络包

Fiddler是一款功能强大的抓包工具,对于HTTP来说不需太多纠结,随便设置下就能用,但是对于HTTPS来说,可能会出现如下一系列问题:

creation of the root certificate was not successful

Failed to find the root certificate in User Root List; …

Fiddler获取到的网络请求为Tunnel to … 443;

以上问题大多都是因为HTTPS依靠授权的加密证书通信,如果期望在Fiddler中获取其中网络包内容,我们需要设置Fiddler中的证书。

Step 1:

下载最新版fiddler ,强烈建议在官网下载:https://www.telerik.com/download/fiddler

Step 2:

正常傻瓜式安装,注意:安装完毕后,先不用急于打开软件。

Step 3:

下载并安装Fiddler证书生成器:

http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

注:没有证书生成器实际上也能获取PC上的HTTPS,证书生成器是为Android以及IOS抓包准备的

Step 4:

打开Fiddler,点击工具栏中的Tools—>Options

使用Fiddler抓取HTTPS网络包

Step 5:

点击https设置选项,勾选选择项

使用Fiddler抓取HTTPS网络包

Step 6:

点击Actions,点击第二项:Export Root Certificate to Desktop,这时候桌面上会出现证书FiddlerRoot.cer文件,点击OK设置成功,关闭fiddler

使用Fiddler抓取HTTPS网络包

Step 7:

PC端以Chrome为例

在浏览器中导入证书FiddlerRoot.cer,在浏览器上输入: chrome://settings/

然后进入高级设置,点击管理证书

使用Fiddler抓取HTTPS网络包

Step 8:

在受信任的根证书颁发机构,对证书进行导入

使用Fiddler抓取HTTPS网络包

Step 9:

重新打开fiddler,就可以在电脑上进行https抓包了

使用Fiddler抓取HTTPS网络包

最后

对于手机端抓取HTTPS包,因为Android权限更新的原因,应用默认不通过用户添加的证书,会导致抓取失败!

详情看这里:

To provide a more consistent and more secure experience across the Android ecosystem, beginning with Android Nougat, compatible devices trust only the standardized system CAs maintained in AOSP.

https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html

 https://developer.android.com/training/articles/security-config.html

解决方案可以参考这里:(https://blog.csdn.net/cd_home/article/details/79459372 )

使用Xposed拦截系统的证书校验功能,这个网上有大神给出了hook模块代码,可以去github上搜JustTrustMe项目代码即可,就一个简单类,导入Xposed中自己编译即可:

①在移动端下载安装 JustTrustMe & xposedinstaller 之后重启移动端。。成功解决。。。。

有兴趣的同学可以去git上查看项目:

②注意物理机上安装xposedinstaller 需要root,所以我直接使用的安卓模拟器,但是安卓模拟器可能因为版本问题不支持xposed

「点点赞赏,手留余香」

1人已赞赏

  • 黄老师

    ¥50
axure商城
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论