從抓包知乎失敗學(xué)到的東西

1、引發(fā)思考的現(xiàn)象

知乎詳情頁太慢了,想抓包看為什么慢,結(jié)果發(fā)現(xiàn)抓不到!

1.1 抓不到的原因

  • Charles 抓包方式-中間人攻擊(英語:Man-in-the-middle attack,縮寫:MITM)

維基百科解釋:在密碼學(xué)計算機安全領(lǐng)域中是指攻擊者與通訊的兩端分別創(chuàng)建獨立的聯(lián)系,并交換其所收到的數(shù)據(jù),使通訊的兩端認(rèn)為他們正在通過一個私密的連接與對方直接對話,但事實上整個會話都被攻擊者完全控制。在中間人攻擊中,攻擊者可以攔截通訊雙方的通話并插入新的內(nèi)容。在許多情況下這是很簡單的(例如,在一個未加密的Wi-Fi 無線接入點的接受范圍內(nèi)的中間人攻擊者,可以將自己作為一個中間人插入這個網(wǎng)絡(luò))

知乎搜到的原因

2、防止自己app被抓包的幾種方式

2.1 接口訪問不使用代理

 URL url = new URL(urlStr);
 urlConnection = (HttpURLConnection) url.openConnection(Proxy.NO_PROXY);
  OkHttpClient client = new OkHttpClient().newBuilder().proxy(Proxy.NO_PROXY).build();

2.2 api 24和 targetSdkVersion>=24 對抓包的影響

在Android 7.0(API 24 ) ,有一個名為“Network Security Configuration”的新安全功能。這個新功能的目標(biāo)是允許開發(fā)人員在不修改應(yīng)用程序代碼的情況下自定義他們的網(wǎng)絡(luò)安全設(shè)置。如果應(yīng)用程序運行的系統(tǒng)版本高于或等于24,并且targetSdkVersion>=24,則只有系統(tǒng)(system)證書才會被信任。所以用戶(user)導(dǎo)入的Charles根證書是不被信任的。具體說明看官方文檔在這個官方文檔里面說了,如何能指定信任用戶安裝的根證書從而可以實現(xiàn)抓包

2.3 api 24之后抓第三方apk的方法

  1. 通過重打包的方式強行修改配置,或者強行降低 targetSdkVersion,或者強行修改別人源碼里面的信任證書的代碼,然后再重打包就好了。
  2. 通過使用Xposed的 JustTrustMe 模塊來信任所有的證書,Xposed不會用的看這里
  3. 使用Android 7.0 以下的系統(tǒng)安裝應(yīng)用,并抓包
  4. 使用雙開沙箱應(yīng)用,比如VirtualApp,讓被抓包的應(yīng)用運行到VA里面,并且修改VA的targetSdkVersion < 24,或者通過Manifest文件里面配置networkSecurityConfig屬性,讓他信息Charles證書。
  5. 把 Charles 證書,打入到Android 系統(tǒng)信任證書里面去

具體各種抓包方式可以參考這里

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

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

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