Inyección SQL en OWASP Vicnum
El Proyecto OWASP Vicnum es una colección de aplicaciones web hechas intencionalmente vulnerables. Estas aplicaciones web vulnerables son útiles para demostrar las vulnerabilidades web más comunes como inyecciones SQL, Cross-Site Scripting (XSS) y temas en la gestión de la sesión.
Siendo una pequeña aplicación web sin ningún framework complejo, las aplicaciones Vicnum pueden ser fácilmente invocados y adaptados a requerimientos específicos. Por ejemplo si una aplicación vulnerable de prueba es necesaria para evaluar un escaner de seguridad web o un firewall de aplicación web, se podría desear controlar la aplicación web objetivo para ver lo encontrado por el escaner y lo factible de ser protegido por el firewall.
Para la siguiente demostración se utilizará Vicnum en una máquina real y Samurai-WTF. Se procede a configurar Zed Attack Proxy con Firefox para luego ingresar a Vicnum.
Según los resultados obtenidos de realizar un escaneo activo utilizando Zed Attack Proxy, se obtienen cuatro temas relacionados con Inyecciones SQL.
Todas las inyecciones SQL encontradas utilizan el método POST. Para evaluar estos hallazgos es factible utilizar la funcionalidad de interceptación de ZAP. Ícono con una esfera de color verde ubicado en el panel superior (Set break on all request and responses).
Primero se ingresa un valor normal en el campo en evaluación.
Se modifica el valor “aloha” ingresado previamente, por la prueba pertinente para intentar detectar una Inyección SQL.
Anotar como el texto de prueba es mostrado en la página devuelta por la Aplicación Web. Esto puede tratarse de un falso positivo, qunque altamente propenso a un Cross-Site Scripting (XSS) Reflejado.
Se procede a verificar manualmente la segunda Inyección SQL identificada por Zed Attack Proxy.
Se escribe una comilla simple en el campo utilizado para buscar jugadores dentro de la Aplicación Web. La respuesta devuelta muestra un mensaje de error en la consulta SQL realizada. Se exponen nombres de columnas como “name”, “guess”, “count”, “tod” y el nombre de la tabla “guessnumresults”.
La consulta extrae información de cuatro columnas, por lo tanto es factible unir la consulta original utilizando la sentencia “UNION”, e iniciar a capturar información diversa como el nombre de usuario utilizado, el nombre de usuario del sistema, nombre de la base de datos y versión del servidor de base de datos. Toda esta información puede ser obtenida directamente utilizando el navegador web.
Este mismo procedimiento puede ser realizado para verificar las restantes Inyecciones SQL identificadas por Zed Attack Proxy.
Fuentes:
https://www.owasp.org/index.php/Category:OWASP_Vicnum_Project
http://vicnum.ciphertechs.com/
https://www.owasp.org/index.php/Testing_for_SQL_Injection_%28OTG-INPVAL-...
http://sourceforge.net/projects/owaspbwa/
http://sourceforge.net/p/owaspbwa/tickets/?limit=999&sort=_severity+asc
http://pentestmonkey.net/cheat-sheet/sql-injection/mysql-sql-injection-c...
Sobre el Autor
Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor Independiente en Ciberseguridad
WhatsApp: https://wa.me/51949304030
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
Youtube: https://www.youtube.com/c/AlonsoCaballero
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/