HTTPS 雙向認(rèn)證逆向分析過程

遇到一個樣本http://app.mi.com/details?id=com.msf.credit&ref=search,使用了https雙向認(rèn)證,記錄一下解決問題的流程。

一、抓包分析

開始是 Failure SSLHandshake: Received fatal alert: certificate_unknown


image.png

使用frida hook ssl 認(rèn)證,然后錯誤變了


image.png

錯誤信息是400 No required SSL certificate was sent,通過調(diào)研知道是HTTPS 雙向認(rèn)證
image.png

二、自己搭建環(huán)境

image.png

第一次遇見HTTPS雙向認(rèn)證,網(wǎng)上只有正向的搭建教程,沒有逆向教程。而且這個app是kotlin編寫的,逆向出的代碼也跟java寫的不太一樣,這也加大了逆向難度。所以我想著先自己搭建一個環(huán)境在本地試試再說。

https://blog.imdst.com/nginx-ssl-shuang-xiang-ren-zheng-key-sheng-cheng-he-pei-zhi/,這篇文章是介紹如何配置nginx雙向認(rèn)證的,按照這個成功搭建了nginx雙向認(rèn)證,并實(shí)驗(yàn)成功。
沒加載證書的時候:

image.png

加載證書的時候:
image.png

image.png

三、編碼實(shí)現(xiàn)

通過自己搭建,已經(jīng)基本了解了https的工作流程。下一步是從網(wǎng)上找類似的代碼,然后通過特征代碼去逆向。
實(shí)際過程并不順利,因?yàn)閍pp用的是kotlin,我之前沒用過。
后來是這篇文章給了我思路,文中有一句話

把之前生成的證書(.cer)放到安卓項(xiàng)目的assets或者raw目錄下,讀取文件流用以下方法獲取SSLSocketFactory 。


image.png
image.png

四、charles驗(yàn)證

修改Proxy->SSL Proxying Settings ->Client Certificates,導(dǎo)入證書。

image.png

再次請求,要求輸入密碼。


image.png

五、尋找密碼

開始嘗試的password,但是沒有找到,然后嘗試搜索證書的名字“client_product”,找到了。


image.png

推測mjcredit_product應(yīng)該就是證書的密碼。


image.png

六、charles驗(yàn)證成功

輸入密碼


image.png

點(diǎn)擊OK


image.png

抓包成功了
image.png

七、curl測試

curl -H 'Content-Type: application/json' -H 'User-Agent: Android/23;com.msf.credit/39' -H 'Host: app.msfcredit.cn:6113' --data-binary '{"mobile":"176111100003","password":"xHiN9t3ixVpsqVoLZWyiEQ==","imei":"355455060644058"}' --compressed 'https://app.msfcredit.cn:6113/userService/login' -k --cert-type P12 --cert client_product.p12:mjcredit_product

其中-k是忽略檢查服務(wù)器證書的合法性, --cert-type P12標(biāo)明證書的類型,--cert client_product.p12:mjcredit_product標(biāo)明證書的路徑和密碼。


image.png

八、代碼驗(yàn)證

用HttpClient跑通了。
關(guān)鍵代碼如下:


image.png

結(jié)果如下

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容