
Exploit de prueba de concepto de CVE-2018-19131: XSS en Squid Proxy mediante certificado X.509
No hagas nada ilegal con esto. Esto no es malware. Es solo una prueba de concepto.
Esta es una demo de CVE-2018-19131, que se ejecuta en una aplicación Docker Compose.

Esta biblioteca compila Squid versión 3.5.27, que es vulnerable. La versión 3.5.28 no es vulnerable. Las versiones concretas afectadas se enumeran aquí.
Las pruebas han tenido éxito tanto en Windows 10 como en Mac OS X Mojave.
No ejecutes esto en el mismo host desde el que tienes configurado el proxy, porque el proxy redirigirá todas las peticiones HTTP de vuelta a sí mismo. El cliente y el servidor deben ser dos máquinas separadas.
git clone https://github.com/JonathanWilbur/CVE-2018-19131.git.cd CVE-2018-19131.docker-compose up.Configurar un proxy HTTPS es algo muy estándar. Windows y MacOS lo tienen. Linux tiene de todo si eres creativo. No voy a documentar cómo configurar un proxy aquí, porque ya está documentado exhaustivamente en otros sitios. Simplemente configura tu ordenador para que apunte al servidor en el que instalaste la instancia vulnerable de Squid.
Sin embargo, señalaré que debes usar un proxy HTTPS, no HTTP. En
MacOS, en la configuración de Proxies, esto se llama Secure Web Proxy. Windows
no hace esa distinción.
Accede al sitio malicioso conectándote a https://web. Acepta el primer
error de certificado, que solo está causado por el proxy al interceptar el
tráfico HTTPS; a continuación se te presentará la siguiente página, que ejecutará
el exploit. Deberías ver una alerta del navegador que dice HACKED!.
Después de hacer clic en OK, verás la página predeterminada de Squid para un
fallo de conexión segura. Notarás que el nombre de emisor/asunto mostrado--que son
el mismo, porque se usa un certificado autofirmado--carece del atributo
commonName (CN). Eso se debe a que su valor era:
<script>alert("HACKED!");</script>
que se interpreta como HTML sin procesar y, por lo tanto, ¡el script se ejecuta!
Si deseas sugerir correcciones o mejoras en esta biblioteca, simplemente deja un issue en esta página de GitHub. Si deseas contactarme por otros motivos, envíame un correo a [email protected] (Mi clave GPG) (Mi certificado TLS). 🐗