首頁 -> 安全研究

安全研究

緊急通告
綠盟科技緊急通告(Alert2013-09)

NSFOCUS安全小組([email protected])
http://www.nsfocus.com

Android WebView組件addJavascriptInterface方法不安全使用造成遠程命令執行

發布日期:2013-09-05


受影響的軟件及系統:
====================
Android < 4.2

綜述:
======
Android的SDK中提供了一個WebView組件,用于在應用中嵌入一個瀏覽器來進行網頁瀏覽。WebView組件中的addJavascriptInterface方法用于實現本地Java和JavaScript的交互。這個方法可以通過js腳本在本地執行任意Java代碼,從而以當前用戶身份執行任意命令。

盡管Android官方已經提醒了此功能在訪問不可信網頁內容時存在嚴重安全風險,很多應用開發人員仍未意識到此問題,大量Android應用特別是瀏覽器應用受到此問題影響,可能被攻擊者利用來進行對Android移動終端進行網頁掛馬等惡意攻擊行為。

分析:
======
Android下很多應用在使用WebView訪問html頁面時都會調用addJavascriptInterface方法,這類應用程序一般都會有類似如下的代碼:

webView.addJavascriptInterface(javaObj, "jsObj");

此段代碼將javaObj對象暴露給js腳本,可以通過jsObj對象對其進行引用,調用javaObj的方法。

結合Java的反射機制可以通過js腳本執行任意Java代碼,相關代碼如下:

<script>
function execute(cmdArgs)
{
    return jsobj.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);
}
execute(someCmd)
</script>

當受影響的應用程序執行到上述腳本的時候,就會執行someCmd指定的命令。

Android系統下許多應用程序(瀏覽器,微博等)使用webView進行界面展示,都有可能受到此問題的影響。

攻擊者可以通過誘使受害者打開惡意網頁、瀏覽惡意微博或者向受害者發送惡意郵件等方式來利用此漏洞,獲取用戶敏感信息、控制用戶系統。

解決方法:
==========
對于應用廠商:

<1> 確保只在訪問可信頁面數據時才使用addjavascriptInterface。
<2> 在調用Java對象方法前對參數進行檢查,避免執行惡意操作。
<3> 對于在4.2(API 17+)系統運行的應用,使用JavascriptInterface代替addjavascriptInterface。
<4> 限制對于該接口的使用來源,只允許可信來源訪問該接口。例如使用WebViewClient中的shouldOverrideUrlLoading()來對加載的URL進行檢查。

對于終端用戶:

<1> 關注應用廠商更新情況,盡快升級應用程序到最新版本。
<2> 在廠商修補前,用戶應盡量避免使用應用瀏覽不可信的網頁鏈接和郵件。

廠商狀態:
==========
Android官方已提醒此功能是有安全風險的,在可能訪問不可信網頁內容時需要小心處理。
Android 4.2 (api 17)已經開始采用JavascriptInterface代替addjavascriptInterface。

附加信息:
==========
1. http://drops.wooyun.org/papers/548
2. http://developer.android.com/reference/android/webkit/WebView.html
3. http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface%28java.lang.Object,%20java.lang.String%29
4. http://www.cis.syr.edu/~wedu/Research/paper/webview_acsac2011.pdf
5. http://50.56.33.56/blog/?p=314
6. http://www.258434.live/index.php?act=alert&do=view&aid=139

聲 明
==========

本安全公告僅用來描述可能存在的安全問題,綠盟科技不為此安全公告提供任何保證或承諾。由于傳播、利用此安全公告所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,綠盟科技以及安全公告作者不為此承擔任何責任。綠盟科技擁有對此安全公告的修改和解釋權。如欲轉載或傳播此安全公告,必須保證此安全公告的完整性,包括版權聲明等全部內容。未經綠盟科技允許,不得任意修改或者增減此安全公告內容,不得以任何方式將其用于商業目的。

關于綠盟科技
============

綠盟科技(NSFOCUS Co., Ltd.)是中國網絡安全領域的領導企業,致力于網絡和系統安全問題的研究、高端網絡安全產品的研發、銷售與網絡安全服務,在入侵檢測/保護、遠程評估、 DDoS攻擊防護等方面提供具有國際競爭能力的先進產品,是國內最具安全服務經驗的專業公司。有關綠盟科技的詳情請參見: http://www.nsfocus.com

© 2020 綠盟科技
海南七星彩彩票官网