hacktricks/pentesting-web/timing-attacks.md

67 lines
5.6 KiB
Markdown
Raw Normal View History

# Timing Attacks
{% hint style="success" %}
Lerne & übe AWS Hacking:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
Lerne & übe GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Überprüfe die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Tritt der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folge** uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teile Hacking-Tricks, indem du PRs zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
</details>
{% endhint %}
{% hint style="warning" %}
Um ein tiefes Verständnis dieser Technik zu erlangen, überprüfe den Originalbericht von [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 %}
## Grundinformationen
Das grundlegende Ziel eines Timing-Angriffs besteht darin, komplizierte Fragen zu beantworten oder versteckte Funktionen zu erkennen, indem man einfach **die Zeitunterschiede in den Antworten auf ähnliche Anfragen überprüft**.
Traditionell war dies sehr kompliziert, da die Latenz und der Jitter sowohl durch das Netzwerk als auch durch den Server verursacht werden. Seit der Entdeckung und Verbesserung des [**Race Condition Single Packet Angriffs**](race-condition.md#http-2-single-packet-attack-vs.-http-1.1-last-byte-synchronization) ist es jedoch möglich, diese Technik zu verwenden, um alle netzwerkbedingten Verzögerungen aus der Gleichung zu entfernen.\
Wenn nur die **Serververzögerungen** übrig bleiben, wird der Timing-Angriff einfacher zu entdecken und auszunutzen.
## Entdeckungen
### Versteckte Angriffsfläche
Im Blogbeitrag wird kommentiert, wie es mit dieser Technik möglich war, versteckte Parameter und sogar Header zu finden, indem einfach überprüft wurde, dass es immer dann einen **Zeitunterschied von etwa 5 ms** gab, wenn der Parameter oder Header in der Anfrage vorhanden war. Tatsächlich wurde diese Entdeckungstechnik zu **Param Miner** in Burp Suite hinzugefügt.
Diese Zeitunterschiede könnten darauf zurückzuführen sein, dass eine **DNS-Anfrage** durchgeführt wurde, einige **Protokolle geschrieben** wurden, weil eine ungültige Eingabe vorlag, oder weil einige **Überprüfungen durchgeführt werden**, wenn ein Parameter in der Anfrage vorhanden ist.
Etwas, das du dir merken musst, wenn du diese Art von Angriffen durchführst, ist, dass du aufgrund der versteckten Natur der Oberfläche möglicherweise nicht weißt, was die tatsächliche Ursache der Zeitunterschiede ist.
### Reverse Proxy Fehlkonfigurationen
In derselben Forschung wurde geteilt, dass die Timing-Technik großartig war, um "scoped SSRFs" zu entdecken (das sind SSRFs, die nur auf erlaubte IPs/Domains zugreifen können). Einfach **den Zeitunterschied zu überprüfen, wenn eine erlaubte Domain gesetzt ist** im Vergleich zu einer nicht erlaubten Domain hilft, offene Proxys zu entdecken, selbst wenn die Antwort die gleiche ist.
Sobald ein scoped offener Proxy entdeckt wurde, war es möglich, gültige Ziele zu finden, indem bekannte Subdomains des Ziels geparst wurden, und dies ermöglichte:
* **Umgehung von Firewalls**, indem auf eingeschränkte Subdomains über den offenen Proxy anstelle des Internets zugegriffen wird
* Durch Überprüfung von Subdomains war es sogar möglich, interne Subdomains zu entdecken und darauf zuzugreifen, die nicht öffentlich bekannt sind
* **Front-End-Imitationsangriffe**: Front-End-Server fügen normalerweise Header für das Backend hinzu. In offenen Proxys, wenn du in der Lage bist, diese Header zu finden (was du möglicherweise erneut mit Timing-Angriffen tun kannst), wirst du in der Lage sein, diese Header zu setzen und weiteren Zugriff zu erhalten.
## Referenzen
* [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" %}
Lerne & übe AWS Hacking:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
Lerne & übe GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Überprüfe die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Tritt der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folge** uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teile Hacking-Tricks, indem du PRs zu den** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos einreichst.
</details>
{% endhint %}