如何進行授權的APK滲透測試

本文旨在為同樣缺乏滲透測試經驗的初學者提供一些測試思路。涉及的內容可能比較基礎,表哥們見諒。apk 解包拿到 apk 之后直接用 7-zip 解壓可以得到幾個文件夾、一個 androidmanifest.xml 文件、一個dex文件。使用 dex2jar https://sourceforge.net/projects/dex2jar/ 將這個dex文件解壓會生成一個jar文件,然后使用jd-gui就可以查看java源代碼了。雖然可以通過查看源碼來尋找代碼漏洞,但通常會出現混淆情況,因此不會在此深入討論。上邊提到的 xml 文件一定不能發放過,里邊涉及到許多重要的配置項,比如:- androidmanifest.xml文件中android:debuggable為true。app 可被任意調試- androidmanifest.xml文件中android: allowbackup為true。app 數據可以被備份導出。- 等等…還有一點在實際測試過程中可能會用到:在對 apk 解壓之后可以嘗試在 powershell 里邊搜一下 db 文件,說不定有敏感信息(為什么這么說,因為我碰到過一次…)

for /r F:source-code %i in (*.db) do echo %i

apk安全分析檢測:

實驗:apk安全分析檢測(合天網安實驗室)

進行實驗學習如何運行apk安全分析檢測程序,并借此對apk進行安全分析檢測,結果發現潛在威脅。)

最簡單的枚舉用戶名情形就是,當輸入用戶名并登錄時,系統會響應該用戶名不存在。這次碰到的是登陸不需要密碼,但是要輸入已經注冊過的用戶名,之后會根據用戶名發送驗證碼到對應手機,同時設置了 120s 內不能重新發送,并且驗證碼 120s 內有效。這時候看起來我們沒辦法通過驗證碼做什么事,但是在實際測試過程中發現1. 當我們輸入存在的賬號之后提示發送成功;2. 重復發送,會響應 120s 內不能重復發送;3. 輸入不存在用戶會提示發送失敗。即使設定時間限制,用戶名枚舉仍然可以通過爆破驗證用戶名是否存在,只需根據服務器返回的信息來判斷。

如何進行授權的APK滲透測試

等等,既然咱都不知道手機號,也不讓輸密碼登陸,就算得到用戶名生成社工字典也沒法用啊,那拿到了用戶名有什么用?當然有用,不過要看具體場景,比如下面這個案例任意驗證碼繞過當我們登陸時服務端給賬號綁定的手機號發送短信驗證碼,我們輸入一個上一步得到的賬號,驗證碼隨便輸,點擊登陸后抓包,登陸失敗,發現響應中有兩個 code 字段

如何進行授權的APK滲透測試

改改試試:

如何進行授權的APK滲透測試

It works!

驗證碼繞過漏洞:

實驗:驗證碼繞過漏洞

(掌握常見的驗證碼繞過漏洞原理,以及繞過方式利用和漏洞防護)

功能頁面成功登錄之后,各個功能都點點看看,在個人信息頁面有一個查詢實時在線人數功能,那一欄只顯示了人數,旁邊并沒有箭頭

如何進行授權的APK滲透測試

我一度以為那里不能點擊(事實上因為數據量太大,加載了好長時間,我直接點返回了,給我的感覺就是這里沒有東西),進去之后就可以看到所有登陸人員的信息了。

如何進行授權的APK滲透測試

在我嘗試了不同用戶之后,發現這里的用戶信息并沒有權限限制,也就是說對所有人都是可見的,明顯的權限配置不當。應用還具有幾個查詢功能,BURP 工具顯示返回的數據包的格式都是 JSON

如何進行授權的APK滲透測試

嘗試注入 JSON 和嘗試 XXE 到處試一試并沒有什么用,因為我沒有多少經驗。前面還有一個參數,試試?

如何進行授權的APK滲透測試

有戲!

試試 xss 吧

如何進行授權的APK滲透測試

放到瀏覽器成功彈窗!

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享