
Exploit Proof-of-Concept di CVE-2018-19131: XSS in Squid Proxy tramite certificato X.509
Non fare nulla di illegale con questo. Non è malware. È solo una dimostrazione di concetto.
Questa è una demo di CVE-2018-19131, che gira in un'app Docker Compose.

Questa libreria compila la versione 3.5.27 di Squid, che è vulnerabile. La versione 3.5.28 non è vulnerabile. Le versioni specifiche interessate sono elencate qui.
I test hanno avuto successo sia su Windows 10 che su Mac OS X Mojave.
Non eseguirlo sullo stesso host da cui sei configurato per usare il proxy, perché il proxy reindirizzerà tutte le richieste HTTP a se stesso. Il client e il server dovrebbero essere due macchine separate.
git clone https://github.com/JonathanWilbur/CVE-2018-19131.git.cd CVE-2018-19131.docker-compose up.Configurare un proxy HTTPS è una cosa davvero standard. Windows e MacOS lo hanno. Linux ha qualsiasi cosa se sei creativo. Non documenterò come configurare un proxy qui, perché è già ampiamente documentato altrove. Basta configurare il tuo computer in modo che punti al server su cui hai installato la istanza vulnerabile di Squid.
Tuttavia, tieni presente che dovresti usare un proxy HTTPS, non HTTP. Su
MacOS, nelle impostazioni Proxies, questo viene chiamato Secure Web Proxy. Windows
non fa questa distinzione.
Accedi al sito dannoso collegandoti a https://web. Accetta il primo
errore di certificato, che è causato semplicemente dal proxy che intercetta il
traffico HTTPS; poi ti verrà mostrata la pagina successiva, che eseguirà
l'exploit. Dovresti vedere un avviso del browser che dice HACKED!.
Dopo aver fatto clic su OK, vedrai la pagina predefinita di Squid per un errore di
connessione sicura. Noterai che il nome emittente/soggetto visualizzato--che
sono la stessa cosa, perché viene usato un certificato auto-firmato--manca
dell'attributo commonName (CN). Questo perché il suo valore era:
<script>alert("HACKED!");</script>
che viene interpretato come HTML grezzo e quindi lo script viene eseguito!
Se desideri suggerire correzioni o miglioramenti a questa libreria, ti preghiamo semplicemente di aprire una segnalazione (issue) in questa pagina GitHub. Se desideri contattarmi per altri motivi, scrivimi via email a [email protected] (La mia chiave GPG) (Il mio certificato TLS). 🐗