抓包 App开启SSL Pinning的解决方法
前言
作为爱学习的我,还是毕竟喜欢去了解一些应用的接口的。有时候也会去爬取一些内容,这次就遇到一些问题总结的方法做一次记录。
需求
以前抓包挺流畅的,但大多是HTPP的包,一些HTPPS的包也没有格外注意。但后来需要爬取某APP信息的时候,启用抓包会断网(当前被抓包应用),而且就算抓到的HTPPS也会是乱码的状态。随后了解到APP开启了SSL Pinning,才导致了这一问题。
HTPPS
HTTPS连接建立过程大致是,客户端和服务端建立一个连接,服务端返回一个证书,客户端里存有各个受信任的证书机构根证书,用这些根证书对服务端返回的证书进行验证,经验证如果证书是可信任的,就生成一个pre-master secret,用这个证书的公钥加密后发送给服务端,服务端用私钥解密后得到pre-master secret,再根据某种算法生成master secret,客户端也同样根据这种算法从pre-master secret生成master secret,随后双方的通信都用这个master secret对传输数据进行加密解密。
SSL Pinning
SSL Pinning是在开发时就将服务端证书一块打包到客户端里.这样在HTTPS建立时与服务端返回的证书比对一致性,进而识别出中间人攻击后直接在客户端侧中止连接
SSL Pinning是一个函数校验,可以使用hook的方式使函数一直返回true,但这就需要用到拆包及反编译的技术了,对于我这种手残党来说只能使用相对来说比较简单的方法了。
解题
了解到Xposed+JustTrustMe的方式,它所做的事情就是将各种已知的的HTTP请求库中用于校验证书的API都进行Hook,使无论是否是可信证书的情况,校验结果返回都为正常状态,从而实现绕过证书检查的效果。
环境
夜神模拟器6.5.0.3+Android 5.0
XposedInstaller_39.apk
JustTrustMe.apk
packetcapturechs.apk(抓包工具,随意就好,需要开启抓HTPPS)
下载地址:https://www.lanzous.com/b05lz2lza
1、都安装好之后打开Xp,进入主界面
刚安装好是未激活的状态,点击主界面的Vsersion 89
,选择install
,安装好之后重启。
2、左上角选择模块,勾选上JustTrustMe
,然后再次重启。
3、这个时候再启用抓包所抓到的SSL就不会再乱码或者为null了。
总结
有需求才能跟的上生产,在这个快餐时代我很焦虑,也更应该去学习。
end
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。