
Prova de conceito de exploit do CVE-2018-19131: XSS no Squid Proxy via Certificado X.509
Não faça nada ilegal com isto. Isto não é malware. Isto é apenas uma prova de conceito.
Esta é uma demonstração de CVE-2018-19131, que executa em um aplicativo Docker Compose.

Esta biblioteca compila a versão 3.5.27 do Squid, que é vulnerável. A versão 3.5.28 não é vulnerável. As versões específicas afetadas estão listadas aqui.
Os testes foram bem-sucedidos tanto no Windows 10 quanto no Mac OS X Mojave.
Não execute isto no mesmo host a partir do qual você está configurado para usar o proxy, porque o proxy redirecionará todas as solicitações HTTP de volta para si mesmo. O cliente e o servidor devem ser duas máquinas separadas.
git clone https://github.com/JonathanWilbur/CVE-2018-19131.git.cd CVE-2018-19131.docker-compose up.Configurar um proxy HTTPS é algo realmente padrão. Windows e MacOS têm isso. Linux tem qualquer coisa, se você for criativo. Não vou documentar como configurar um proxy aqui, porque isso já está documentado extensivamente em outros lugares. Basta configurar seu computador para apontar para o servidor no qual você instalou a instância vulnerável do Squid.
Observarei, no entanto, que você deve usar um proxy HTTPS, não HTTP. No
MacOS, nas configurações Proxies, isso é chamado de Secure Web Proxy. O Windows
não faz essa distinção.
Acesse o site malicioso conectando-se a https://web. Aceite o primeiro
erro de certificado, que é causado apenas pela interceptação do tráfego HTTPS pelo
proxy; então você verá a próxima página, que executará
o exploit. Você deverá ver um alerta do navegador dizendo HACKED!.
Depois de clicar em OK, você verá a página padrão do Squid para uma falha ao se
conectar com segurança. Você notará que o nome do emissor/assunto exibido — que são
um só, porque isto usa um certificado autoassinado — está sem
o atributo commonName (CN). Isso ocorre porque o valor dele era:
<script>alert("HACKED!");</script>
que é interpretado como HTML bruto e, portanto, o script é executado!
Se você quiser sugerir correções ou melhorias nesta biblioteca, basta abrir uma issue nesta página do GitHub. Se quiser entrar em contato comigo por outros motivos, envie-me um e-mail para [email protected] (Minha Chave GPG) (Meu Certificado TLS). 🐗