Entrada

Information Disclosure Lab 4

Information Disclosure Lab 4

Skills

  • Authentication bypass via information disclosure

Certificaciones

  • eWPT
  • eWPTXv2
  • OSWE
  • BSCP

Descripción

La interfaz de administración de este laboratorio tiene una vulnerabilidad de authentication bypass, pero es impráctico explotarla sin conocer un header HTTP personalizado utilizado por el front-end. Para resolver el laboratorio, debemos obtener el nombre del header, usarlo para omitir la autenticación, acceder a la interfaz de administración y eliminar al usuario carlos. Podemos iniciar sesión en nuestra propia cuenta con las credenciales wiener:peter


Resolución

Al acceder a la web nos sale esto

Pulsamos en My account y nos logueamos con las credenciales wiener:peter

Nos dirigimos a Burpsuite, pulsamos en Target > Site map, señalamos el dominio a analizar y hacemos click izquierdo > Engagement tools > Discover content para analizar los rutas del sitio web. Podemos seleccionar un diccionario personalizado en la parte de Config o pulsar directamente Session is not running para iniciar la fuerza bruta, al hacerlo encontramos el directorio /admin

Si accedemos a https://0ac500e90425502b813b028300e200ae.web-security-academy.net/admin nos muestra este mensaje

He probado estas cabeceras https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/special-http-headers#headers-to-change-location para cambiar la localización desde donde se envía la petición al servidor pero no ha dado resultado. A parte de GET, POST etc existen otros métodos a la hora de hacer peticiones al servidor https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods. Para bruteforcear estos métodos vamos a interceptar al petición hecha desde Burpsuite a /admin y a mandarla al intruder

En la parte de Payloads seleccionamos simple list, más abajo seleccionamos el diccionario que nos da Burpsuite llamado http verbs y desactivamos el Payload encoding. El único método que ha obtenido un código de estado diferente ha sido TRACE https://book.hacktricks.xyz/todo/other-web-tricks#trace-method. Nos dirigimos al repeater y sustituimos GET por TRACE

Esta sería la respuesta obtenida a nuestra petición, el método TRACE se usa como método de diagnóstico debido a que nos devuelve en la respuesta, la solicitud exacta que recibe el servidor. Este comportamiento suele ser inofensivo, pero ocasionalmente puede provocar un information disclosure, como el nombre de encabezados de autenticación internos que pueden ser añadidos a las solicitudes por reverse proxies

En este caso la cabecera X-Custom-IP-Authorization: 185.72.115.27 nos indica de donde proviene la petición. Por lo tanto si añadimos esta cabecera cuando hacemos la petición a /admin el servidor interpretaría que estamos accediendo a /admin desde la propia máquina víctima

Hacemos click derecho y seleccionamos una de estas opciones

Una vez hecho esto se nos mostrará un panel administrativo

Si pinchamos sobre Delete nos redirigirá a https://0ac50057033c588b855e689500a40060.web-security-academy.net/admin/delete?username=carlos pero no nos dejará borrar a ningún usuario, esto es debido a que no estamos implementando la cabecera X-Custom-IP-Authorization. Para poder hacer la petición debemos dirigirnos a Burpsuite y hacer la petición desde ahí a la ruta /admin/delete?username=carlos

Esta entrada está licenciada bajo CC BY 4.0 por el autor.