hacktricks/pentesting-web/timing-attacks.md

5.5 KiB

Timing Attacks

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

{% hint style="warning" %} Para obter uma compreensão profunda desta técnica, consulte o relatório original em https://portswigger.net/research/listen-to-the-whispers-web-timing-attacks-that-actually-work {% endhint %}

Basic Information

O objetivo básico de um ataque de timing é basicamente ser capaz de responder a perguntas complicadas ou detectar funcionalidades ocultas apenas verificando as diferenças de tempo nas respostas de solicitações semelhantes.

Tradicionalmente, isso tem sido muito complicado devido à latência e jitter introduzidos tanto pela rede quanto pelo servidor. No entanto, desde a descoberta e melhoria do Race Condition Single Packet attack, é possível usar essa técnica para remover todos os ruídos de atrasos de rede da equação.
Deixando apenas os atrasos do servidor, o ataque de timing se torna mais fácil de descobrir e abusar.

Discoveries

Hidden Attack Surface

No post do blog é comentado como, usando essa técnica, foi possível encontrar parâmetros ocultos e até cabeçalhos apenas verificando que sempre que o parâmetro ou cabeçalho estava presente na solicitação, havia uma diferença de tempo de cerca de 5ms. Na verdade, essa técnica de descoberta foi adicionada ao Param Miner no Burp Suite.

Essas diferenças de tempo podem ocorrer porque uma solicitação DNS foi realizada, algum log foi escrito devido a uma entrada inválida ou porque alguns checks são realizados quando um parâmetro está presente na solicitação.

Algo que você precisa lembrar ao realizar esse tipo de ataque é que, devido à natureza oculta da superfície, você pode não saber qual é a verdadeira causa das diferenças de tempo.

Reverse Proxy Misconfigurations

Na mesma pesquisa, foi compartilhado que a técnica de timing era ótima para descobrir "SSRFs com escopo" (que são SSRFs que podem acessar apenas IPs/domínios permitidos). Apenas verificando a diferença de tempo quando um domínio permitido é definido em comparação com quando um domínio não permitido é definido ajuda a descobrir proxies abertos, mesmo que a resposta seja a mesma.

Uma vez que um proxy aberto com escopo é descoberto, foi possível encontrar alvos válidos analisando subdomínios conhecidos do alvo, e isso permitiu:

  • Contornar firewalls acessando subdomínios restritos via o proxy aberto em vez de pela internet.
  • Além disso, abusando de um proxy aberto, também é possível descobrir novos subdomínios acessíveis apenas internamente.
  • Ataques de impersonação de Front-End: Servidores de front-end normalmente adicionam cabeçalhos para o backend, como X-Forwarded-For ou X-Real-IP. Proxies abertos que recebem esses cabeçalhos os adicionarão ao endpoint solicitado, portanto, um atacante poderia acessar ainda mais domínios internos adicionando esses cabeçalhos com valores permitidos.

References

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}