diff --git a/SUMMARY.md b/SUMMARY.md index b26e5d200..9ae9983a4 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -611,6 +611,7 @@ * [Registration & Takeover Vulnerabilities](pentesting-web/registration-vulnerabilities.md) * [Regular expression Denial of Service - ReDoS](pentesting-web/regular-expression-denial-of-service-redos.md) * [Reset/Forgotten Password Bypass](pentesting-web/reset-password.md) +* [Reverse Tab Nabbing](pentesting-web/reverse-tab-nabbing.md) * [SAML Attacks](pentesting-web/saml-attacks/README.md) * [SAML Basics](pentesting-web/saml-attacks/saml-basics.md) * [Server Side Inclusion/Edge Side Inclusion Injection](pentesting-web/server-side-inclusion-edge-side-inclusion-injection.md) @@ -637,7 +638,7 @@ * [SSTI (Server Side Template Injection)](pentesting-web/ssti-server-side-template-injection/README.md) * [EL - Expression Language](pentesting-web/ssti-server-side-template-injection/el-expression-language.md) * [Jinja2 SSTI](pentesting-web/ssti-server-side-template-injection/jinja2-ssti.md) -* [Reverse Tab Nabbing](pentesting-web/reverse-tab-nabbing.md) +* [Timing Attacks](pentesting-web/timing-attacks.md) * [Unicode Injection](pentesting-web/unicode-injection/README.md) * [Unicode Normalization](pentesting-web/unicode-injection/unicode-normalization.md) * [UUID Insecurities](pentesting-web/uuid-insecurities.md) diff --git a/pentesting-web/timing-attacks.md b/pentesting-web/timing-attacks.md new file mode 100644 index 000000000..b00ee6dab --- /dev/null +++ b/pentesting-web/timing-attacks.md @@ -0,0 +1,66 @@ +# Timing Attacks + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) + +
+ +Support HackTricks + +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. + +
+{% 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](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**](race-condition.md#http-2-single-packet-attack-vs.-http-1.1-last-byte-synchronization), 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 + +* [https://portswigger.net/research/listen-to-the-whispers-web-timing-attacks-that-actually-work](https://portswigger.net/research/listen-to-the-whispers-web-timing-attacks-that-actually-work) + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) + +
+ +Support HackTricks + +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. + +
+{% endhint %}