Las principales vulnerabilidades involucradas en el componente WebView son las Referencias a objetos directos inseguros, la inyección SQL y las secuencias de comandos entre sitios (XSS).
Si bien los tres son riesgos potencialmente grandes, el potencial de vulnerabilidad de XSS se puede usar para obtener acceso a los archivos de preferencias compartidas usando el comando file / // / o puede utilizar smsJSInterface.launchSMSActivity para enviar mensajes SMS no deseados desde el teléfono, además para robar credenciales o proporcionar un frente falso al HTML, CSS, Javascript u otro comportamiento del nivel del navegador.
Si desactivas el setJavaScriptEnabled de la siguiente manera, los adversarios no podrán ejecutar ningún Javascript para realizar ataques XSS:
myWebView.getSettings().setJavaScriptEnabled(false);
O, si no puedes hacer esto, asegúrate de que cada contexto se escape correctamente mediante el uso de un componente de filtro XSS como el Proyecto de Codificador de Java OWASP.
Puede ver qué datos están disponibles para cada WebView utilizando la herramienta de línea de comandos sqlite3 o un navegador compatible con SQLite3 para ver el archivo /app/-packagename-/db/webview.db. Por supuesto, cualquier entrada que se abra paso en la base de datos SQLite3 o que realice una consulta u otra operación de cadena en su contra puede convertirse en un posible punto de inserción para la inyección de SQL, aunque en algunos casos puede ser necesario un escenario MITM de red.
Algunos ejemplos de referencias a objetos directos inseguros se pueden encontrar en estos tutoriales de pruebas de penetración en la aplicación HerdFinancial que forma parte de Proyecto OWASP GoatDroid :