Client Side Template Injection (CSTI)
WhiteIntel es un motor de búsqueda alimentado por la dark web que ofrece funcionalidades gratuitas para verificar si una empresa o sus clientes han sido comprometidos por malwares de robo.
El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
Puedes visitar su sitio web y probar su motor de forma gratuita en:
Resumen
Es como una Inyección de Plantillas en el Lado del Servidor pero en el cliente. Mientras que el SSTI puede permitirte ejecutar código en el servidor remoto, el CSTI podría permitirte ejecutar código JavaScript arbitrario en el navegador de la víctima.
La prueba de esta vulnerabilidad es muy similar a la del SSTI, el intérprete espera una plantilla y la ejecutará. Por ejemplo, con un payload como {{ 7-7 }}
, si la aplicación es vulnerable, verás un 0
, y si no lo es, verás el original: {{ 7-7 }}
AngularJS
AngularJS es un marco de JavaScript ampliamente utilizado que interactúa con HTML a través de atributos conocidos como directivas, siendo una notable ng-app
. Esta directiva permite que AngularJS procese el contenido HTML, lo que habilita la ejecución de expresiones JavaScript dentro de llaves dobles.
En escenarios donde la entrada del usuario se inserta dinámicamente en el cuerpo HTML etiquetado con ng-app
, es posible ejecutar código JavaScript arbitrario. Esto se puede lograr aprovechando la sintaxis de AngularJS dentro de la entrada. A continuación se muestran ejemplos que demuestran cómo se puede ejecutar código JavaScript:
Puedes encontrar un ejemplo en línea muy básico de la vulnerabilidad en AngularJS en http://jsfiddle.net/2zs2yv7o/ y en Burp Suite Academy
Angular 1.6 eliminó el sandbox por lo que a partir de esta versión un payload como {{constructor.constructor('alert(1)')()}}
o <input ng-focus=$event.view.alert('XSS')>
debería funcionar.
VueJS
Puedes encontrar una implementación de Vue vulnerable en https://vue-client-side-template-injection-example.azu.now.sh/
Payload funcional: https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%
Y el código fuente del ejemplo vulnerable aquí: https://github.com/azu/vue-client-side-template-injection-example
Un post realmente bueno sobre CSTI en VUE se puede encontrar en https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets
V3
Crédito: Gareth Heyes, Lewis Ardern & PwnFunction
V2
Crédito: Mario Heiderich
Ver más payloads de VUE en https://portswigger.net/web-security/cross-site-scripting/cheat-sheet#vuejs-reflected
Mavo
Payload:
Más payloads en https://portswigger.net/research/abusing-javascript-frameworks-to-bypass-xss-mitigations
Lista de Detección de Fuerza Bruta
WhiteIntel es un motor de búsqueda alimentado por la dark web que ofrece funcionalidades gratuitas para verificar si una empresa o sus clientes han sido comprometidos por malwares de robo.
El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
Puedes visitar su sitio web y probar su motor de forma gratuita en:
Última actualización