前言

作为爱学习的我,还是毕竟喜欢去了解一些应用的接口的。有时候也会去爬取一些内容,这次就遇到一些问题总结的方法做一次记录。

需求

以前抓包挺流畅的,但大多是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,进入主界面
激活Xp

刚安装好是未激活的状态,点击主界面的Vsersion 89,选择install,安装好之后重启。

2、左上角选择模块,勾选上JustTrustMe,然后再次重启。
just.png

3、这个时候再启用抓包所抓到的SSL就不会再乱码或者为null了。
H97[NZDRK41}(RI8AC}HOP5.png

_}TDF{H<code>X</code>1C_OR54LS((9Q.png

总结

有需求才能跟的上生产,在这个快餐时代我很焦虑,也更应该去学习。
end

文章目录