SSL(Secure Sockets Layer) Pinning,证书锁定,就是在客户端APP上内置服务端的SSL证书。这样,当客户端要与服务端建立连接时,客户端就会校验服务端的证书是否与内置的服务端证书一致,如果一致,则建立连接,这样就可以避免中间人攻击man-in-the-middle (MITM) ,避免被抓包工具抓包。
ssl1.png (183.97 KB, 下载次数: 0)
下载附件
2024-2-12 22:58 上传
但是CA签发证书都存在有效期问题,所以缺点是在证书续期后需要将证书重新内置到APP中。
那如何绕过SSL Pinning呢?由于服务端没有做证书校验,所以如果客户端的证书被篡改,放入抓包工具的证书,那么服务端不知道证书真假,我们也就能够正常建立连接了。
2. 绕过Facebook SSL Pinning
当我们使用抓包工具,登录Facebook时,客户端会提示
ssl2.png (227.98 KB, 下载次数: 0)
下载附件
2024-2-12 22:58 上传
提示有关键词openssl cert verify error,搜索该字符串,找到引用的地方
ssl3.png (706.74 KB, 下载次数: 0)
下载附件
2024-2-12 22:58 上传
根据流程图,找到不会走到这个分支的地方
ssl4.png (762.89 KB, 下载次数: 0)
下载附件
2024-2-12 22:58 上传
关键就是x21这个分支
ssl5.png (266.66 KB, 下载次数: 0)
下载附件
2024-2-12 22:58 上传
将w21置为1,再在burp suite抓包,就可以抓到了
ssl6.png (712.75 KB, 下载次数: 0)
下载附件
2024-2-12 22:58 上传