<summary><strong>Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο 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.
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) γιανα δημιουργήσετε και να**αυτοματοποιήσετε ροές εργασίας** με τα πιο προηγμένα εργαλεία της κοινότητας.\
> **Ποια είναι η διαφορά μεταξύ απάτης της κρυφής μνήμης του ιστού (web cache poisoning) και απάτης της κρυφής μνήμης του ιστού (web cache deception);**
> * Στην **απάτη της κρυφής μνήμης του ιστού (web cache poisoning)**, ο επιτιθέμενος προκαλεί την εφαρμογή να αποθηκεύσει κάποιο κακόβουλο περιεχόμενο στην κρυφή μνήμη, και αυτό το περιεχόμενο παρέχεται από την κρυφή μνήμη σε άλλους χρήστες της εφαρμογής.
> * Στην **απάτη της κρυφής μνήμης του ιστού (web cache deception)**, ο επιτιθέμενος προκαλεί την εφαρμογή να αποθηκεύσει κάποιο ευαίσθητο περιεχόμενο που ανήκει σε άλλο χρήστη στην κρυφή μνήμη, και στη συνέχεια ο επιτιθέμενος ανακτά αυτό το περιεχόμενο από την κρυφή μνήμη.
Η απάτη της κρυφής μνήμης (cache poisoning) στοχεύει στο να παραπλανήσει την κρυφή μνήμη του πελάτη γιανα αναγκάσει τους πελάτες να φορτώσουν πόρους που είναι απρόσμενοι, μερικοί ή υπό τον έλεγχο ενός επιτιθέμενου. Η έκταση της επίδρασης εξαρτάται από τη δημοτικότητα της επηρεαζόμενης σελίδας, καθώς η μολυσμένη απάντηση παρέχεται αποκλειστικά σε χρήστες που επισκέπτονται τη σελίδα κατά την περίοδο της μόλυνσης της κρυφής μνήμης.
1.**Αναγνώριση μη κλειδωμένων εισόδων**: Αυτά είναι παράμετροι που, αν και δεν απαιτούνται γιανα αποθηκευτεί μια αίτηση στην κρυφή μνήμη, μπορούν να αλλάξουν την απάντηση που επιστρέφεται από τον διακομιστή. Η αναγνώριση αυτών των εισόδων είναι κρίσιμη καθώς μπορούν να εκμεταλλευτούν γιανα παραπλανήσουν την κρυφή μνήμη.
2.**Εκμετάλλευση των μη κλειδωμένων εισόδων**: Μετά την αναγνώριση των μη κλειδωμένων εισόδων, το επόμενο βήμα είναι να καταλάβετε πώς να καταχραστείτε αυτές τις παραμέτρους γιανα τροποποιήσετε την απάντηση του διακομιστή με τρόπο που να ωφελεί τον επιτιθέμενο.
3.**Βεβαίωση ότι η μολυσμένη απάντηση αποθηκεύεται στην κρυφή μνήμη**: Το τελευταίο βήμα είναι να διασφαλίσετε ότι η τροποποιημένη απάντηση αποθηκεύεται στην κρυφή μνήμη. Με αυτόν τον τρόπο, οποιοσδήποτε χρήστης έχει πρόσβαση στην επηρεαζόμενη σελίδα κατά την περίοδο της μολυνσης της κρυφής μνήμης θα λάβει τη μολυσμένη απάντηση.
Συνήθως, όταν μια απάντηση έχει **αποθηκευτεί στην κρυφή μνήμη**, θα υπάρχει μια **κεφαλίδα που το υποδεικνύει**, μπορείτε να ελέγξετε ποιες κεφαλίδες πρέπει να προσέ
Αφού εντοπίσετε την παράμετρο/κεφαλίδα, ελέγξτε πώς γίνεται η **απολύμανση** της και **πού** επηρεάζει την απόκριση από την κεφαλίδα. Μπορείτε να την καταχραστείτε με οποιονδήποτε τρόπο (να εκτελέσετε ένα XSS ή να φορτώσετε έναν κώδικα JS που ελέγχετε εσείς; να πραγματοποιήσετε ένα DoS;...)
Αφού **εντοπίσετε** τη **σελίδα** που μπορεί να καταχραστεί, ποια **παράμετρος**/**κεφαλίδα** να χρησιμοποιήσετε και **πώς**να την καταχραστείτε, πρέπει να λάβετε την κρυφή απόκριση της σελίδας. Ανάλογα με το πόρο που προσπαθείτε να λάβετε από την κρυφή μνήμη, αυτό μπορεί να πάρει κάποιο χρόνο, μπορεί να χρειαστεί να προσπαθήσετε για αρκετά δευτερόλεπτα.\
Η κεφαλίδα **`X-Cache`** στην απόκριση μπορεί να είναι πολύ χρήσιμη, καθώς μπορεί να έχει την τιμή **`miss`** όταν ο αίτημα δεν έχει αποθηκευτεί στη μνήμη και την τιμή **`hit`** όταν έχει αποθηκευτεί.\
Επίσης, ενδιαφέρουσα είναι η κεφαλίδα **`Cache-Control`**, γιανα γνωρίζετε αν ένας πόρος αποθηκεύεται στη μνήμη και πότε θα γίνει η επόμενη φορά που ο πόρος θα αποθηκευτεί ξανά: `Cache-Control: public, max-age=1800`\
Μια άλλη ενδιαφέρουσα κεφαλίδα είναι η **`Vary`**. Αυτή η κεφαλίδα χρησιμοποιείται συχνά γιανα**υποδείξει επιπλέον κεφαλίδες** που θεωρούνται **μέρος του κλειδιού της μνήμης** ακόμα κι αν συνήθως δεν έχουν κλειδί. Επομένως, ανο χρήστης γνωρίζει το `User-Agent` του θύματος που στοχεύει, μπορεί να μολύνει τη μνήμη για τους χρήστες που χρησιμοποιούν αυτό το συγκεκριμένο `User-Agent`.\
Μια ακόμη κεφαλίδα που σχετίζεται με τη μνήμη είναι η **`Age`**. Ορίζει τον χρόνο σε δευτερόλεπτα που το αντικείμενο έχει παραμείνει στην προσωρινή μνήμη του διακομιστή.
Όταν αποθηκεύετε ένα αίτημα στη μνήμη, **προσέξτε τις κεφαλίδες που χρησιμοποιείτε**, επειδή κάποιες από αυτές μπορεί να χρησιμοποιηθούν **απροσδόκητα** ως **κλειδιά** και ο**θύμα θα πρέπει να χρησιμοποιήσει ακριβώς την ίδια κεφαλίδα**. Δοκιμάστε πάντα μια Δηλητηρίαση Κρυφής Μνήμης με **διάφορους περιηγητές**γιανα ελέγξετε αν λειτουργεί.
Τα cookies μπορεί επίσης να αντανακλώνται στην απόκριση μιας σελίδας. Εάν μπορείτε να το καταχραστείτε γιανα προκαλέσετε ένα XSS για παράδειγμα, μπορείτε να εκμεταλλευτείτε το XSS σε πολλούς πελάτες που φορτώνουν την κακόβουλη απόκριση της προσωρινής μνήμης.
### Χρήση πολλαπλών κεφαλίδων για την εκμετάλλευση ευπάθειας δηλητηρίασης της cache του ιστού <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` ως το όνομα του τομέα για την ανακατεύθυνση. Μπορείτε να ελέγξετε προς ποια σελίδα γίνεται η ανακατεύθυνση.
Εάν ανακαλύψετε ότι το **`X-Host`** header χρησιμοποιείται ως **όνομα τομέα για τη φόρτωση ενός πόρου JS** αλλά το **`Vary`** header στην απόκριση υποδεικνύει το **`User-Agent`**, τότε πρέπει να βρείτε έναν τρόπο να εξαγάγετε το User-Agent του θύματος και να δηλητηριάσετε την προσωρινή μνήμη χρησιμοποιώντας αυτόν τον user agent:
Μάθετε εδώ πώς να πραγματοποιήσετε [επιθέσεις Ατελείωτης Προσπέλασης Προσωρινής Αποθήκευσης με την κατάχρηση της Ατελείωτης Προσπέλασης Αιτημάτων HTTP](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning).
Το [Εργαλείο Ευπαθειών Προσωρινής Αποθήκευσης Ιστού](https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner) μπορεί να χρησιμοποιηθεί για τον αυτοματοποιημένο έλεγχο της ατελείωτης προσπέλασης προσωρινής αποθήκευσης ιστού. Υποστηρίζει πολλές διαφορετικές τεχνικές και είναι υψηλά προσαρμόσιμο.
Χρησιμοποιήστε το [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) γιανα δημιουργήσετε και να αυτοματοποιήσετε εργασιακές διαδικασίες με τα πιο προηγμένα εργαλεία της κοινότητας.\
Ο ATS προώθησε το αποσπασμένο τμήμα μέσα στο URL χωρίς να το αφαιρέσει και δημιούργησε το κλειδί προσωρινής αποθήκευσης χρησιμοποιώντας μόνο τον κεντρικό κόμβο, τη διαδρομή και το αίτημα (αγνοώντας το αποσπασμένο τμήμα). Έτσι, το αίτημα `/#/../?r=javascript:alert(1)` αποστάλθηκε στον πίσω κόμβο ως `/#/../?r=javascript:alert(1)` και το κλειδί προσωρινής αποθήκευσης δεν περιείχε το φορτίο μέσα του, μόνο τον κεντρικό κόμβο, τη διαδρομή και το αίτημα.
Η αποστολή μιας κακής τιμής στην κεφαλίδα περιεχομένου προκάλεσε μια προσωρινή αποθηκευμένη απόκριση 405. Το κλειδί προσωρινής αποθήκευσης περιείχε το cookie, οπότε ήταν δυνατή μόνο η επίθεση σε μη εξουσιοδοτημένους χρήστες.
Το GitLab χρησιμοποιεί κάδους GCP για την αποθήκευση στατικού περιεχομένου. Οι**κάδοι GCP** υποστηρίζουν την **κεφαλίδα `x-http-method-override`**. Έτσι, ήταν δυνατόν να αποσταλεί η κεφαλίδα `x-http-method-override: HEAD` και να δηλητηριάσει η προσωρινή αποθήκευση επιστρέφοντας ένα κενό σώμα απόκρισης. Μπορούσε επίσης να υποστηρίξει τη μέθοδο `PURGE`.
Στις εφαρμογές Ruby on Rails, συχνά χρησιμοποιείται το Rack middleware. Ο σκοπός του κώδικα Rack είναι να πάρει την τιμή της κεφαλίδας **`x-forwarded-scheme`** και να την ορίσει ως το σχήμα του αιτήματος. Όταν αποστέλλεται η κεφαλίδα `x-forwarded-scheme: http`, συμβαίνει μια ανακατεύθυνση 301 στην ίδια τοποθεσία
<summary><strong>Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να**κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΠΛΑΝΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](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.