前言本文主要記錄和分享平時(shí)抓不到包的解決手段。抓到包但是看不懂的通信加密情況暫不做講解,這一部分需要逆向app或者對(duì)小程序進(jìn)行解包來獲取加密方式然后在解密。一、模擬器——夜神 市面上有很多模擬器,總是有這個(gè)app在這個(gè)模擬器上打不開,另外一個(gè)可以打開的情況。需要下載安裝多個(gè)模擬器,導(dǎo)致測試時(shí)相當(dāng)繁瑣。這里僅使用夜神模擬器,其他的如網(wǎng)易UU、雷神等可自行研究對(duì)比。. Certificate_Hash表示證書文件的hash值,Number是為了防止證書文件的hash值一致而增加的后綴;證書的hash值可以由命令計(jì)算出來,在終端輸入openssl x509 -subject_hash_old -in ,其中Certificate_File為證書路徑,將證書重命名為hash.0放入系統(tǒng)證書目錄,之后你就可以正常抓包了。 六、雙向認(rèn)證解決方案當(dāng)我們?cè)谧グ倪^程中遇到這種情況,那么可能就是遇到雙向認(rèn)證了。繞過雙向認(rèn)證的方法如下:解包,尋找客戶端的key,導(dǎo)入bp或者手機(jī)端抓包工具,重新對(duì)數(shù)據(jù)包進(jìn)行攔截發(fā)送。1.找到apk包中的證書文件。2.反編譯根據(jù)調(diào)用邏輯找key。
模擬器優(yōu)點(diǎn): 隨便搞,沒顧慮 隨便調(diào)整參數(shù),如內(nèi)核版本,屏幕大小,有無root等 雖然夜神只支持這三個(gè)版本,但也可以應(yīng)對(duì)大多數(shù)檢測了。模擬器缺點(diǎn): 不能啟動(dòng)不支持模擬器啟動(dòng)的應(yīng)用。以下是經(jīng)常在模擬器上遇到的問題:a. 軟件啟動(dòng)后閃退原因可能有多種,模擬器檢測,版本檢測等解決方案:1、換低版本的app。(可能會(huì)引出新的問題:無法正常使用,打開后強(qiáng)制升級(jí)等)2、換真機(jī)進(jìn)行測試(換真機(jī)后也可能遇到其他問題,這一部分放到后面再說)b. 安裝軟件失敗原因:各類原因都可能存在,需要從log觀察其發(fā)生了什么錯(cuò)誤。c. 安裝成功后還是無法抓包,使用應(yīng)用看不到數(shù)據(jù)流原因:1、走的websockket,這個(gè)用bp等代理工具就能抓到2、不走h(yuǎn)ttp或者h(yuǎn)ttps協(xié)議d. 抓包后報(bào)400錯(cuò)誤、亂碼等原因:1、使用了雙向認(rèn)證2、使用了流量加密抓包方法:代理軟件抓包,這個(gè)就不在細(xì)講了,基本操作二、模擬器或真機(jī)非root和ios未越獄抓包在進(jìn)行測試時(shí)候優(yōu)先進(jìn)行真機(jī)測試,在非root的情況下,有以下方法。A. 在android下有兩款軟件 package capture和HttpCanaryApp走普通http代理(如burp、fiddler等),會(huì)自動(dòng)取消請(qǐng)求,無法獲取數(shù)據(jù)。使用package capture走VPN,可以在本機(jī)上抓到,但是抓到的包存在亂碼問題.
可以看到,部分存在ssl認(rèn)證的包抓取無內(nèi)容,大部分抓到的包都是亂碼。我們更換另外一種軟件HttpCanary,效果還可以。但是這個(gè)軟件是收費(fèi)的,低版本不好用,高版本需要破解。打開還是部分亂碼,有請(qǐng)求小程序的包,也可以看到具體傳輸數(shù)據(jù)的包。B. 在ios下可以使用Stream下載stream軟件后打開,導(dǎo)入證書后,需要添加到根證書。然后開始抓包。三、手機(jī)ROOT情況下的抓包解決方案真機(jī)暫未root,所以這里使用模擬器進(jìn)行相關(guān)測試,由于模擬器的局限性和不確定性,可能會(huì)導(dǎo)致不同的問題,所以有條件還是真機(jī)最好。使用工具:Tcpdump+wiresharktcpdump是linux下的抓包工具,在android中沒有,需要下載對(duì)應(yīng)的工具。下載地址:https://www.androidtcpdump.com/android-tcpdump/downloads然后通過adb放到對(duì)應(yīng)的目錄:
adb push tcpdump /data/local/
可能會(huì)遇到無法push的情況,其實(shí)是沒有權(quán)限,可以授權(quán)后重試:
adb shell
su
chmod 777 /data/local
修改權(quán)限:
chmod 777 /data/local/tcpdump
執(zhí)行抓包命令:
tcpdump -i any -p -vv -s 0 -w capture.pcap
執(zhí)行抓包的時(shí)候會(huì)提示
tcpdump You don't have permission to capture on that device
(socket: Operation not permitted)
是因?yàn)樵撁钪荒茉趓oot用戶下操作,先用su命令,再重試tcpdump命令。啟動(dòng)抓包后會(huì)在當(dāng)前目錄創(chuàng)建一個(gè)capture.pacp的文件最后使用wireshark打開過濾分析即可四、Android下修改app源碼如果apk未做校檢,或者可以繞過apk自校檢,那么可以修改apk源碼,然后重新打包,以達(dá)到讓apk信任用戶證書,抓取數(shù)據(jù)包的目的。在AndroidManifest.xml中
<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下將用戶證書導(dǎo)為系統(tǒng)證書系統(tǒng)證書的目錄是:/system/etc/security/cacerts/每個(gè)證書的命名規(guī)則為:3.找到后導(dǎo)入burp中即可。七、SSL PinningSSL Pinning是一種防止中間人攻擊(MITM)的技術(shù),主要的機(jī)制是在客戶端發(fā)起請(qǐng)求->收到服務(wù)器發(fā)來的證書這一步之后,對(duì)收到的證書進(jìn)行校驗(yàn),如果收到的證書不被客戶端所信任,就直接斷開連接不繼續(xù)請(qǐng)求。1、使用Xposed或兼容Xposed的框架+JustTrustMe使用JustTrustMe這個(gè)Xposed模塊,它所做的事情就是將各種已知的的HTTP請(qǐng)求庫中用于校驗(yàn)證書的API都進(jìn)行Hook,使無論是否是可信證書的情況,校驗(yàn)結(jié)果返回都為正常狀態(tài),從而實(shí)現(xiàn)繞過證書檢查的效果。2、上面一些導(dǎo)入根證書的方法也可以繞過部分的sslpinning八、其他思路在APP內(nèi)抓包,可以在APP里面找到處理網(wǎng)絡(luò)請(qǐng)求和響應(yīng)的函數(shù),然后用Frida做HOOK,轉(zhuǎn)發(fā)參數(shù)到接受抓包的地方,如果不需要修改的話,直接轉(zhuǎn)發(fā)就行了;如果需要修改的話,可以在代碼里面再加入一些交互邏輯應(yīng)該也能實(shí)現(xiàn)。 審核編輯 :李倩
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9222瀏覽量
85606 -
模擬器
+關(guān)注
關(guān)注
2文章
877瀏覽量
43264
原文標(biāo)題:APP和小程序的安全測試
文章出處:【微信號(hào):菜鳥學(xué)安全,微信公眾號(hào):菜鳥學(xué)安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
使用bootload啟動(dòng),app程序采用ucosiii,接收發(fā)送數(shù)據(jù)n次后app程序就進(jìn)入了HardFault_Handler的原因?
使用bootload啟動(dòng),只要在bootload或者app運(yùn)行程序中設(shè)置SCB->AIRCR后,app程序采用ucosiii,接收發(fā)送數(shù)據(jù)n次后(接收發(fā)送采用中斷),
發(fā)表于 04-15 06:34
移動(dòng)APP測試的android性能測試
:選取了測試場景之后,針對(duì)內(nèi)存測試的特點(diǎn)設(shè)計(jì)用例,對(duì)APP內(nèi)存變化作對(duì)比;將測試場景轉(zhuǎn)化為腳本,長時(shí)間運(yùn)行泛靈犀功能,比較操作前后內(nèi)存的變化來評(píng)估測
發(fā)表于 06-09 16:17
Android 程序員必須掌握的三種自動(dòng)化測試方法
app開發(fā) 一般對(duì)軟件質(zhì)量有更高的要求,所以我們app的開發(fā)者一定要學(xué)會(huì)自己測試自己的代碼,自己測試自己的app。那么如何
Https使用不當(dāng),APP也會(huì)遭遇安全風(fēng)險(xiǎn)
智能手機(jī)。你或許覺得這組數(shù)據(jù)難以置信,但事實(shí)的確如此,移動(dòng)app已經(jīng)深入到我們的生活和工作中。 然而,我們高度依賴的移動(dòng)app,卻并沒有想象中的那么安全。根據(jù)Gartner的預(yù)測,75%的移動(dòng)
發(fā)表于 12-23 16:11
?568次閱讀
小程序和公眾號(hào)與APP有什么區(qū)別
公眾號(hào)和小程序都是基于微信平臺(tái)來使用的,而微信自帶的十幾億流量也是導(dǎo)流到小程序和公眾號(hào)上的。那么小程序和公眾號(hào)究竟有什么區(qū)別?和APP又有什么區(qū)別呢?
該如何滲透檢測APP存在的安全漏洞
IOS端的APP滲透測試在整個(gè)互聯(lián)網(wǎng)上相關(guān)的安全文章較少,前幾天有位客戶的APP數(shù)據(jù)被篡改,導(dǎo)致用戶被隨意提現(xiàn),任意的提幣,轉(zhuǎn)幣給平臺(tái)的運(yùn)營造成了很大的經(jīng)濟(jì)損失。
發(fā)表于 03-31 11:42
?1391次閱讀
app安全測試方法小百科
,同時(shí),APP的特點(diǎn)使其同時(shí)暴露在眾多的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)和威脅之下,容易遭受到病毒、木馬、蠕蟲等惡意程序的攻擊。 ? ? ?構(gòu)建安全軟件,而不只是代碼和
軟件安全測試有哪些測試手段
企業(yè)都想著盡可能的保證軟件的安全性,確保軟件在安全性方面能滿足客戶期望,在軟件測試行業(yè),安全測試的重要性是不言而喻的。 一、什么是軟件
什么是網(wǎng)頁應(yīng)用程序測試?
網(wǎng)頁app測試,或網(wǎng)頁測試,是一種軟件測試實(shí)踐,有助于根據(jù)要求確保應(yīng)用程序的質(zhì)量和功能。網(wǎng)頁測試
評(píng)論