Laboratorio de Ataques Web
Enunciado
Estás realizando una prueba de penetración de aplicaciones web para una empresa de desarrollo de software, y te encargan probar la última versión de su aplicación web para redes sociales. Intenta utilizar las diversas técnicas aprendidas en este módulo para identificar y explotar las múltiples vulnerabilidades encontradas en la aplicación web.
- Autenticarse el usuario
htb-studenty la contraseñaAcademy_student!Intenta aumentar tus privilegios y explotar diferentes vulnerabilidades para leer la bandera en ‘/flag.php’.
Accedemos a la página web que nos ponen.
Inspeccionando el código de la página profile.php vemos una función que apunta a una ruta.
Si la inspeccionamos vemos lo siguiente:
Nos devuelve la información del usuario con el uid dado, si le pasamos otro uid nos devuelve los datos de otro usuario.
Revisando el código de settings.php vemos 2 cosas,
- Que para cambiar contraseña no nos pide la actual.
- Lo segundo es que en el código nos muestra una ruta.

Si le hacemos petición vemos que nos devuelve el token del usuario con el uid que le pasemos:
Sin embargo si cambiamos la solicitud a otro usuario vemos que nos devuelve su token también.
Por ejemplo token del usuario con uid=2

Vemos que para hacer el cambio de contraseña se utilizan los parámetros uid, token y password.
Intentamos cambiarle la contraseña a nuestro usuario y perfecto. Intentamos cambiarle la contraseña a otro usuario:
Y nos da acceso denegado. Sin embargo si cambiamos la petición a GET:
Por lo que debemos buscar un usuario con mayores permisos, vamos a utilizar la API que nos devuelve los datos de los usuarios .../api.php/user/uid
Hacemos un ataque de tipo Sniper desde el BurpSuite Intruder.
Buscamos entre las repsuestas y vemos:
Que el usuario con uid 52 tiene como “compañía” administrator
Lo que vamos a hacer es cambiarle la contraseña como hicimos anteriormente con el usuario con uid 2.
Entramos
username: a.corrales
password:tu_password
Revisamos la funcionalidad nueva y vemos que maneja los eventos con XML:
Entonces le pasamos el payload, nos muestra en este caso el archivo codificado en base 64 y con el mismo inspector lo decodificamos.
<!DOCTYPE email [
<!ENTITY company SYSTEM "php://filter/convert.base64-encode/resource=/flag.php">
]>

Si te sirvió de algo este tutorial ya para mi es más que suficiente, si me puedes decir en que podemos mejorar te lo voy a agradecer un montón.
Escríbeme por cualquiera de las vías