首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

记一次使用Xposed绕过APP的HTTPS校验

在一次测试某APP时,发现装完证书后还是抓不到包,怀疑是证书校验的问题,于是通过逆向APP找到了校验的位置,并通过编写Xposed插件来解决抓不到包的问题。这里没啥技术含量,只是为了记录下使用Xposed做的那点事。

下面是整个过程

手机安装完Burpsuite和Filddler证书后,仍然抓不到数据包

通过逆向APP,发现并没有做加固,只是代码做了些混淆

直接关键字搜索:KeyStore.getInstance

进入之后发现几个关键的函数,分别是校验客户端:checkClientTrusted和校验服务端:checkServerTrusted,同时也检查是否有代理证书。

存在则直接抛出异常了。

最开始的思路就是直接使用Xposed来Hook掉a函数,让它一直返回True,这样就绕过了代理证书的检测了。

但是在编写插件时候发现,通过DDMS发现并没有调用到private boolean a(X509Certificate[] x509CertificateArr)而是调用了public void checkServerTrusted(X509Certificate[] x509CertificateArr, String str)

因此没有Hook成功,而checkServerTrusted也不好处理。

继续分析代码,发现这里的变量a和b可以处理

通过查看发现,this.b是作为一个开关变量,表示是否开启HTTPS的证书校验,这里可以说是测这个APP的运气吧。

到这里,我们直接Hook变量b即可绕过这个APP的HTTPS的证书校验了。

下面是编写的Xposed插件关键代码

对于APP的双向校验,不知道能不能Hook来处理,还在研究中...

如果文中哪里不对的,或者有疑问的,可以留言。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180105G0QRWN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券