HTTP Connection Contamination

Support HackTricks

Este é um resumo do post: https://portswigger.net/research/http-3-connection-contamination. Confira para mais detalhes!

Os navegadores da web podem reutilizar uma única conexão HTTP/2+ para diferentes sites através da coalescência de conexão HTTP, dado endereços IP compartilhados e um certificado TLS comum. No entanto, isso pode entrar em conflito com o roteamento de primeira solicitação em proxies reversos, onde solicitações subsequentes são direcionadas ao back-end determinado pela primeira solicitação. Esse erro de roteamento pode levar a vulnerabilidades de segurança, particularmente quando combinado com certificados TLS curinga e domínios como *.example.com.

Por exemplo, se wordpress.example.com e secure.example.com são servidos pelo mesmo proxy reverso e têm um certificado curinga comum, a coalescência de conexão de um navegador pode levar solicitações para secure.example.com a serem processadas incorretamente pelo back-end do WordPress, explorando vulnerabilidades como XSS.

Para observar a coalescência de conexão, a aba de Rede do Chrome ou ferramentas como Wireshark podem ser usadas. Aqui está um trecho para teste:

fetch('//sub1.hackxor.net/', {mode: 'no-cors', credentials: 'include'}).then(()=>{ fetch('//sub2.hackxor.net/', {mode: 'no-cors', credentials: 'include'}) })

A ameaça é atualmente limitada devido à raridade do roteamento de primeira solicitação e à complexidade do HTTP/2. No entanto, as mudanças propostas no HTTP/3, que relaxam o requisito de correspondência de endereço IP, podem ampliar a superfície de ataque, tornando servidores com um certificado curinga mais vulneráveis sem a necessidade de um ataque MITM.

As melhores práticas incluem evitar o roteamento de primeira solicitação em proxies reversos e ter cautela com certificados TLS curinga, especialmente com o advento do HTTP/3. Testes regulares e conscientização sobre essas vulnerabilidades complexas e interconectadas são cruciais para manter a segurança na web.

Support HackTricks

Last updated