写在前面:
自从入公司以来,就一直没有抓到过APP的包,用过fiddler、burp suite以及安卓自带抓包工具,手机只要一设代理,APP就直接断网,困扰了我将近一个月。终于,皇天不负有心人,在群友的帮助下以及查阅了资料之后,了解了一种叫做<strong><font color='f33b45' >SSL Pinning</strong></font>的防抓包的一种机制,今天翻了一些资料,终于抓到了APP的数据包。
那么什么是SSL Pinning机制呢,<strong><font color='3399ea' >SSL pinning实际上是客户端锁定服务器端的证书, 在要与服务器进行交互的时候, 服务器端会将CA证书发送给客户端, 客户端会调用函数对服务器端的证书进行校验, 与本地的服务器端证书(存放在<app>\asset目录或\res\raw下)进行比对。</strong></font>
解决方案
要解决这个问题要使用的工具是:<strong><font color='f33b45' >Xposed+JustTrustMe</strong></font>
(安卓手机需要Root,该方法有手机变砖风险,建议在模拟器下操作)
XposedInstaller(xposed框架)是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
JustTrustMe是Github上的一个开源工程,他是一个Xposed模块,用来禁止SSL证书验证。以下是其简介。
JustTrustMe:An xposed module that disables SSL certificate checking. This is useful for auditing an appplication which does certificate pinning.
1. Xposed安装器下载地址
安卓5.0版本以下下载地址:https://pan.baidu.com/s/1dEToAvJ 密码:uiu8
安卓5.0版本以上下载地址:https://files.cnblogs.com/files/pingming/xposedinstaller.apk
2. JustTrustMe Relese版本下载地址
https://files.cnblogs.com/files/pingming/JustTrustMe.apk
github:https://github.com/Fuzion24/JustTrustMe/releases
3. 安装Xposed安装器
4. 安装Xposed框架
安装过程需要Root权限,完成后重启。
5. 安装JustTrustMe
6. 安装完成后打开模块选项
7. 勾选JustTrustMe,重启即可。
至此,完成配置。
<font color ="red">然后再加上burp suite 或者fiddler 的证书配置,安卓端修改网络,就可以抓到HTTPS的数据包了</font>
最后
再强调一次,安装Xposed是有风险的,请尽量在模拟器中操作。
文中的Xposed下载链接主要是针对于安卓5.0以下的机器,是在夜神模拟器安卓4.4版本测试通过,5.0以上的链接,在夜神模拟器安卓5.1.1版本测试通过,其他版本使用大同小异,请自行查找合适版本安装使用。