Laboratorio de Ataques Web

Sep 15, 2025 · 2 mins read

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-student y la contraseña Academy_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,

  1. Que para cambiar contraseña no nos pide la actual.
  2. 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