hacktricks/pentesting-web/timing-attacks.md

5.5 KiB

Timing Attacks

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

{% hint style="warning" %} For obtaining a deep understanding of this technique check the original report from https://portswigger.net/research/listen-to-the-whispers-web-timing-attacks-that-actually-work {% endhint %}

Basic Information

El objetivo básico de un ataque de temporización es básicamente poder responder preguntas complicadas o detectar funcionalidades ocultas simplemente verificando las diferencias de tiempo en las respuestas de solicitudes similares.

Tradicionalmente, esto ha sido muy complicado debido a la latencia y el jitter introducidos tanto por la red como por el servidor. Sin embargo, desde el descubrimiento y mejora del Race Condition Single Packet attack, es posible utilizar esta técnica para eliminar todos los ruidos de retraso de red de la ecuación.
Dejando solo los retrasos del servidor, lo que hace que el ataque de temporización sea más fácil de descubrir y abusar.

Discoveries

Hidden Attack Surface

En la publicación del blog se comenta cómo, utilizando esta técnica, fue posible encontrar parámetros ocultos e incluso encabezados simplemente verificando que cada vez que el parámetro o encabezado estaba presente en la solicitud había una diferencia de tiempo de aproximadamente 5 ms. De hecho, esta técnica de descubrimiento se ha añadido a Param Miner en Burp Suite.

Estas diferencias de tiempo pueden deberse a que se realizó una solicitud DNS, se escribió un registro debido a una entrada no válida o porque se realizan verificaciones cuando un parámetro está presente en la solicitud.

Algo que debes recordar al realizar este tipo de ataques es que, debido a la naturaleza oculta de la superficie, es posible que no sepas cuál es la causa real de las diferencias de tiempo.

Reverse Proxy Misconfigurations

En la misma investigación, se compartió que la técnica de temporización era excelente para descubrir "SSRFs con alcance" (que son SSRFs que solo pueden acceder a IPs/domains permitidos). Simplemente verificando la diferencia de tiempo cuando se establece un dominio permitido frente a cuando se establece un dominio no permitido ayuda a descubrir proxies abiertos, incluso si la respuesta es la misma.

Una vez que se descubre un proxy abierto con alcance, fue posible encontrar objetivos válidos analizando subdominios conocidos del objetivo y esto permitió:

  • Eludir cortafuegos accediendo a subdominios restringidos a través del proxy abierto en lugar de a través de Internet.
  • Al verificar subdominios, incluso fue posible descubrir y acceder a subdominios internos no conocidos públicamente.
  • Ataques de suplantación de Front-End: Los servidores de front-end normalmente añaden encabezados para el backend. En proxies abiertos, si puedes encontrar estos encabezados (lo que podrías hacer utilizando ataques de temporización nuevamente), podrás establecer estos encabezados y obtener acceso adicional.

References

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}