<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    由DeepLink攻擊切面產生的漏洞

    VSole2021-11-03 16:47:47

    DeepLink介紹

    首先大家需要了解一下什么是 DeepLink ,簡單來說, DeepLink 是一種在網頁中啟動 App 的超鏈接。點擊鏈接之后, Android 系統會按順序嘗試以下操作:

    1.如果用戶指定了可以處理該 URI 的首選應用,就打開此應用。

    2.打開唯一可以處理該 URI 的應用。

    3.允許用戶從對話框中選擇應用。

    然后就會打開應用中指定的活動。一般是在 AndroidManifest.xml 中指定 intent 過濾器,當然也只是一般來說。

          android:name="com.example.android.GizmosActivity"    android:label="@string/title_gizmos" >    "@string/filter_view_http_gizmos">       "android.intent.action.VIEW" />       "android.intent.category.DEFAULT" />       "android.intent.category.BROWSABLE" />                 http"              android:host="www.example.com"              android:pathPrefix="/gizmos" />                        @string/filter_view_example_gizmos">          android.intent.action.VIEW" />           android.intent.category.DEFAULT" />                                 example"                android:host="gizmos" />         
    

    如上代碼可以看到 

    http://www.example.com/gizmos和example://gizmos
    

    都可以解析到該 activity 。

           ...      "https" android:host="www.example.com" />      "app" android:host="open.my.app" />    
    

    如上所示,這不僅僅支持https://www.example.com和app://open.my.app,還支持https://open.my.app和app://www.example.com.

    URL驗證不足

    該漏洞原型類似于著名的價值8500刀的Facebook app漏洞,首先我們來看一下活動注冊界面


    "insecureshop" android:host="com.insecureshop"/>
    

    可以看到,根據data,我們可以構造出insecureshop://com.insecureshop這一類的deeplink鏈接,然后再查看一下com.insecureshop.WebViewActivity類下的代碼。


    首先對于

    (StringsKt.equals$default(uri.getPath(), "/web", false, 2, null))該語句來說
    

    意味著我們需要在insecureshop://com.insecureshop的基礎上,再構建上/web參數,然后后面會發現沒有進行url驗證,那么我們就可以在后面構造意圖來加載任意內容。

    比如說此時構造一個insecureshop://com.insecureshop/web?url=的鏈接。
    

    寫出POC:

    "insecureshop://com.insecureshop/web?url=">click here to exploit
    

    進行測試。

    使用python搭建簡單的本地服務器

    python -m http.server 8000
    

    點擊我們的 POC 代碼。

    此時點擊打開后進成功進入 webview 。

    然后此時我們將poc更改

    href="insecureshop://com.insecureshop/web?url=file:///sdcard/1.txt",
    

    查看能否打開本地文件。

    不出所料也是可以成功打開。

    這就是由于URL驗證不足而導致的開放重定向。

    弱主機校驗

    還是相同的類下,在下方還有一段添加url驗證的代碼

    對于以上代碼可以分析看出,確實是驗證了url后面的內容,但是StringsKt.endsWith$default該語句表面,此時只需要后綴為insecureshopapp.com,還是可以利用deeplink鏈接進行重定向,此時只需要是attackerinsecureshopapp.com此類型的網址都有效。此處大家可以自行驗證一下嗷。100%成功率。

    總結

    以上總結了簡化后的兩類deeplink漏洞,主要的難點其實還是在deeplink的收集上,因為目前的app中,deeplink的protocol://hostname比較好找,但是完整的URI還是比較難拼湊的。

    何牛在之前的文章中提供了5種方法:

    本地搜索:

    通過Mainifest文件篩選出自定義的 deeplink URL scheme,進而在本地逆向代碼中正則匹配,提取出盡可能完整的 deeplink URI,注意不要漏過所有文件。因為以經驗來看,deeplink 可能出現在 App 的Java 代碼中、Asset 目錄的資源文件 /js 中,甚至還可能出現在 so 當中;

    流量監控:

    對app進行抓包,利用HTTP抓包工具或者實現成burp插件監測流量中的deeplink,盡可能在app中點擊各種場景,從請求包和返回包中正則匹配出完整的deeplink;

    IPC監控:

    通過hook動態監測IPC通信中出現的deeplink,將Intent中的data提取出來,可以利用burp插件brida,甚至與流量監控整合;

    遠程爬取:

    對app Web端網頁進行爬取,篩選出deeplink。不過這種方法我沒有實踐過,只是偶爾在網頁源碼中發現過。

    基于deeplink特征:

    如果APP使用了一些路由分發的sdk,由于這類sdk有特定的規律,因此可以通過正則解析這類規律來獲取到完整的deeplink。以ali arouter為例,可以通過提取build Route后面的path作為deeplink URI的path。

    提取build Autowired后面的name作為deeplink中的parameters。然后和第一步中獲取到的內容進行拼接,從而獲取到一個完整的deeplink。

    何牛YYDS。大家有什么問題可以點擊查看原文評論區一起討論呀。

    deeplink
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    DeepLink介紹 首先大家需要了解一下什么是 DeepLink ,簡單來說, DeepLink 是一種在網頁中啟動 App 的超鏈接。點擊鏈接之后, Android 系統會按順序嘗試以下操作: 1.如果用戶指定了可以處理該 URI 的首選應用,就打開此應用。
    相應的,跳轉的時候傳入參數未校驗,就可能存在風險。?Deeplinks格式一般Deeplinks格式如下:?解析Scheme,判斷Scheme屬于哪個App,喚起App,傳遞參數給App由操作系統去完成。
    Adhrit是一款針對Android移動端操作系統的安全分析工具,該工具可以幫助廣大研究人員根據Ghera基準,深入執行滲透測試偵查階段的任務并進行靜態字節碼分析。Adhrit是一個開源的Android APK逆向工程和分析工具,旨在為移動安全測試的自動化實現提供有效的解決方案。Adhrit的構建注重靈活性和模塊化,并使用了Ghera基準來識別Android應用程序中的漏洞模式。
    全研究人員發現,三星設備的 Galaxy Store 應用程序中的安全漏洞可讓黑客在用戶手機上安裝并啟用惡意App,執行遠程指令執行攻擊。三星已經發布修補程序。該漏洞具體影響 Galaxy Store 版本 4.5.32.4,這是由獨立安全研究人員通過 SSD 安全披露計劃報告的。當接收到合適的深度鏈接時,Galaxy Store 將通過 webview 處理和顯示它們。在這種情況下,攻擊者可以將任意代碼注入 MCS 網站并執行。目前,三星已經發布補丁來解決這個問題。
    同時漏洞出現的原因也是有很多種的,在眾多的網絡安全攻擊中,漏洞也經常被黑客利用來進行攻擊,一旦漏洞被黑客利用了,那么對于一個企業或是組織來說,都是一個很大的影響。據了解被發現漏洞的Ring應用程序,它可以讓用戶對來自多個設備的視屏源進行監控,例如:視頻門鈴、警報系統以及安全攝像頭等,根據統計它在Android的應用程序中,已經有高達1000萬次的下載量了。
    最近一直在進行有關Electron的研究,寫這篇文章的目的主要是想記錄針對Electron應用的一些攻擊面研究。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类