近段时间因为业务需要研究了下 HTTP + TLS的抓包,研究过程挺耗时耗力的,还好最后研究出来了,现在写文章记录一下整个过程。
实验环境为Android+SpringBoot 写的靶机,,生成证书为了简单一律用的jdk自带的Keytool生成,jdk要设置第三方安全库、需要添加bcprov-jdk15on-168.jar到jdk里并做一些设置,网上很多资料我这里就不详细叙述了。下面开始介绍了
#1.先介绍一下Android如何实现的TLS 的 SSL Ping证书绑定及解绑
Android端的证书一般放在assets文件夹下(也可以放在别处,反正只要放在本地就能找到,如果放在so文件里那需要另外处理,这就不详细介绍了),单向验证只需一个证书。
在初始化SSLContext 时把服务端的证书 放到TrustManagerFactory里
这样就完成了证书绑定(还有一种公钥绑定,就是把证书里的公钥拿出来与服务器的做验证)。
证书绑定后一般的抓包方式是抓不到的,即使机器上装了抓包工具的证书也会因为校验证书失败而且不返回数据。其实破解方法也很简单,就是hook到初始化SSLContext的地方把绑定的操作移除就行。下面是我的Xposed代码
HTTPS双向认证破解抓包
最新推荐文章于 2024-08-21 22:08:11 发布
本文详述了HTTP + TLS双向验证的Android实现及抓包破解方法。通过Xposed框架解除证书绑定,并使用Burp Suite配置证书进行抓包。过程中涉及KeyManagerFactory和TrustManagerFactory的使用,以及证书格式转换和密码查找。
摘要由CSDN通过智能技术生成