Informe: Omisión de autenticación a través de la divulgación de información @ PortSwigger Academy

Este artículo sobre la omisión de autenticación de laboratorio a través de la divulgación de información es parte de mi serie de tutoriales para la Web Security Academy de PortSwigger .
Ruta de aprendizaje : Temas del lado del servidor → Divulgación de información
Secuencia de comandos de Python: secuencia de comandos.py
Descripción del laboratorio

Pasos
Análisis
La aplicación del laboratorio es una web de tienda con productos muy interesantes. Como de costumbre, el primer paso es consultar el sitio web.
Después de navegar un poco e iniciar sesión con las credenciales conocidas, no aparece nada demasiado interesante. Es hora de revisar las solicitudes en Burp. Nada demasiado interesante allí tampoco.
El punto final de administración en algunos laboratorios anteriores se encontró en /admin
. Pero para evitar usar este conocimiento, puedo usar múltiples medios de descubrimiento de contenido. Burp Professional viene con dicha funcionalidad y varias buenas herramientas gratuitas también permiten el descubrimiento de contenido.
El que uso aquí es ffuf junto con las excelentes listas de palabras proporcionadas por SecLists :

Visitando el punto final
Visito esta página para recibir este mensaje:

No se da más información.
Una forma común de propagar direcciones IP de origen a un servidor web (usado en escenarios de equilibrio de carga o proxy) es el X-Forwarded-For
encabezado. Sin embargo, esto no funciona aquí (y la descripción del laboratorio indica que es un encabezado personalizado de todos modos).
Se pueden usar dos verbos HTTP para obtener información adicional OPTIONS
y TRACE
. Este último produce un resultado interesante:

Suministro de encabezado personalizado
Ahora que conozco el encabezado, acceder a la interfaz de administración se vuelve fácil. Necesito asegurarme de que el encabezado personalizado se envíe con cada solicitud, así que agrego una Match and Replace
regla para agregar siempre este nuevo encabezado a las solicitudes.
Utilizo 127.0.0.1
como contenido para engañar a la aplicación para que crea que la solicitud se originó en localhost
.

Ahora simplemente vuelva a cargar la página en el navegador, acceda al panel de administración y elimine el usuario carlos
para resolver el laboratorio:

Publicado originalmente en https://github.com .
New to Medium? Become a Medium member to access all stories on the platform and support me at no extra cost for you!