使用XPosed绕过安卓SSL证书的强校验

2017年8月18日 1.81k 次阅读 1 条评论 645 个文字

什么是SSL Pinning?

HTTPS协议验证服务器身份的方式通常有三种:

  • 根据浏览器或者说操作系统(Android)自带的证书链
  • 使用自签名证书
  • 签名证书加上SSL Pinning特性

第一种需要到知名证书机构购买证书,需要一定预算。第二种多见于内网使用。第三种在是安全性最高的,但是需要浏览器插件或客户端使用了SSL Pinning特性。
Android应用程序在使用HTTPS协议时也使用类似的3种方式验证服务器身份,分别是系统证书库、自带证书库、自带证书库 + SSL Pinning特性。所以SSL Pinning,即SSL证书绑定,是验证服务器身份的一种方式,是在HTTPS协议建立通信时增加的代码逻辑,它通过自己的方式验证服务器身份,然后决定通信是否继续下去。它唯一指定了服务器的身份,所以安全性较高。

XPosed框架的使用

当客户端使用了SSL pinning的时候,手机导入burpsuite证书的方式也无法抓到通信包。除了修改apk验证证书逻辑重新打包的方式外,最简单的方法是使用XPosed相关模块。

  • 下载XPosed安装包:XPosed下载地址
  • 安装XPosed框架到手机:adb install <xposed-installer-you-just-downloaded>.apk
  • 下载JustTrustMe模块:JustTrustMe模块下载地址
  • 安装并启用JustTrustMe模块,重启手机或模拟器后就可以抓之前抓不到的HTTPS通信了

当你不够强大的时候,任何的赞美都是嘲讽

文章评论(1)

  • hi

    能分享个apk脱壳分析加密请求的例子吗,所有的apk都能通过fdex去脱壳吗

    2018年12月13日