hacktricks/pentesting-web/cache-deception.md

186 lines
30 KiB
Markdown
Raw Normal View History

# Ατροποποίηση Προσωρινής Μνήμης και Απάτη Προσωρινής Μνήμης
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Άλλοι τρόποι υποστήριξης του HackTricks:
2023-12-31 01:24:39 +00:00
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
2024-02-10 22:40:18 +00:00
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα τηλεγράφου**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια στο GitHub.
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
\
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) για να δημιουργήσετε εύκολα και να **αυτοματοποιήσετε ροές εργασίας** με τα πιο προηγμένα εργαλεία κοινότητας στον κόσμο.\
Αποκτήστε Πρόσβαση Σήμερα:
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
2024-02-10 22:40:18 +00:00
## Η διαφορά
> **Ποια είναι η διαφορά μεταξύ ατροποποίησης προσωρινής μνήμης ιστού και απάτης προσωρινής μνήμης ιστού;**
>
> * Στην **ατροποποίηση προσωρινής μνήμης ιστού**, ο επιτιθέμενος προκαλεί την εφαρμογή να αποθηκεύσει κάποιο κακόβουλο περιεχόμενο στη μνήμη cache, και αυτό το περιεχόμενο εξυπηρετείται από τη μνήμη cache σε άλλους χρήστες της εφαρμογής.
> * Στην **απάτη προσωρινής μνήμης ιστού**, ο επιτιθέμενος προκαλεί την εφαρμογή να αποθηκεύσει κάποιο ευαίσθητο περιεχόμενο που ανήκει σε άλλο χρήστη στη μνήμη cache, και στη συνέχεια ο επιτιθέμενος ανακτά αυτό το περιεχόμενο από τη μνήμη cache.
## Ατροποποίηση Προσωρινής Μνήμης
Η ατροποποίηση προσωρινής μνήμης στοχεύει στην παραπλάνηση της μνήμης πλευράς πελάτη για να αναγκάσει τους πελάτες να φορτώσουν πόρους που είναι απροσδόκητοι, μερικοί ή υπό τον έλεγχο ενός επιτιθέμενου. Η έκταση της επίδρασης εξαρτάται από τη δημοφιλία της επηρεασμένης σελίδας, καθώς η μολυσμένη απάντηση εξυπηρετείται αποκλειστικά σε χρήστες που επισκέπτονται τη σελίδα κατά την περίοδο μόλυνσης της μνήμης cache.
Η εκτέλεση μιας επίθεσης ατροποποίησης προσωρινής μνήμης περιλαμβάνει αρκετά βήματα:
2024-02-06 03:10:38 +00:00
1. **Αναγνώριση Μη-Κλειδωμένων Εισόδων**: Αυτά είναι παράμετροι που, αν και δεν απαιτούνται για να αποθηκευτεί μια αίτηση, μπορεί να τροποποιήσουν την απάντηση που επιστρέφεται από τον διακομιστή. Η αναγνώριση αυτών των εισόδων είναι κρίσιμη καθώς μπορούν να εκμεταλλευτούνται για την αλλαγή της μνήμης cache.
2. **Εκμετάλλευση των Μη-Κλειδωμένων Εισόδων**: Μετά την αναγνώριση των μη-κλειδωμένων εισόδων, το επόμενο βήμα είναι να κατανοήσετε πώς να εκμεταλλευτείτε αυτές τις παραμέτρους για να τροποποιήσετε την απάντηση του διακομιστή με τρόπο που εξυπηρετεί τον επιτιθέμενο.
3. **Βεβαίωση ότι η Ατροποποιημένη Απάντηση Αποθηκεύεται**: Το τελευταίο βήμα είναι να βεβαιωθείτε ότι η τροποποιημένη απάντηση αποθηκεώνται στη μνήμη cache. Με αυτόν τον τρόπο, οποιοσδήποτε χρήστης έχει πρόσβαση στην επηρεασμένη σελίδα κατά την περίοδο της μόλυνσης της μνήμης cache θα λάβει τη μολυσμένη απάντηση.
2024-02-06 03:10:38 +00:00
### Ανακάλυψη: Έλεγχος κεφαλίδων HTTP
Συνήθως, όταν μια απάντηση ήταν **αποθηκευμένη στη μνήμη cache** θα υπάρχει ένα **κεφάλιο που το υποδηλώνει**, μπορείτε να ελέγξετε ποια κεφάλια πρέπει να προσέξετε σε αυτήν την ανάρτηση: [**Κεφαλίδες Αποθήκευσης Cache HTTP**](../network-services-pentesting/pentesting-web/special-http-headers.md#cache-headers).
### Ανακάλυψη: Αποθήκευση κώδικα 400
Αν υποψιάζεστε ότι η απάντηση αποθηκεύεται σε μνήμη cache, θα μπορούσατε να **στείλετε αιτήσεις με ένα κακό κεφάλι**, το οποίο θα απαντηθεί με ένα **κωδικό κατάστασης 400**. Στη συνέχεια, δοκιμάστε να έχετε πρόσβαση στην αίτηση κανονικά και αν η **απάντηση είναι κωδικός κατάστασης 400**, ξέρετε ότι είναι ευάλωτη (και μπορείτε ακόμα να πραγματοποιήσετε μια επίθεση DoS).\
Ένας κακά διαμορφωμένος κεφαλίδας θα μπορούσε απλά να είναι `\:` ως κεφαλίδα.\
_Σημειώστε ότι μερικές φορές αυτοί οι τύποι κωδικών κατάστασης δεν αποθηκεύονται στη μνήμη cache, οπότε αυτό το τεστ θα είναι άχρηστο._
### Ανακάλυψη: Αναγνώριση και αξιολόγηση μη-κλειδωμένων εισόδων
Μπορείτε να χρησιμοποιήσετε το [**Param Miner**](https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943) για να **δοκιμάσετε με βία παραμέτρους και κεφαλίδες** που μπορεί να **αλλάζουν την απάντηση της σελίδας**. Για παράδειγμα, μια σελίδα μπορεί να χρησιμοποιεί το κεφάλι `X-Forwarded-For` για να υποδείξει στον πελάτη να φορτώσει το σενάριο από εκεί:
```markup
<script type="text/javascript" src="//<X-Forwarded-For_value>/resources/js/tracking.js"></script>
```
### Εξαγωγή επιβλαβούς απάντησης από τον διακομιστή πίσω από τον διακομιστή
Με την παράμετρο/κεφαλίδα που εντοπίσατε, ελέγξτε πώς γίνεται η **απολύμανση** και **πού** επηρεάζει την απόκριση από την κεφαλίδα. Μπορείτε να το καταχραστείτε με οποιονδήποτε τρόπο (να εκτελέσετε ένα XSS ή να φορτώσετε έναν κώδικα JS που ελέγχετε εσείς; να εκτελέσετε ένα DoS;...)
### Λήψη της κρυφής απόκρισης
Αφού έχετε **εντοπίσει** τη **σελίδα** που μπορεί να καταχραστεί, ποια **παράμετρος**/**κεφαλίδα** να χρησιμοποιήσετε και **πώς** να το **καταχραστείτε**, πρέπει να λάβετε τη σελίδα στην κρυφή μνήμη. Ανάλογα με τον πόρο που προσπαθείτε να λάβετε στη μνήμη, αυτό μπορεί να πάρει κάποιο χρόνο, μπορεί να χρειαστεί να προσπαθήσετε για μερικά δευτερόλεπτα.\
Η κεφαλίδα **`X-Cache`** στην απόκριση μπορεί να είναι πολύ χρήσιμη καθώς μπορεί να έχει την τιμή **`miss`** όταν το αίτημα δεν ήταν στη μνήμη cache και την τιμή **`hit`** όταν είναι στη μνήμη cache.\
Η κεφαλίδα **`Cache-Control`** είναι επίσης ενδιαφέρουσα για να γνωρίζετε αν ένας πόρος αποθηκεύεται στη μνήμη cache και πότε θα αποθηκευτεί ξανά ο πόρος: `Cache-Control: public, max-age=1800`\
Μια άλλη ενδιαφέρουσα κεφαλίδα είναι η **`Vary`**. Αυτή η κεφαλίδα χρησιμοποιείται συχνά για να **υποδεικνύει επιπλέον κεφαλίδες** που θεωρούνται **μέρος του κλειδιού της μνήμης cache** ακόμα κι αν συνήθως δεν είναι κλειδωμένες. Επομένως, αν ο χρήστης γνωρίζει το `User-Agent` του θύματος που στοχεύει, μπορεί να δηλητηριάσει τη μνήμη cache για τους χρήστες που χρησιμοποιούν αυτό το συγκεκριμένο `User-Agent`.\
Μια ακόμη κεφαλίδα που σχετίζεται με τη μνήμη cache είναι η **`Age`**. Ορίζει το χρόνο σε δευτερόλεπτα που το αντικείμενο έχει παραμείνει στη μνήμη cache του διακομιστή proxy.
Όταν αποθηκεύετε ένα αίτημα, να είστε **προσεκτικοί με τις κεφαλίδες που χρησιμοποιείτε** επειδή κάποιες από αυτές θα μπορούσαν να χρησιμοποιηθούν απροσδόκητα ως **κλειδιά** και το θύμα θα πρέπει να χρησιμοποιήσει αυτήν την ίδια κεφαλίδα. Δοκιμάστε πάντα ένα Δηλητηριασμό Μνήμης Cache με **διαφορετικούς περιηγητές** για να ελέγξετε αν λειτουργεί.
2024-02-10 22:40:18 +00:00
## Παραδείγματα Εκμετάλλευσης
2024-02-10 22:40:18 +00:00
### Ευκολότερο παράδειγμα
Μια κεφαλίδα όπως η `X-Forwarded-For` αντικατοπτρίζεται στην απόκριση χωρίς απολύτως καμία απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτως απολύτω
```markup
GET /en?region=uk HTTP/1.1
Host: innocent-website.com
X-Forwarded-Host: a."><script>alert(1)</script>"
```
### Χρήση δηλητηρίασης της μνήμης cache του web για την εκμετάλλευση ευπαθειών στη χειριστική των cookies
Τα cookies θα μπορούσαν επίσης να αντανακλώνται στην απόκριση μιας σελίδας. Αν μπορείτε να το εκμεταλλευτείτε για να προκαλέσετε ένα XSS για παράδειγμα, θα μπορούσατε να εκμεταλλευτείτε το XSS σε αρκετούς πελάτες που φορτώνουν την κακόβουλη απόκριση cache.
```markup
GET / HTTP/1.1
Host: vulnerable.com
Cookie: session=VftzO7ZtiBj5zNLRAuFpXpSQLjS4lBmU; fehost=asd"%2balert(1)%2b"
```
### Πληροφορίες για τη δημιουργία προβλημάτων με την προσπέλαση μονοπατιών για την κλοπή κλειδιού API <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
[**Αυτή η ανάλυση εξηγεί**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html) πώς ήταν δυνατόν να κλαπεί ένα κλειδί API της OpenAI με ένα URL όπως `https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123` επειδή οτιδήποτε ταιριάζει με `/share/*` θα αποθηκεύεται στην cache χωρίς η Cloudflare να κανονικοποιεί το URL, το οποίο έγινε όταν το αίτημα έφτασε στον web server.
### Χρήση πολλαπλών κεφαλίδων για την εκμετάλλευση ευπάθειών στην προσπέλαση της cache του web <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
Μερικές φορές θα χρειαστεί να **εκμεταλλευτείτε πολλαπλές μη-κλειδωμένες εισόδους** για να μπορέσετε να καταχραστείτε μια cache. Για παράδειγμα, μπορείτε να βρείτε ένα **Ανοικτό ανακατευθύνση** αν ορίσετε το `X-Forwarded-Host` σε ένα τομέα που ελέγχετε εσείς και το `X-Forwarded-Scheme` σε `http`. **Αν** ο **διακομιστής** ανακατεύει όλα τα **HTTP** αιτήματα **σε HTTPS** και χρησιμοποιεί την κεφαλίδα `X-Forwarded-Scheme` ως το όνομα τομέα για την ανακατεύθυνση, μπορείτε να ελέγξετε προς πού θα οδηγηθεί η σελίδα με την ανακατεύθυνση.
```markup
GET /resources/js/tracking.js HTTP/1.1
Host: acc11fe01f16f89c80556c2b0056002e.web-security-academy.net
X-Forwarded-Host: ac8e1f8f1fb1f8cb80586c1d01d500d3.web-security-academy.net/
X-Forwarded-Scheme: http
```
### Εκμετάλλευση με περιορισμένο `Vary` header
Εάν ανακαλύψετε ότι το **`X-Host`** header χρησιμοποιείται ως **όνομα domain για τη φόρτωση ενός πόρου JS** αλλά το **`Vary`** header στην απόκριση υποδεικνύει **`User-Agent`**, τότε πρέπει να βρείτε έναν τρόπο να εξαγάγετε το User-Agent του θύματος και να δηλητηριάσετε τη μνήμη cache χρησιμοποιώντας αυτό το user agent:
```markup
GET / HTTP/1.1
Host: vulnerbale.net
User-Agent: THE SPECIAL USER-AGENT OF THE VICTIM
X-Host: attacker.com
```
### Εκμεταλλευόμενοι την Ατασθαλία της Κρυφής Μνήμης HTTP με την Κατάχρηση του Κλοπής HTTP Αιτημάτων
Μάθετε εδώ πώς να εκτελέσετε [επιθέσεις Κατάχρησης της Κρυφής Μνήμης με την Κατάχρηση του Κλοπής HTTP Αιτημάτων](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning).
### Αυτοματοποιημένος Έλεγχος για την Κατάχρηση της Κρυφής Μνήμης του Web
2022-06-06 22:28:05 +00:00
Το [Εργαλείο Ευπαθειών της Κρυφής Μνήμης του Web](https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner) μπορεί να χρησιμοποιηθεί για τον αυτόματο έλεγχο της κατάχρησης της κρυφής μνήμης του web. Υποστηρίζει πολλές διαφορετικές τεχνικές και είναι υψηλά προσαρμόσιμο.
2022-05-06 10:58:15 +00:00
2024-02-10 22:40:18 +00:00
Παράδειγμα χρήσης: `wcvs -u example.com`
2022-05-06 10:58:15 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
\
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) για να δημιουργήσετε εύκολα και να **αυτοματοποιήσετε ροές εργασίας** με τα πιο **προηγμένα εργαλεία** της κοινότητας.\
Αποκτήστε Πρόσβαση Σήμερα:
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-06-06 22:28:05 +00:00
## Ευάλωτα Παραδείγματα
2022-07-28 09:46:19 +00:00
### Apache Traffic Server ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577))
Το ATS προώθησε το κομμάτι μέσα στο URL χωρίς να το αφαιρέσει και δημιούργησε το κλειδί της κρυφής μνήμης χρησιμοποιώντας μόνο τον κεντρικό υπολογιστή, τη διαδρομή και το ερώτημα (αγνοώντας το κομμάτι). Έτσι, το αίτημα `/#/../?r=javascript:alert(1)` στάλθηκε στον πίσω χώρο ως `/#/../?r=javascript:alert(1)` και το κλειδί της κρυφής μνήμης δεν περιείχε το φορτίο μέσα σε αυτό, μόνο τον κεντρικό υπολογιστή, τη διαδρομή και το ερώτημα.
2022-07-28 09:46:19 +00:00
### GitHub CP-DoS
Η αποστολή μιας κακής τιμής στην κεφαλίδα content-type προκάλεσε μια αποθηκευμένη απάντηση 405. Το κλειδί της κρυφής μνήμης περιείχε το cookie, οπότε ήταν δυνατή μόνο η επίθεση σε μη εξουσιοδοτημένους χρήστες.
2022-07-28 09:46:19 +00:00
### GitLab + GCP CP-DoS
Το GitLab χρησιμοποιεί κάδους GCP για την αποθήκευση στατικού περιεχομένου. Οι **Κάδοι GCP** υποστηρίζουν την **κεφαλίδα `x-http-method-override`**. Έτσι ήταν δυνατό να σταλεί η κεφαλίδα `x-http-method-override: HEAD` και να δηλητηριάσει την κρυφή μνήμη ώστε να επιστρέψει ένα κενό σώμα απάντησης. Μπορούσε επίσης να υποστηρίξει τη μέθοδο `PURGE`.
2022-07-28 09:46:19 +00:00
2024-02-06 03:10:38 +00:00
### Rack Middleware (Ruby on Rails)
2022-07-28 09:46:19 +00:00
Στις εφαρμογές Ruby on Rails, συχνά χρησιμοποιείται το Rack middleware. Ο σκοπός του κώδικα Rack είναι να πάρει την τιμή της κεφαλίδας **`x-forwarded-scheme`** και να την ορίσει ως το σχήμα του αιτήματος. Όταν στέλνεται η κεφαλίδα `x-forwarded-scheme: http`, συμβαίνει μια ανακατεύθυνση 301 στην ίδια τοποθεσία, προκαλώντας πιθανώς έναν Αποκλεισμό των Υπηρεσιών (DoS) σε αυτό το πόρισμα. Επιπλέον, η εφαρμογή ενδέχεται να αναγνωρίζει την κεφαλίδα `X-forwarded-host` και να ανακατευθύνει τους χρήστες στον καθορισμένο κεντρικό υπολογιστή. Αυτή η συμπεριφορά μπορεί να οδηγήσει στη φόρτωση αρχείων JavaScript από τον διακομιστή ενός επιτιθέμενου, δημιουργώντας έναν κίνδυνο ασφάλειας.
2022-04-28 16:01:33 +00:00
### 403 και Κάδοι Αποθήκευσης
2023-12-31 01:24:39 +00:00
Η Cloudflare προηγουμένως αποθήκευε 403 απαντήσεις. Η προσπάθεια πρόσβασης σε S3 ή Azure Storage Blobs με εσφαλμένες κεφαλίδες Εξουσιοδότησης θα οδηγούσε σε μια απάντηση 403 που θα αποθηκευόταν. Αν και η Cloudflare έχει σταματήσει την αποθήκευση των 403 απαντήσεων, αυτή η συμπεριφορά ενδέχεται να εξακολουθεί να υπάρχει σε άλλες υπηρεσίες διακομιστή.
2022-04-28 16:01:33 +00:00
### Ενσωμάτωση Κλειδωμένων Παραμέτρων
Οι κρυφές μνήμες συχνά περιλαμβάνουν συγκεκριμένες παραμέτρους GET στο κλειδί της κρυφής μνήμης. Για παράδειγμα, το Varnish της Fastly αποθήκευε την παράμετρο `size` στα αιτήματα. Ωστόσο, αν στάλθηκε επίσης μια εκδοχή κωδικοποιημένη με URL της παραμέτρου (π.χ., `siz%65`) με μια εσφαλμένη τιμή, το κλειδί της κρυφής μνήμης θα κατασκευαζόταν χρησιμοποιώντας τη σωστή παράμετρο `size`. Ωστόσο, ο πίσω χώρος θα επεξεργαζόταν την τιμή στην παράμετρο κωδικοποιημένη με URL. Η κωδικοποίηση με URL της δεύτερης παραμέτρου `size` οδήγησε στην παράλειψή της από την κρυφή μνήμη αλλά στη χρήση της από τον πίσω χώρο. Η ανάθεση μιας τιμής 0 σε αυτήν την παράμετρο οδήγησε σε μια cacheable 400 Bad Request σφάλμα.
### Κανόνες Χρήστη Πράκτορα
Ορισμένοι προγραμματιστές αποκλείουν αιτήσεις με πράκτορες χρήστη που ταιριάζουν με αυτούς των εργαλείων υψηλής κίνησης όπως το FFUF ή το Nuclei για τη διαχείριση του φορτίου του διακομιστή. Παράδοξα, αυτή η προσέγγιση μπορεί να εισάγει ευπαθείς σημεία όπως κατάχρηση της κρυφής μνήμης και DoS.
### Παράνομα Πεδία Κεφαλίδων
Το [RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230) καθορίζει τους αποδεκτούς χαρακτήρες στα ονόματα των κεφαλίδων. Οι κεφαλίδες που περιέχουν χαρακτήρες εκτός του καθορισμένου εύρους **tchar** θα έπρεπε ιδανικά να προκαλούν μια απάντηση 400 Bad Request. Στην πράξη, οι διακομιστές δεν πάντα τηρούν αυτό το πρότυπο. Ένα ενδεικτικό παράδειγμα είναι η Akamai, η οποία προωθεί κεφαλίδες με μη έγκυρους χαρακτήρες και αποθηκεύει οποιοδήποτε σφάλμα 400, όσο το `cache-control` header δεν είναι παρόν. Εντοπίστηκε ένα εκμεταλλεύσιμο πρότυπο όπου η αποστολή μιας κεφαλίδας με έναν παράνομο χαρακτήρα, όπως `\`, θα οδηγούσε σε μια cacheable 400 Bad Request απάντηση.
### Εύρεση νέων κεφαλίδων
[https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6](https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6)
## Κατάχρηση της Κρυφής Μνήμης
Ο στόχος της Κατάχρησης της Κρυφής Μνήμης είναι να κάνει τους πελάτες **να φορτώνουν πόρους που θα αποθηκευτούν από την κρυφή μνήμη με τις ευαίσθητες πληρο
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)</strong></a><strong>!</strong></summary>
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**Την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>