国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析

這篇具有很好參考價值的文章主要介紹了Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

<?xml version="1.0" encoding="utf-8"?>

這樣即表示,App信任用戶CA證書,讓系統(tǒng)對用戶CA證書的校驗給予通過。更多相關(guān)信息,詳見

Network security configuration:

https://developer.android.com/training/articles/security-config

調(diào)低targetSdkVersion < 24

=====================================================================================

如果想抓一個App的包,可以找個歷史版本,只需要其targetSdkVersion < 24即可。然而,隨著GooglePlay開始限制targetSdkVersion,現(xiàn)在要求其必須>=26,2019年8月1日后必須>=28,國內(nèi)應(yīng)用市場也開始逐步響應(yīng)這種限制。絕大多數(shù)App的targetSdkVersion都將大于24了,也就意味著抓HTTPS的包越來越難操作了。

平行空間抓包

====================================================================

如果我們希望抓targetSdkVersion >= 24的應(yīng)用的包,那又該怎么辦呢?我們可以使用平行空間或者VirtualApp來曲線救國。平行空間和VirtualApp這種多開應(yīng)用可以作為宿主系統(tǒng)來運行其它應(yīng)用,如果平行空間和VirtualApp的targetSdkVersion < 24,那么問題也就解決了。

在此,我推薦使用平行空間,相比部分開源的VirtualApp,平行空間運行得更加穩(wěn)定。但必須注意平行空間的版本4.0.8625以下才是targetSdkVersion < 24,別安裝錯了。當(dāng)然,HttpCanary的設(shè)置中是可以直接安裝平行空間的。

安裝到系統(tǒng)CA證書目錄

=========================================================================

對于Root的機器,這是最完美最佳的解決方案。如果把CA證書安裝到系統(tǒng)CA證書目錄中,那這個假CA證書就是真正洗白了,不是真的也是真的了。由于系統(tǒng)CA證書格式都是特殊的.0格式,我們必須將抓包工具內(nèi)置的CA證書以這種格式導(dǎo)出,HttpCanary直接提供了這種導(dǎo)出選項。

操作路徑:設(shè)置 -> SSL證書設(shè)置 -> 導(dǎo)出HttpCanary根證書 -> System Trusted(.0)。

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

PS. 很不幸的HttpCanary v2.8.0前導(dǎo)出的證書名稱可能不正確,建議升級到v2.8.0以上版本操作。

導(dǎo)出.0格式的證書后,可以使用MT管理器將.0文件復(fù)制到/etc/security/cacerts/目錄下,或者通過adb remount然后push也可(這里稍微提一下,別在sdcard里找這個目錄)。

Firefox證書安裝

=========================================================================

火狐瀏覽器Firefox自行搞了一套CA證書管理,無論是系統(tǒng)CA證書還是用戶CA證書,F(xiàn)irefox通通都不認(rèn)可。這種情況,我們需要將CA證書通過特殊方式導(dǎo)入到Firefox中,否則Firefox瀏覽網(wǎng)頁就無法工作了。

HttpCanary v2.8.0版本提供了Firefox證書導(dǎo)入選項。在設(shè)置 -> SSL證書設(shè)置 -> 添加HttpCanary根證書至Firefox 中:

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

點擊右上角復(fù)制按鈕將url復(fù)制到粘貼板,然后保持此頁面不動,打開Firefox粘貼輸入復(fù)制的url。

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

出現(xiàn)下載證書彈框后,一定要手動勾上:信任用來標(biāo)志網(wǎng)站和信任用來標(biāo)志電子郵件用戶。然后確定即可。

公鑰證書固定

====================================================================

證書固定(Certificate Pinning)是指Client端內(nèi)置Server端真正的公鑰證書。在HTTPS請求時,Server端發(fā)給客戶端的公鑰證書必須與Client端內(nèi)置的公鑰證書一致,請求才會成功。

在這種情況下,由于MITM Server創(chuàng)建的公鑰證書和Client端內(nèi)置的公鑰證書不一致,MITM Server就無法偽裝成真正的Server了。這時,抓包就表現(xiàn)為App網(wǎng)絡(luò)錯誤。已知的知名應(yīng)用,比如餓了么,就采用了證書固定。

另外,有些服務(wù)器采用的自簽證書(證書不是由真正CA發(fā)行商簽發(fā)的),這種情況App請求時必須使用證書固定。

證書固定的一般做法是,將公鑰證書(.crt或者.cer等格式)內(nèi)置到App中,然后創(chuàng)建TrustManager時將公鑰證書加進去。很多應(yīng)用還會將內(nèi)置的公鑰證書偽裝起來或者加密,防止逆向提取,比如餓了么就偽裝成了png,當(dāng)然對公鑰證書偽裝或者加密沒什么太大必要,純粹自欺欺人罷了。

證書固定對抓包是個非常麻煩的阻礙,不過我們總是有辦法繞過的,就是麻煩了點。

JustTrustMe破解證書固定

Xposed和Magisk都有相應(yīng)的模塊,用來破解證書固定,實現(xiàn)正常抓包。破解的原理大致是,Hook創(chuàng)建SSLContext等涉及TrustManager相關(guān)的方法,將固定的證書移除。

基于VirtualApp的Hook機制破解證書固定

Xposed和Magisk需要刷機等特殊處理,但是如果不想刷機折騰,我們還可以在VirtualApp中加入Hook代碼,然后利用VirtualApp打開目標(biāo)應(yīng)用進行抓包。當(dāng)然,有開發(fā)者已經(jīng)實現(xiàn)了相關(guān)的功能。詳見:

案例1:

https://github.com/PAGalaxyLab/VirtualHook

案例2:

https://github.com/rk700/CertUnpinning

不過,這里CertUnpinning插件的代碼有點問題,要改改。

導(dǎo)入真正的公鑰證書和私鑰

如果Client固定了公鑰證書,那么MITM Server必須持有真正的公鑰證書和匹配的私鑰。如果開發(fā)者具有真正服務(wù)端的公鑰證書和私鑰,(比如百度的公鑰證書和私鑰百度的后端開發(fā)肯定有),如果真有的話,可以將其導(dǎo)入HttpCanary中,也可以完成正常抓包。

在設(shè)置 -> SSL證書設(shè)置 -> 管理SSL導(dǎo)入證書 中,切換到服務(wù)端,然后導(dǎo)入公鑰證書+私鑰,支持.p12和.bks格式文件。

雙向認(rèn)證

==================================================================

SSL/TLS協(xié)議提供了雙向認(rèn)證的功能,即除了Client需要校驗Server的真實性,Server也需要校驗Client的真實性。這種情況,一般比較少,但是還是有部分應(yīng)用是開啟了雙向認(rèn)證的。比如匿名社交應(yīng)用Soul部分接口就使用了雙向認(rèn)證。使用了雙向認(rèn)證的HTTPS請求,同樣無法直接抓包。

關(guān)于雙向認(rèn)證的原理

首先,雙向認(rèn)證需要Server支持,Client必須內(nèi)置一套公鑰證書 + 私鑰。在SSL/TLS握手過程中,Server端會向Client端請求證書,Client端必須將內(nèi)置的公鑰證書發(fā)給Server,Server驗證公鑰證書的真實性。

注意,這里的內(nèi)置的公鑰證書有區(qū)別于前面第5點的公鑰證書固定,雙向認(rèn)證內(nèi)置的公鑰證書+私鑰是額外的一套,不同于證書固定內(nèi)置的公鑰證書。

如果一個Client既使用證書固定,又使用雙向認(rèn)證,那么Client端應(yīng)該內(nèi)置一套公鑰證書 + 一套公鑰證書和私鑰。第一套與Server端的公鑰證書相同,用于Client端系統(tǒng)校驗與Server發(fā)來的證書是否相同,即證書固定;第二套SSL/TLS握手時公鑰證書發(fā)給Server端,Server端進行簽名校驗,即雙向認(rèn)證。

用于雙向認(rèn)證的公鑰證書和私鑰代表了Client端身份,所以其是隱秘的,一般都是用.p12或者.bks文件+密鑰進行存放。由于是內(nèi)置在Client中,存儲的密鑰一般也是寫死在Client代碼中,有些App為了防反編譯會將密鑰寫到so庫中,比如S匿名社交App,但是只要存在于Client端中都是有辦法提取出來的。

雙向認(rèn)證抓包

這里以S匿名社交App為例,講解下如何抓取使用了雙向認(rèn)證的App的HTTPS包。如果服務(wù)器使用了Nginx且開啟了雙向認(rèn)證,抓包時會出現(xiàn)400 Bad Request的錯誤,如下:

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

有些服務(wù)器可能不會返回404,直接請求失敗。接下來看,如何使用HttpCanary配置雙向認(rèn)證抓包。

首先,解壓APK,提取出.p12或者.bks文件,二進制的文件一般存放都在raw或者assets目錄。

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

將client.p12文件導(dǎo)入手機,然后在HttpCanary的設(shè)置 -> SSL證書設(shè)置 -> 管理SSL導(dǎo)入證書中,切換到客戶端(因為需要配給MITM Client),然后導(dǎo)入.p12文件。

由于雙向認(rèn)證的公鑰證書和私鑰是受密鑰保護的,所以需要輸入密碼:

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

一般通過逆向可以從APK中提取出密鑰,具體操作這里略過。輸入密鑰后,需要輸入映射域名,這里使用通配符*映射所有相關(guān)域名:

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

導(dǎo)入完成后如下:

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

可以點進證書詳情查看細(xì)節(jié),這個client.p12文件包含公鑰證書和私鑰,是用于雙向認(rèn)證的。

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

配置完成后,重新進行抓包,看看效果。

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

可以看到,之前400 Bad Request的兩個要求雙向認(rèn)證的請求成功了!

SSL重協(xié)商

有些服務(wù)器可能會開啟SSL重協(xié)商,即SSL/TLS握手成功后發(fā)送請求時服務(wù)器會要求重新握手。這種情況一般比較少,但是也不排除,已知的應(yīng)用比如 10000社區(qū) 就使用了SSL重協(xié)商。

由于Android系統(tǒng)對SSL重協(xié)商是有限支持,所以部分系統(tǒng)版本抓包會失敗,表現(xiàn)為網(wǎng)絡(luò)異常。在Android 8.1以下,SslSocket是完全支持SSL重協(xié)商的,但是SSLEngine卻是不支持SSL重協(xié)商的,而HttpCanary解析SSL/TLS使用的是SSLEngine。在Android 8.1及以上,SSLEngine和SslSocket統(tǒng)一了實現(xiàn),故是支持SSL重協(xié)商的。

所以,如果確認(rèn)服務(wù)器使用了SSL重協(xié)商,請使用8.1及以上版本系統(tǒng)進行抓包。

非Http協(xié)議抓包
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進入阿里一直到現(xiàn)在。

深知大多數(shù)初中級Android工程師,想要提升技能,往往是自己摸索成長或者是報班學(xué)習(xí),但對于培訓(xùn)機構(gòu)動則近萬的學(xué)費,著實壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年Android移動開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時減輕大家的負(fù)擔(dān)。

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗的小伙伴深入學(xué)習(xí)提升的進階課程,基本涵蓋了95%以上Android開發(fā)知識點,真正體系化!

由于文件比較大,這里只是將部分目錄截圖出來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且會持續(xù)更新!

如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲?。。。▊渥ⅲ篈ndroid)

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

總結(jié)

本文講解了我對Android開發(fā)現(xiàn)狀的一些看法,也許有些人會覺得我的觀點不對,但我認(rèn)為沒有絕對的對與錯,一切交給時間去證明吧!愿與各位堅守的同胞們互相學(xué)習(xí),共同進步!文章來源地址http://www.zghlxwxcb.cn/news/detail-855783.html

《Android學(xué)習(xí)筆記總結(jié)+移動架構(gòu)視頻+大廠面試真題+項目實戰(zhàn)源碼》,點擊傳送門即可獲取!

來,每個節(jié)點里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實戰(zhàn)項目、講解視頻,并且會持續(xù)更新!**

如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲?。。。▊渥ⅲ篈ndroid)

Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析,程序員,android,https,騰訊云

總結(jié)

本文講解了我對Android開發(fā)現(xiàn)狀的一些看法,也許有些人會覺得我的觀點不對,但我認(rèn)為沒有絕對的對與錯,一切交給時間去證明吧!愿與各位堅守的同胞們互相學(xué)習(xí),共同進步!

《Android學(xué)習(xí)筆記總結(jié)+移動架構(gòu)視頻+大廠面試真題+項目實戰(zhàn)源碼》,點擊傳送門即可獲??!

到了這里,關(guān)于Android高級架構(gòu)師:Android平臺HTTPS抓包解決方案及問題分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Haydn解決方案數(shù)字化平臺助力架構(gòu)師1小時完成架構(gòu)設(shè)計(實操篇)

    Haydn解決方案數(shù)字化平臺助力架構(gòu)師1小時完成架構(gòu)設(shè)計(實操篇)

    如何基于Haydn快速完成幾種常用集成架構(gòu)的設(shè)計? 如何基于Haydn快速完成幾種常用部署架構(gòu)的設(shè)計? 如何基于Haydn高效分享架構(gòu)設(shè)計? 設(shè)計器的使用有哪些小Tips? 1. Haydn解決方案數(shù)字化平臺介紹 2. Haydn設(shè)計中心幾種風(fēng)格圖元庫的切換使用 3. 如何基于Haydn設(shè)計中心快速完成幾種

    2024年02月03日
    瀏覽(32)
  • android12微信抓包https

    android12微信抓包https

    測試環(huán)境: redmi K30 android12 已root 安裝magisk LSPosed 微信版本:8.0.32 抓包軟件:Burpsuite 前言: 在新版微信中只會信任程序自帶的證書,解決方法也很簡單,就是安裝TrustMeAlready模塊。 TrustMeAlready:https://github.com/ViRb3/TrustMeAlready TrustMeAlready是Xposed的一個模塊,通過hook的方式禁用

    2024年02月16日
    瀏覽(18)
  • 【Android安全】安裝mitmproxy Https抓包證書 | 安卓SSL抓包

    【Android安全】安裝mitmproxy Https抓包證書 | 安卓SSL抓包

    macbook上 mitmproxy 抓取安卓手機https流量 重點是安裝mitmproxy Https抓包證書 手機需要root,macbook上需要安裝好mitmproxy 需要完成下文1-3: https://github.com/doug-leith/cydia (接入有線網(wǎng)并開啟無線熱點) 啟用 IP 轉(zhuǎn)發(fā): sudo sysctl -w net.inet.ip.forwarding=1 保存文件: https://github.com/doug-leith/cy

    2024年01月22日
    瀏覽(19)
  • 【學(xué)習(xí)筆記】在Android使用Frida進行https抓包

    【學(xué)習(xí)筆記】在Android使用Frida進行https抓包

    最近需要在Android進行https抓包,對數(shù)據(jù)解密,找了很多方法,終于成功了,不過原文一些步驟對于我這個小白還是有點不理解的地方,在此記錄一下。 一臺root手機 frida環(huán)境 該步驟全程參考: [Frida入門教程] 一文搞定Frida環(huán)境搭建,基于逍遙模擬器(虛擬設(shè)備)和ADB(Android Debug

    2024年02月16日
    瀏覽(22)
  • mitmproxy 抓包神器-2.抓取Android 和 iOS 手機 https 請求

    mitmproxy 抓包神器-2.抓取Android 和 iOS 手機 https 請求

    抓取手機請求的前提條件是確保手機和電腦在同一網(wǎng)段上,也就是說使用同一WiFi。 mitmweb 命令啟動服務(wù),默認(rèn)監(jiān)聽8080端口 開啟代理,設(shè)置監(jiān)聽8080端口,點保存按鈕 打開手機設(shè)置-WIFI-長按你的wifi-修改網(wǎng)絡(luò)-代理選擇手動 輸入服務(wù)器主機名和IP,服務(wù)器主機名就是自己電腦本

    2024年02月11日
    瀏覽(25)
  • 徹底解決charles抓包https亂碼的問題

    徹底解決charles抓包https亂碼的問題

    最近做js逆向,聽說charles比瀏覽器抓包更好用,結(jié)果發(fā)現(xiàn)全是亂碼,根本沒法用。 然后查詢網(wǎng)上水文:全部都是裝證書,根本沒用! 最后終于找到解決辦法,在這里記錄一下: 亂碼的根本原因: charles證書過期了! 此時就算往操作系統(tǒng)導(dǎo)入證書也沒有用! 解決辦法: 菜單

    2024年01月18日
    瀏覽(29)
  • burp抓包https鏈接不安全解決方法

    burp抓包https鏈接不安全解決方法

    在瀏覽器已經(jīng)導(dǎo)入 Burpsuite 的證書之后,抓包,瀏覽器仍然顯示 抓取https包提示不是私密鏈接 解決方法 適用于沒有繼續(xù)訪問的按鈕。 瀏覽器輸入 chrome://flags 搜索 翻譯過來就是 允許從本地主機加載資源的證書無效。 并設(shè)置為 Enabled 在出現(xiàn)不是私密鏈接的頁面直接 輸入 thisisun

    2024年02月16日
    瀏覽(18)
  • 安卓APP抓包解決方案(教程)

    安卓APP抓包解決方案(教程)

    ??在我們?nèi)粘5臐B透測試工作中經(jīng)常會發(fā)現(xiàn)手機APP抓取不到數(shù)據(jù)包的情況,本篇文章講解的是通過postern代理軟件來全局轉(zhuǎn)發(fā)流量至charles聯(lián)動BURP來對APP進行滲透,在這套環(huán)境配置完成之后可以為你后面的app抓包省下不少時間與麻煩。 kali windows burpsuite 夜神模擬器 Android7.0以

    2023年04月12日
    瀏覽(19)
  • Fiddler抓包工具安裝后抓取不到Https協(xié)議解決辦法?。?!

    Fiddler抓包工具安裝后抓取不到Https協(xié)議解決辦法?。?!

    Fiddler剛剛下載安裝好后,默認(rèn)不支持https協(xié)議的,想要抓取https,需要手動設(shè)置 一、首先點擊Tools按鈕中的Options…選項 ?二、選擇HTTPS選項,進行圖如下三項勾選,最后點擊Actions按鈕 三、選擇將證書保存在桌面 ?四、保存成功可以在我們的桌面看見證書 ? 五、最后我們需要

    2024年02月16日
    瀏覽(25)
  • fiddler抓包問題記錄,支持https、解決 tunnel to 443

    fiddler抓包問題記錄,支持https、解決 tunnel to 443

    fiddler抓包教程,如何抓取HTTPS請求,詳細(xì)教程 1. 不能正常訪問頁面(所有https都無法訪問) 解決方案:查看下面配置是否正確 Rules-customization 找到 OnBeforeRequest 方法,在方法最后添加以下代碼塊 2.tunnel to 443(部分https無法訪問) 解決方案:確認(rèn)證書安裝成功,并信任證書 下

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包