Android WebView

Intro

Security

Improper usage WebView

Есть два sandbox bypass:

JS может вызывать Java код

wv.addJavascriptInterface(new FileUtils(), “file”);
<script>
filename = ‘/data/data/com.Foudnstone/data.txt’;
file.write(filename, data, false);
</script>

У класса, который подключается подобным образом, должен быть реализован интерфейс JavascriptInterface

Java код может вызывать JS

String javascr = “javascript: var newscript=document.
createElement(\”script\”);;
javascr +=newscript.src=\”http://www.foundstone.com\”;”;
javascr +=document.body.appendChild(newscript);;
myWebView.loadUrl(javascr);

Что безопаснее WebView или Chrome Custom Tabs: https://developer.chrome.com/multidevice/android/customtabsarrow-up-right

Разрешения

setJavaScriptEnabled(true) — можем исполнять JS-код

setAllowFileAccess(true) — можем читать файлы через схему file:///data/data/

Что еще можно проверить / попробовать, если мы можем влиять на WebView

oversecured's paper: https://blog.oversecured.com/Android-security-checklist-webview/arrow-up-right

Какие методы хукать

Last updated