hacktricks/pentesting-web/timing-attacks.md

66 lines
7.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Timing Attacks
{% hint style="success" %}
Learn & practice 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">\
Learn & practice 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>
* 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.
</details>
{% endhint %}
{% hint style="warning" %}
Για να αποκτήσετε μια βαθιά κατανόηση αυτής της τεχνικής, ελέγξτε την αρχική αναφορά από [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
Ο βασικός στόχος μιας επίθεσης χρόνου είναι βασικά να είναι σε θέση να απαντήσει σε περίπλοκες ερωτήσεις ή να ανιχνεύσει κρυφές λειτουργίες απλά **ελέγχοντας τις χρονικές διαφορές στις απαντήσεις από παρόμοια αιτήματα**.
Παραδοσιακά, αυτό ήταν πολύ περίπλοκο λόγω της καθυστέρησης και της τζιτερ που εισάγονται τόσο από το δίκτυο όσο και από τον διακομιστή. Ωστόσο, από την ανακάλυψη και τη βελτίωση της [**Race Condition Single Packet attack**](race-condition.md#http-2-single-packet-attack-vs.-http-1.1-last-byte-synchronization), είναι δυνατό να χρησιμοποιηθεί αυτή η τεχνική για να αφαιρεθούν όλες οι καθυστερήσεις του δικτύου από την εξίσωση.\
Αφήνοντας μόνο τις **καθυστερήσεις του διακομιστή** καθιστά την επίθεση χρόνου πιο εύκολη στην ανακάλυψη και την κατάχρηση.
## Discoveries
### Hidden Attack Surface
Στην ανάρτηση του blog αναφέρεται πώς χρησιμοποιώντας αυτή την τεχνική ήταν δυνατό να βρεθούν κρυφές παράμετροι και ακόμη και κεφαλίδες απλά ελέγχοντας ότι όποτε η παράμετρος ή η κεφαλίδα ήταν παρούσα στο αίτημα υπήρχε μια **χρονική διαφορά περίπου 5ms**. Στην πραγματικότητα, αυτή η τεχνική ανακάλυψης έχει προστεθεί στο **Param Miner** στο Burp Suite.
Αυτές οι χρονικές διαφορές μπορεί να οφείλονται σε μια **DNS αίτηση** που εκτελέστηκε, σε κάποιο **καταγραφή** που γράφτηκε λόγω μιας μη έγκυρης εισόδου ή επειδή εκτελούνται κάποιες **έλεγχοι** όταν μια παράμετρος είναι παρούσα στο αίτημα.
Κάτι που πρέπει να θυμάστε όταν εκτελείτε αυτού του είδους τις επιθέσεις είναι ότι λόγω της κρυφής φύσης της επιφάνειας, μπορεί να μην γνωρίζετε ποια είναι η πραγματική αιτία των χρονικών διαφορών.
### Reverse Proxy Misconfigurations
Στην ίδια έρευνα, μοιράστηκε ότι η τεχνική χρόνου ήταν εξαιρετική για την ανακάλυψη "scoped SSRFs" (οι οποίες είναι SSRFs που μπορούν να έχουν πρόσβαση μόνο σε επιτρεπόμενες IP/domains). Απλά **ελέγχοντας τη χρονική διαφορά όταν έχει οριστεί μια επιτρεπόμενη τοποθεσία** σε σύγκριση με όταν έχει οριστεί μια μη επιτρεπόμενη τοποθεσία βοηθά στην ανακάλυψη ανοιχτών διακομιστών μεσολάβησης ακόμη και αν η απάντηση είναι η ίδια.
Μόλις ανακαλυφθεί ένας scoped open proxy, ήταν δυνατό να βρεθούν έγκυροι στόχοι αναλύοντας γνωστές υποτοποθεσίες του στόχου και αυτό επέτρεψε να:
* **Παρακάμψτε τα τείχη προστασίας** αποκτώντας πρόσβαση σε περιορισμένες υποτοποθεσίες μέσω του **ανοιχτού διακομιστή μεσολάβησης** αντί μέσω του διαδικτύου
* Επιπλέον, η κατάχρηση ενός **ανοιχτού διακομιστή μεσολάβησης** καθιστά επίσης δυνατό να **ανακαλύψετε νέες υποτοποθεσίες που είναι προσβάσιμες μόνο εσωτερικά.**
* **Επιθέσεις μίμησης Front-End**: Οι διακομιστές front-end συνήθως προσθέτουν κεφαλίδες για το backend όπως `X-Forwarded-For` ή `X-Real-IP`. Οι ανοιχτοί διακομιστές μεσολάβησης που λαμβάνουν αυτές τις κεφαλίδες θα τις προσθέσουν στο ζητούμενο endpoint, επομένως, ένας επιτιθέμενος θα μπορούσε να έχει πρόσβαση σε ακόμη περισσότερες εσωτερικές τοποθεσίες προσθέτοντας αυτές τις κεφαλίδες με τιμές που έχουν εγκριθεί.
## 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:<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">\
Learn & practice 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>
* 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.
</details>
{% endhint %}