XSSaS
Enumeración
sudo arp-scan -I eth0 --localnetNmap
En segundo lugar, realizaremos un escaneo por TCP usando Nmap para ver que puertos de la máquina vÃctima se encuentra abiertos.

Puerto 80 - HTTP (Werkzeug - Python)
En primer lugar, nos dirigimos al servidor web y tras un buen rato intentando encontrar el vector de entrada veremos que al introducir el parámetro user en la URL, dicho valor se ve reflejado en el atributo value del campo input.
Usaremos wfuzz para encontrar el parametro:
Encontramos el parametro:

Entonces verificando con los parámetros dados se pudo ver lo siguiente, si evalúa lo que ingresamos al parámetro:

Tal y como vemos a continuación, los caracteres < y > están siendo convertidos a < y <, por lo que no podremos inyectar un XSS.

Tras revisar el código fuente nos llamará la atención el atributo popovertarget presente en el button. Por lo que buscando por internet daremos con el siguiente artÃculo XSS popovertarget - Portswigger donde explican como acontecer un XSS a partir de este atributo (popovertarget).

Explotación
XSS
Tras mirar el anterior artÃculo entenderemos como acontecer un XSS abusando del atributo popovertarget, en definitiva el payload es el siguiente.
Tal y como vemos a continuación conseguimos mostrar el cuadro del prompt().

Usando el mismo payload que antes intentaremos mostrar una ventana de alert().

Una forma de bypasear esta comprobación es usando la función document.write() tal que asÃ.
Destacar la importancia de URL Encodear los + a %2B.
Pero no obtuce resultado asi que realice mas busquedas de bypasear:
Encontré el siguiente artÃculo XSS Bypass alert - Portswigger donde pude extraer los siguientes payloads alternativos para ejecutar el
alert().


Ambas funcionan 🎉
Last updated