Web Attacks

Target(s): 94.237.48.12:30244

Escenario

Estás realizando una prueba de penetración de una aplicación web para una empresa de desarrollo de software, y te encargan que pruebes la última versión de su aplicación web de redes sociales. Intenta utilizar las diversas técnicas que has aprendido en este módulo para identificar y explotar las múltiples vulnerabilidades que se encuentran en la aplicación web.

Los datos de inicio de sesión usuario: "htb-student" y contraseña "Academy_student!"

Pregunta 1: Intenta escalar tus privilegios y explotar diferentes vulnerabilidades para leer la bandera en “/flag.php”.

  1. Entramos en la aplicación objetivo, redirigimos el tráfico a Burp y nos logueamos con las credenciales. Interceptaremos el tráfico, pero la request que nos interesa es la siguiente:

  1. La request se hace contra el usuario 74, cambiando el ese id, podremos obtener los datos de otros usuarios en el response:

  1. Nos devuelve información del usuario, esto indica que es vulnerable a IDOR. Ahora ejecutaremos un script en bash para fuzzear el id de usuario y encontrar el del admin:

  1. Tenemos el username del admin, su uid y nos falta la contraseña. Hay una función de cambio de contraseña, la utilizamos para capturar la request:

  1. La mandamos al Repeater y cambiamos el uid por el del admin (52):

  1. Pero recibimos un access denied. Aún así hemos capturado otra request en la que se solicita a la api un token, vamos a reutilizarla desde el Repeater, para obtener el token de reseteo para el admin cambiando el uid:

  1. Copiamos este token en la request del reset para cambiar la contraseña del usuario admin:

  1. Recibimos otro Access Denied pero vamos a cambiar el método de la request de POST a GET y adaptamos la URL que se envía:

  1. Accedemos con las credenciales de admin y observamos que con el usuario admin hay una función de añadir eventos :

  1. Añadimos el evento, capturamos la request y trabajamos con ella desde el Repeater:

  1. Analizando la request, puede ser vulnerable a XML aunque no lo declare en el body de la request así que probaremos con un payload para vulnerabilidades XXE:

  1. Obtenemos la flag en base64 y la decodificamos para obtener el resultado:

Última actualización