本文旨在為同樣缺乏滲透測試經驗的初學者提供一些測試思路。涉及的內容可能比較基礎,表哥們見諒。 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. 輸入不存在用戶會提示發送失敗。即使設定時間限制,使用者名稱枚舉仍然可以透過爆破驗證使用者名稱是否存在,只需根據伺服器傳回的資訊來判斷。
等等,既然咱都不知道手機號,也不讓輸密碼登陸,就算得到用戶名生成社工字典也沒法用啊,那拿到了用戶名有什麼用?當然有用,不過要看具體場景,例如下面這個案例任意驗證碼繞過當我們登陸時服務端給帳號綁定的手機號發送短信驗證碼,我們輸入一個上一步得到的帳號,驗證碼隨便輸,點選登陸後抓包,登陸失敗,發現回應中有兩個code 欄位
#改改試試:
It works!驗證碼繞過漏洞:實驗:驗證碼繞過漏洞(掌握常見的驗證碼繞過漏洞原理,以及繞過方式利用和漏洞防護)功能頁面成功登入之後,各個功能都點點看看,在個人資訊頁面有一個查詢實時在線人數功能,那一欄只顯示了人數,旁邊並沒有箭頭
我一度以為那裡不能點擊(事實上因為數據量太大,加載了好長時間,我直接點返回了,給我的感覺就是這裡沒有東西) ,進去之後就可以看到所有登陸人員的資訊了。
在我嘗試了不同使用者之後,發現這裡的使用者資訊並沒有權限限制,也就是說對所有人都是可見的,明顯的權限配置不當。應用程式還具有幾個查詢功能,BURP 工具顯示傳回的資料包的格式都是JSON
#嘗試注入JSON 和嘗試XXE 到處試一試並沒有什麼用,因為我沒有太多經驗。前面還有一個參數,試試看?
有戲!試試 xss 吧
######放到瀏覽器成功彈窗! ###以上是如何進行授權的APK滲透測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!