前言本文主要記錄和分享平時抓不到包的解決手段。抓到包但是看不懂的通信加密情況暫不做講解,這一部分需要逆向app或者對小程序進行解包來獲取加密方式然后在解密。一、模擬器——夜神 市面上有很多模擬器,總是有這個app在這個模擬器上打不開,另外一個可以打開的情況。需要下載安裝多個模擬器,導致測試時相當繁瑣。這里僅使用夜神模擬器,其他的如網易UU、雷神等可自行研究對比。
可以看到,部分存在ssl認證的包抓取無內容,大部分抓到的包都是亂碼。我們更換另外一種軟件HttpCanary,效果還可以。但是這個軟件是收費的,低版本不好用,高版本需要破解。
打開還是部分亂碼,有請求小程序的包,也可以看到具體傳輸數據的包。B. 在ios下可以使用Stream下載stream軟件后打開,導入證書后,需要添加到根證書。然后開始抓包。
三、手機ROOT情況下的抓包解決方案真機暫未root,所以這里使用模擬器進行相關測試,由于模擬器的局限性和不確定性,可能會導致不同的問題,所以有條件還是真機最好。使用工具:Tcpdump+wiresharktcpdump是linux下的抓包工具,在android中沒有,需要下載對應的工具。下載地址:https://www.androidtcpdump.com/android-tcpdump/downloads然后通過adb放到對應的目錄:
四、Android下修改app源碼如果apk未做校檢,或者可以繞過apk自校檢,那么可以修改apk源碼,然后重新打包,以達到讓apk信任用戶證書,抓取數據包的目的。在AndroidManifest.xml中. Certificate_Hash表示證書文件的hash值,Number是為了防止證書文件的hash值一致而增加的后綴;證書的hash值可以由命令計算出來,在終端輸入openssl x509 -subject_hash_old -in ,其中Certificate_File為證書路徑,將證書重命名為hash.0放入系統證書目錄,之后你就可以正常抓包了。 六、雙向認證解決方案當我們在抓包的過程中遇到這種情況,那么可能就是遇到雙向認證了。
繞過雙向認證的方法如下:解包,尋找客戶端的key,導入bp或者手機端抓包工具,重新對數據包進行攔截發送。1.找到apk包中的證書文件。
2.反編譯根據調用邏輯找key。
七、SSL PinningSSL Pinning是一種防止中間人攻擊(MITM)的技術,主要的機制是在客戶端發起請求->收到服務器發來的證書這一步之后,對收到的證書進行校驗,如果收到的證書不被客戶端所信任,就直接斷開連接不繼續請求。1、使用Xposed或兼容Xposed的框架+JustTrustMe使用JustTrustMe這個Xposed模塊,它所做的事情就是將各種已知的的HTTP請求庫中用于校驗證書的API都進行Hook,使無論是否是可信證書的情況,校驗結果返回都為正常狀態,從而實現繞過證書檢查的效果。2、上面一些導入根證書的方法也可以繞過部分的sslpinning八、其他思路在APP內抓包,可以在APP里面找到處理網絡請求和響應的函數,然后用Frida做HOOK,轉發參數到接受抓包的地方,如果不需要修改的話,直接轉發就行了;如果需要修改的話,可以在代碼里面再加入一些交互邏輯應該也能實現。
審核編輯 :李倩



adb push tcpdump /data/local/
可能會遇到無法push的情況,其實是沒有權限,可以授權后重試:
adb shell
su
chmod 777 /data/local
修改權限:
chmod 777 /data/local/tcpdump
執行抓包命令:
tcpdump -i any -p -vv -s 0 -w capture.pcap
執行抓包的時候會提示
tcpdump You don't have permission to capture on that device
(socket: Operation not permitted)
是因為該命令只能在root用戶下操作,先用su命令,再重試tcpdump命令。啟動抓包后會在當前目錄創建一個capture.pacp的文件最后使用wireshark打開過濾分析即可
<manifest... >
<applicationandroid:networkSecurityConfig="@xml/network_security_config"
... >
...
application>
manifest>
配置文件:res/xml/network_security_config.xml
<network-security-config>
<base-configcleartextTrafficPermitted="true">
<trust-anchors>
<certificatessrc="system" overridePins="true" />
<certificatessrc="user" overridePins="true" />
trust-anchors>
base-config>
network-security-config>
五、Android下將用戶證書導為系統證書系統證書的目錄是:/system/etc/security/cacerts/每個證書的命名規則為:



聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
服務器
+關注
關注
13文章
9702瀏覽量
87319 -
模擬器
+關注
關注
2文章
894瀏覽量
44046
原文標題:APP和小程序的安全測試
文章出處:【微信號:菜鳥學安全,微信公眾號:菜鳥學安全】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
使用bootload啟動,app程序采用ucosiii,接收發送數據n次后app程序就進入了HardFault_Handler的原因?
使用bootload啟動,只要在bootload或者app運行程序中設置SCB->AIRCR后,app程序采用ucosiii,接收發送數據n次后(接收發送采用中斷),
發表于 04-15 06:34
移動APP測試的android性能測試
:選取了測試場景之后,針對內存測試的特點設計用例,對APP內存變化作對比;將測試場景轉化為腳本,長時間運行泛靈犀功能,比較操作前后內存的變化來評估測
發表于 06-09 16:17
Https使用不當,APP也會遭遇安全風險
智能手機。你或許覺得這組數據難以置信,但事實的確如此,移動app已經深入到我們的生活和工作中。 然而,我們高度依賴的移動app,卻并沒有想象中的那么安全。根據Gartner的預測,75%的移動
發表于 12-23 16:11
?635次閱讀
小程序和公眾號與APP有什么區別
公眾號和小程序都是基于微信平臺來使用的,而微信自帶的十幾億流量也是導流到小程序和公眾號上的。那么小程序和公眾號究竟有什么區別?和APP又有什么區別呢?
該如何滲透檢測APP存在的安全漏洞
IOS端的APP滲透測試在整個互聯網上相關的安全文章較少,前幾天有位客戶的APP數據被篡改,導致用戶被隨意提現,任意的提幣,轉幣給平臺的運營造成了很大的經濟損失。
發表于 03-31 11:42
?1474次閱讀
軟件安全測試有哪些測試手段
企業都想著盡可能的保證軟件的安全性,確保軟件在安全性方面能滿足客戶期望,在軟件測試行業,安全測試的重要性是不言而喻的。 一、什么是軟件
評論