Descripción

This lab is vulnerable to routing-based SSRF due to its flawed parsing of the request’s intended host. You can exploit this to access an insecure intranet admin panel located at an internal IP address.

To solve the lab, access the internal admin panel located in the 192.168.0.0/24 range, then delete the user carlos.

SSRF via flawed request parsing writeup

A diferencia del laboratorio anterior (Host header authentication bypass), esta vez no existirá ‘robots.txt’ ni ‘/admin’, pero por la descripción del laboratorio sabemos que tenemos que realizar un SSRF. Llevaremos la petición de la ‘/’ del ‘Logger’ al ‘Intruder’ con Ctrl + I o Click derecho -> Send to Intruder. Allí realizaremos un ataque con la siguiente configuración:

Nota: Es importante que desactivemos la opción ‘Update Host header to match target’, si no se sustituirá la dirección IP 192.168.0.SS por la del host y el ataque no tendrá sentido.

Nota: La diferencia con el laboratorio anterior (Routing-based SSRF), es que ahora para evitar que todas las páginas nos devuelvan un error 504, tendremos que añadir la URL completa después del GET.

Al finalizar ordenaremos por código HTTP y veremos que hay una dirección IP local que nos redirige a ‘/admin’. Ahora sabemos que ‘/admin’ está en la dirección local del servidor 192.168.0.77.

Enviamos la petición al ‘Repeater’. Allí modificamos la URL a ‘https://0a360058042e50ac88fb2f9a00a90060.web-security-academy.net/admin’ y cambiamos el Host por ‘192.168.0.77’. Obtendremos la siguiente respuesta:

La página contiene un formulario ‘<form>’ que hay que cumplimentar para eliminar al usuario. Cambiaremos la petición por la siguiente:

Los cambios realizados han sido los siguientes:

  1. Se ha cambiado ‘GET’ por ‘POST’ para enviar el formulario con el método correcto.
  2. Se ha cambiado la URL de ‘https://0a360058042e50ac88fb2f9a00a90060.web-security-academy.net/admin’ a ‘https://0a360058042e50ac88fb2f9a00a90060.web-security-academy.net/admin/delete’ para usar el endpoint del formulario.
  3. Se han añadido los valores ‘csrf’ (con el valor proporcionado por el formulario), ‘username’ con el valor del usuario a borrar.

Al volver al navegador y actualizar habremos completado el laboratorio:

Deja una respuesta

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