[分享] WebView Javascript漏洞
這個漏洞存在很久,但好像在板上沒看過,分享一下騙騙P幣。
原理:
在 Javascript 中利用 getClass().forName() 執行Java面的操作。
(getClass() 是 Object 的 final method)
一旦漏洞被利用,即可在該APP擁有的權限範圍內為所欲為,比如讀寫SD卡。
即便該WebView沒有addJavascriptInterface(),
若無removeJavascriptInterface("searchBoxJavaBridge_"),仍可能受攻擊。
範例:
關鍵字下「android webview javascript vulnerability」,有很多範例,
或參照下方提供的參考連結。
影響範圍:
Android版本低於4.2者。
4.2中,只有加了annotation @JavascriptInterface的方法可以被執行。
應對:
APP開發者-
必須確保WebView裡面的內容都是在自己的掌控下,
如果要開啟外部的網頁,
應該在 shouldOverrideUrlLoading() 攔截並改用手機瀏覽器開啟,
不過手機瀏覽器如果過舊,一樣會中獎。
也要注意來自外部的library,比如一些廣告用途的SDK。
一般使用者-
更新Android版本。
更新手機瀏覽器。
WebView的應用非常廣泛,但要更新實在很麻煩,
因為patch後終究要靠vendor幫使用者更新,廠商裝死就沒輒。
至 Android 5 才終於把WebView解放出來,使用者自己在Play上就能夠更新了。
參考連結:
http://goo.gl/aaMxrB
android安全之webview远程代码执行漏洞
https://gist.github.com/jollychang/7577423
sample
http://developer.android.com/training/articles/security-tips.html
Android Developer - Security Tips
http://goo.gl/FKmLzU
WebView Is Now Unbundled From Android
And Free To Auto-Update From Google Play
http://goo.gl/q1TXxF
Google No Longer Provides Patches for WebView Jelly Bean and Prior
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.89.3
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1421562218.A.FF9.html