Manipulación del Estado 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.
Ingresar al juego para adivinar un número.
Ingresar un nombre y hacer clic en el botón de nombre “PLAY”.
A continuación se debe tratar de adivinar el número de tres dígitos seleccionado aleatoriamente por la computadora. Se ingresa un número para luego hacer clic en el botón de nombre “GUESS”.
El juego continúa proporcionando pistas para tratar de adivinar el número.
En Zed Attack Proxy se analizan los datos enviados hacia la Aplicación Web. El parámetro de nombre “userguess” almacena el número enviado por el usuario, el parámetro de nombre “player” almacena el nombre del usuario. Prestar atención en el parámetro de nombre “VIEWSTATE”.
Los símbolos %0D y %0A representan CR (Carriege return) y LF (Line feed) respectivamente. Para los cuatro símbolos previos se utiliza la herramienta de Codificación/ Decodificación y Hashing incluida en Zed Attack Proxy.
Dado el juego consiste en adivinar un número, la decodificación en Base64 tiene un mejor significado. Se procede entonces a intentar este número como el “correcto” para el juego.
Es correcto. El número ha sido adivinado en el segundo intento. Esto a razón de almacenar la información del estado a través del cliente en un campo oculto del formulario de nombre “VIEWSTATE”.
Este mismo procedimiento de análisis, puede se aplicado para el juego donde se debe intentar adivinar una palabra de cinco letras generada aleatoriamente por la Aplicación Web.
Fuentes:
https://www.owasp.org/index.php/Category:OWASP_Vicnum_Project
http://vicnum.ciphertechs.com/
http://sourceforge.net/projects/owaspbwa/
http://sourceforge.net/p/owaspbwa/tickets/?limit=999&sort=_severity+asc
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/