0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

APP和小程序的安全測試

jf_hKIAo4na ? 來源:FreeBuf.COM ? 2023-02-06 16:06 ? 次閱讀
前言本文主要記錄和分享平時(shí)抓不到包的解決手段。抓到包但是看不懂的通信加密情況暫不做講解,這一部分需要逆向app或者對(duì)小程序進(jìn)行解包來獲取加密方式然后在解密。一、模擬器——夜神 市面上有很多模擬器,總是有這個(gè)app在這個(gè)模擬器上打不開,另外一個(gè)可以打開的情況。需要下載安裝多個(gè)模擬器,導(dǎo)致測試時(shí)相當(dāng)繁瑣。這里僅使用夜神模擬器,其他的如網(wǎng)易UU、雷神等可自行研究對(duì)比。

7ce01f1a-a5b6-11ed-bfe3-dac502259ad0.jpg

模擬器優(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ī)上抓到,但是抓到的包存在亂碼問題.

7cf84568-a5b6-11ed-bfe3-dac502259ad0.jpg

7d1feb7c-a5b6-11ed-bfe3-dac502259ad0.jpg以看到,部分存在ssl認(rèn)證的包抓取無內(nèi)容,大部分抓到的包都是亂碼。我們更換另外一種軟件HttpCanary,效果還可以。但是這個(gè)軟件是收費(fèi)的,低版本不好用,高版本需要破解。7d33f64e-a5b6-11ed-bfe3-dac502259ad0.jpg打開還是部分亂碼,有請(qǐng)求小程序的包,也可以看到具體傳輸數(shù)據(jù)的包。B. 在ios下可以使用Stream下載stream軟件后打開,導(dǎo)入證書后,需要添加到根證書。然后開始抓包。7d4c92ee-a5b6-11ed-bfe3-dac502259ad0.jpg三、手機(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打開過濾分析即可7d660d1e-a5b6-11ed-bfe3-dac502259ad0.jpg四、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ī)則為:.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)證了。7d7a2efc-a5b6-11ed-bfe3-dac502259ad0.jpg繞過雙向認(rèn)證的方法如下:解包,尋找客戶端的key,導(dǎo)入bp或者手機(jī)端抓包工具,重新對(duì)數(shù)據(jù)包進(jìn)行攔截發(fā)送。1.找到apk包中的證書文件。7d8a10b0-a5b6-11ed-bfe3-dac502259ad0.jpg2.反編譯根據(jù)調(diào)用邏輯找key。

7dadc334-a5b6-11ed-bfe3-dac502259ad0.jpg

3.找到后導(dǎo)入burp中即可。7dc1f6e2-a5b6-11ed-bfe3-dac502259ad0.jpg7dd7e7ea-a5b6-11ed-bfe3-dac502259ad0.jpg七、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)注明出處。

收藏 人收藏

    評(pí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

    APP要做哪些測試

    、功能點(diǎn)測試)、兼容性測試、交叉測試、安裝卸載測試(包括應(yīng)用的升級(jí))、壓力測試(接口壓力測試)、
    發(fā)表于 09-14 09:09

    Android 程序員必須掌握的三種自動(dòng)化測試方法

    app開發(fā) 一般對(duì)軟件質(zhì)量有更高的要求,所以我們app的開發(fā)者一定要學(xué)會(huì)自己測試自己的代碼,自己測試自己的app。那么如何
    的頭像 發(fā)表于 02-06 16:05 ?6095次閱讀
    Android <b class='flag-5'>程序</b>員必須掌握的三種自動(dòng)化<b class='flag-5'>測試</b>方法

    解讀App 與 小程序互通能力和限制

    微信官方公布了小程序的新能力,其中最引人關(guān)注的是: 「小程序上線 App 直接打開小程序功能」。 其實(shí),「App 直接打開小
    的頭像 發(fā)表于 05-24 14:50 ?4420次閱讀
    解讀<b class='flag-5'>App</b> 與 小<b class='flag-5'>程序</b>互通能力和限制

    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次閱讀

    程序App是不同的

    程序App的區(qū)別
    的頭像 發(fā)表于 08-27 15:27 ?2242次閱讀

    程序和公眾號(hào)與APP有什么區(qū)別

    公眾號(hào)和小程序都是基于微信平臺(tái)來使用的,而微信自帶的十幾億流量也是導(dǎo)流到小程序和公眾號(hào)上的。那么小程序和公眾號(hào)究竟有什么區(qū)別?和APP又有什么區(qū)別呢?
    的頭像 發(fā)表于 01-04 11:59 ?4061次閱讀

    該如何滲透檢測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次閱讀

    基于Android的APP安全檢測技術(shù)淺析

    基于Android的APP安全檢測技術(shù)淺析
    發(fā)表于 06-28 16:03 ?16次下載
    基于Android的<b class='flag-5'>APP</b><b class='flag-5'>安全</b>檢測技術(shù)淺析

    STM32 DFU升級(jí)APP程序移植筆記

    STM32 DFU升級(jí)APP程序移植筆記免費(fèi)下載。
    發(fā)表于 06-15 16:13 ?24次下載

    app安全驗(yàn)證

    app安全驗(yàn)證
    發(fā)表于 09-26 11:47 ?0次下載

    app安全測試方法小百科

    ,同時(shí),APP的特點(diǎn)使其同時(shí)暴露在眾多的網(wǎng)絡(luò)安全風(fēng)險(xiǎn)和威脅之下,容易遭受到病毒、木馬、蠕蟲等惡意程序的攻擊。 ? ? ?構(gòu)建安全軟件,而不只是代碼和
    的頭像 發(fā)表于 10-23 14:15 ?1054次閱讀
    <b class='flag-5'>app</b><b class='flag-5'>安全</b><b class='flag-5'>測試</b>方法小百科

    軟件安全測試有哪些測試手段

    企業(yè)都想著盡可能的保證軟件的安全性,確保軟件在安全性方面能滿足客戶期望,在軟件測試行業(yè),安全測試的重要性是不言而喻的。 一、什么是軟件
    的頭像 發(fā)表于 04-11 13:46 ?1086次閱讀

    什么是網(wǎng)頁應(yīng)用程序測試?

    網(wǎng)頁app測試,或網(wǎng)頁測試,是一種軟件測試實(shí)踐,有助于根據(jù)要求確保應(yīng)用程序的質(zhì)量和功能。網(wǎng)頁測試
    的頭像 發(fā)表于 05-11 14:09 ?848次閱讀