iOS逆向----破解HTTPS双向认证

最近在搞某个APP,这个APP做了HTTPS证书的双向校验,导致抓包失败,服务器报错400 No required SSL certificate was sent:
iOS逆向----破解HTTPS双向认证_第1张图片

其实破解双向认证很容易,具体思路如下:

首先既然要做双向认证,那么客户端一定会存一个证书文件,要么是p12,要么是cer,要么是pfx等等等。。而且这个证书一定是有密码保护的。这个密码如果不是123456的话,那么就要进入下一步,逆向分析。

从IPA包中抓到的证书文件:
iOS逆向----破解HTTPS双向认证_第2张图片
由于知道了证书的名称,那么我们直接在IDA中搜这个文件的名字:
iOS逆向----破解HTTPS双向认证_第3张图片

然后跟踪发现,证书名跟密码是连在一起的,所以我们很轻易的就拿到了证书的密码xxxxx:
在这里插入图片描述

打开抓包软件,我用的是Charles,配置证书:
Proxy->SSL Proxying Settings->Client Certificates
点击Add:
iOS逆向----破解HTTPS双向认证_第4张图片
点击choose选择证书:
iOS逆向----破解HTTPS双向认证_第5张图片
注意,这里选择证书的时候不会让你输入密码,输入密码是在抓到了该域名的包之后才要求你输入的 ,所以域名一定要填对,就像这样:
iOS逆向----破解HTTPS双向认证_第6张图片
抓到包之后会提示输入密码:
iOS逆向----破解HTTPS双向认证_第7张图片

输入之后如果这次抓到包还是报错,那么需要重启APP,再抓一次,或者检查这个域名有没有在上面的列表里,下图是配置成功后,可以看到抓包成功了:
iOS逆向----破解HTTPS双向认证_第8张图片

你可能感兴趣的:(移动应用安全,iOS应用程序安全)