Auditoría y CTF

La BadStore, explotando vulnerabilidades web sin meterse en lios

Buenas,

Con esa entrada quería comenzar una serie de post’s para exponer las principales vulnerabilidades en las principales aplicaciones intencionadamente vulnerables para practicar en un entorno simulado y controlado y olvidarnos de problemas.

En esta entrada quería centrarme en la badstore, una aplicación web para practicar las principales vulnerabilidades web a las que nos podemos enfrentar.

Disponible de una ISO para su descarga en el siguiente enlace:

http://download.vulnhub.com/badstore/BadStore_123s.iso

Para su configuración en virtualbox se crea una máquina virtual y posteriormente se añade la ISO. En configuración -almacenamiento, hay asociar la imagen ISO en el controlador IDE y configurar la máquina virtual para que arranque primero desde el cdrom.

En la opción de red, se configura en la opción de «sólo host anfitrión».

Una vez iniciado, accediendo en el navegador a la url:

http://192.168.XXX.XXX/cgi-bin/badstore.cgi en función de la IP privada de cada uno, se accede a la página principal de la badstore:

Por ejemplo, en la barra de búsqueda se puede inyectar código SQL obteniendo devolviendo todos los artículos de la tienda, esto es, más artículos de los que se ven de primeras.
Introduciendo la consulta SQL: ‘ or ‘1’= ‘1 #
Visitando el libro de visitas, se podría incluir código script para explotar un Cross Site Scripting.
De esta manera introduciendo el típico <script>alert(«XSS»)</script> se inserta un XSS persistente, tal que al acceder al historial de visitas, se ejecuta dicho código, siendo en este caso un alert.
En la creación de cuentas de usuarios, analizando las peticiones se pueden observar un parámetro en la petición POST muy jugoso, con el nombre de role. Por defecto, viene con valor role=U (user), por lo que si se captura esa petición y se modifica con role=A (admin)
Empleando el plugin TamperData de Firefox o el similar para Google Chrome se puede capturar la petición y modificarla:
De tal manera que se consigue permisos de administrador teniendo acceso al panel de administrador. Bajando en la barra de usuario.

Por último, otra vulnerabilidad se encuentra en las cookies. La vulnerabilidad se basa en que no tienen el atributo HttpOnly. Además como se observan están en texto plano sin cifrar ni hashear.
La vulnerabilidad está basada en inyectar una cookie capturada para conseguir el login de una cuenta de usuario.
Por lo tanto, empleando el XSS documento.cookie se podría reenviar esta traza con esa cookie para loguearse.
Con ese valor de las cookies del carrito de compra:
CartID=1461162597%3A3%3A9010.5%3A1000%3A1004%3A1005
 Se pueden identificar los productos seleccionados para comprar gracias a que están separados por el carácter “%”, siendo sus identificadores:
->1000
->1004
->1005
%3A3 -> Indica el número de produxtos seleccionados
%3A9010.5 -> Indica el precio
%3A1000%3A1004%3A1005 -> Indica el ID de los productos seleccionados
Entonces capturando la cookie y cambiando el valor de la compra:

De tal manera que nos salen gratis =D

La finalidad de este post es totalmente educativo para formar sobre ciberseguridad en un entorno completamente controlado.

La mejor defensa es un buena ataque

Saludos.

NaxHack5

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Los datos introducidos se guardarán en nuestra base de datos como parte del comentario publicado, como se indica en la política de privacidad.