<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.
Βρείτε ευπάθειες που έχουν μεγαλύτερη σημασία, ώστε να μπορείτε να τις διορθώσετε πιο γρήγορα. Ο Intruder παρακολουθεί την επιθετική επιφάνεια σας, εκτελεί προληπτικές απειλητικές αναζητήσεις, εντοπίζει προβλήματα σε ολόκληρο το τεχνολογικό σας στοίβα, από APIs έως web εφαρμογές και συστήματα στο cloud. [**Δοκιμάστε το δωρεάν**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) σήμερα.
Τα cookies έχουν αρκετά χαρακτηριστικά που ελέγχουν τη συμπεριφορά τους στον περιηγητή του χρήστη. Παρακάτω παρουσιάζονται αυτά τα χαρακτηριστικά με πιο παθητική φωνή:
Η ημερομηνία λήξης ενός cookie καθορίζεται από το χαρακτηριστικό `Expires`. Αντίστοιχα, το χαρακτηριστικό `Max-age` καθορίζει το χρόνο σε δευτερόλεπτα μέχρι το cookie να διαγραφεί. **Προτιμήστε το `Max-age`, καθώς αντικατοπτρίζει πιο σύγχρονες πρακτικές.**
Τα hosts που λαμβάνουν ένα cookie καθορίζονται από το χαρακτηριστικό `Domain`. Από προεπιλογή, αυτό ορίζεται στον host που εξέδωσε το cookie, χωρίς να περιλαμβάνει τα subdomains του. Ωστόσο, όταν το χαρακτηριστικό `Domain` ορίζεται ρητά, περιλαμβάνει επίσης και τα subdomains. Αυτό καθιστά τον καθορισμό του χαρακτηριστικού `Domain` μια λιγότερο περιοριστική επιλογή, χρήσιμη για περιπτώσεις όπου είναι απαραίτητος ο κοινός χρήσης των cookies σε subdomains. Για παράδειγμα, ορίζοντας `Domain=mozilla.org`, τα cookies είναι προσβάσιμα στα subdomains του όπως το `developer.mozilla.org`.
Ένα συγκεκριμένο μονοπάτι URL που πρέπει να υπάρχει στο αιτούμενο URL γιανα αποσταλεί η κεφαλίδα `Cookie` υποδεικνύεται από το χαρακτηριστικό `Path`. Αυτό το χαρακτηριστικό θεωρεί τον χαρακτήρα `/` ως διαχωριστικό καταλόγου, επιτρέποντας αντιστοιχίες και σε υποκαταλόγους.
Είναι σημαντικό να σημειωθεί ότι τα cookies που έχουν πρόθεμα `__Host-` δεν επιτρέπεται να αποστέλλονται σε υπερτομείς ή υποτομείς. Αυτός ο περιορισμός βοηθά στην απομόνωση των cookies της εφαρμογής. Έτσι, η χρήση του προθέματος `__Host-`για όλα τα cookies της εφαρμογής μπορεί να θεωρηθεί ως μια καλή πρακτική για την ενίσχυση της ασφάλειας και της απομόνωσης.
Τα ευαίσθητα δεδομένα που ενσωματώνονται σε cookies πρέπει πάντα να ελέγχονται. Τα cookies που έχουν κωδικοποιηθεί σε Base64 ή παρόμοιες μορφές μπορούν συχνά να αποκωδικοποιηθούν. Αυτή η ευπάθεια επιτρέπει στους επιτιθέμενους να αλλάξουν το περιεχόμενο του cookie και να προσποιηθούν άλλους χρήστες κωδικοποιώντας τα τροποποιημένα δεδομένα πίσω στο cookie.
Αυτή η επίθεση περιλαμβάνει την κλοπή του cookie ενός χρήστη γιανα αποκτήσει μη εξουσιοδοτημένη πρόσβαση στον λογαριασμό του σε μια εφαρμογή. Χρησιμοποιώντας το κλεμμένο cookie, ένας επιτιθέμενος μπορεί να προσποιηθεί τον νόμιμο χρήστη.
Σε αυτό το σενάριο, ένας επιτιθέμενος εξαπατά ένα θύμα να χρησιμοποιήσει ένα συγκεκριμένο cookie γιανα συνδεθεί. Εάν η εφαρμογή δεν αναθέτει ένα νέο cookie κατά τη σύνδεση, ο επιτιθέμενος, κατέχοντας το αρχικό cookie, μπορεί να προσποιηθεί το θύμα. Αυτή η τεχνική βασίζεται στο γεγονός ότι το θύμα συνδέεται με ένα cookie που παρέχεται από τον επιτιθέμενο.
Εδώ, ο επιτιθέμενος πείθει το θύμα να χρησιμοποιήσει το cookie συνεδρίας του επιτιθέμενου. Το θύμα, πιστεύοντας ότι είναι συνδεδεμένο στον δικό του λογαριασμό, θα εκτελέσει ακούσια ενέργειες στο πλαίσιο του λογαριασμού του επιτιθέμενου.
Τα JSON Web Tokens (JWT) που χρησιμοποιούνται σε cookies μπορεί επίσης να παρουσιάζουν ευπάθειες. Για λεπτομερείς πληροφορίες σχετικά με πιθανά σφάλματα και τον τρόπο εκμετάλλευσής τους, συνίσταται η πρόσβαση στο συνδεδεμένο έγγραφο για την ανάλυση των JWT.
Αυτή η επίθεση αναγκάζει έναν συνδεδεμένο χρήστη να εκτελέσει ανεπιθύμητες ενέργειες σε μια ιστοσελίδα στην οποία είναι ήδη πιστοποιημένος. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν τα cookies που αποστέλλονται αυτόματα με κάθε αίτηση προς την ευάλωτη ιστοσελίδα.
Το αποτέλεσμα στην κεφαλίδα του αποστελλόμενου cookie είναι `a=v1; test value; b=v2;`. Ενδιαφέροντος, αυτό επιτρέπει την παραπλάνηση των cookies εάν ένα cookie με κενό όνομα οριστεί, ενδεχομένως ελέγχοντας άλλα cookies με το να ορίσετε το κενό cookie σε μια συγκεκριμένη τιμή:
Στο Chrome, εάν ένας κωδικός συνεχόμενης αντιστοίχισης Unicode είναι μέρος ενός συνόλου cookie, το `document.cookie` καταστρέφεται και επιστρέφει ένα κενό string στη συνέχεια:
(Ελέγξτε περαιτέρω λεπτομέρειες στην [αρχική έρευνα](https://blog.ankursundara.com/cookie-bugs/))
Πολλοί διακομιστές ιστού, συμπεριλαμβανομένων αυτών από την Java (Jetty, TomCat, Undertow) και την Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), δεν χειρίζονται σωστά τις συμβολοσειρές των μπισκότων λόγω της ξεπερασμένης υποστήριξης του RFC2965. Διαβάζουν μια τιμή μπισκότου που είναι εντός διπλών εισαγωγικών ως μια μοναδική τιμή, ακόμα κι αν περιλαμβάνει ερωτηματικά, τα οποία θα έπρεπε να χωρίζουν κλειδιά-τιμές:
(Ελέγξτε περαιτέρω λεπτομέρειες στην [αρχική έρευνα](https://blog.ankursundara.com/cookie-bugs/))
Η εσφαλμένη ανάλυση των μπισκότων από τους διακομιστές, ιδιαίτερα το Undertow, το Zope και αυτούς που χρησιμοποιούν τα `http.cookie.SimpleCookie` και `http.cookie.BaseCookie` της Python, δημιουργεί ευκαιρίες για επιθέσεις εισαγωγής μπισκότων. Αυτοί οι διακομιστές αποτυγχάνουν να διαχωρίσουν σωστά την έναρξη νέων μπισκότων, επιτρέποντας στους επιτιθέμενους να παραποιήσουν μπισκότα:
Αυτή η ευπάθεια είναι ιδιαίτερα επικίνδυνη σε web εφαρμογές που βασίζονται στην προστασία CSRF με βάση τα μπισκότα, καθώς επιτρέπει στους επιτιθέμενους να εισάγουν παραποιημένα μπισκότα CSRF-token, πιθανώς παρακάμπτοντας τα μέτρα ασφαλείας. Το πρόβλημα επιδεινώνεται από την αντιμετώπιση της Python για διπλότυπα ονόματα μπισκότων, όπου η τελευταία εμφάνιση αντικαθιστά τις προηγούμενες. Επίσης, προκαλεί ανησυχίες για τα μπισκότα `__Secure-` και `__Host-` σε ανασφαλείς περιβάλλοντα και μπορεί να οδηγήσει σε παράκαμψη της εξουσιοδότησης όταν τα μπισκότα περνιούνται σε διακομιστές που είναι ευάλωτοι στην παραποίηση.
*Το**μπισκότο** είναι το **ίδιο** κάθε φορά που **συνδέεστε**.
* Αποσυνδεθείτε και προσπαθήστε να χρησιμοποιήσετε το ίδιο μπισκότο.
* Προσπαθήστε να συνδεθείτε με 2 συσκευές (ή προγράμματα περιήγησης) στον ίδιο λογαριασμό χρησιμοποιώντας το ίδιο μπισκότο.
* Ελέγξτε αν το μπισκότο περιέχει οποιαδήποτε πληροφορία και προσπαθήστε να το τροποποιήσετε.
* Προσπαθήστε να δημιουργήσετε αρκετούς λογαριασμούς με σχεδόν το ίδιο όνομα χρήστη και ελέγξτε αν μπορείτε να δείτε ομοιότητες.
* Ελέγξτε την επιλογή "**θυμήσου με**" αν υπάρχει γιανα δείτε πώς λειτουργεί. Αν υπάρχει και μπορεί να είναι ευάλωτη, χρησιμοποιήστε πάντα το μπισκότο του **θυμήσου με** χωρίς άλλο μπισκότο.
* Ελέγξτε αν το προηγούμενο μπισκότο λειτουργεί ακόμα αφού αλλάξετε τον κωδικό πρόσβασης.
Αν το μπισκότο παραμένει το ίδιο (ή σχεδόν) όταν συνδέεστε, αυτό πιθανότατα σημαίνει ότι το μπισκότο σχετίζεται με κάποιο πεδίο του λογαριασμού σας (πιθανώς το όνομα χρήστη). Τότε μπορείτε:
*Να προσπαθήσετε να δημιουργήσετε πολλούς **λογαριασμούς** με πολύ **παρόμοια** ονόματα χρηστών και να προσπαθήσετε να**μαντέψετε** πώς λειτουργεί ο αλγόριθμος.
*Να προσπαθήσετε να**δοκιμάσετε βίαια** το όνομα χρήστη. Αν το μπισκότο αποθηκεύει μόνο ως μέθοδο πιστοποίησης για το όνομα χρήστη σας, τότε μπορείτε να δημιουργήσετε έναν λογαριασμό με όνομα χρήστη "**Bmin**" και να δοκιμάσετε να βρείτε κάθε **bit** του μπισκότου σας, επειδή ένα από τα μπισκότα που θα δοκιμάσετε θα είναι αυτό που ανήκει στον "**admin**".
*Να δοκιμάσετε το **Padding Oracle** (μπορείτε να αποκρυπτογραφήσετε το περιεχόμενο του μπισκότου). Χρησιμοποιήστε το **padbuster**.
Εάν η επίθεση έχει πραγματοποιηθεί με επιτυχία, τότε μπορείτε να δοκιμάσετε να κρυπτογραφήσετε μια συμβολοσειρά της επιλογής σας. Για παράδειγμα, αν θέλατε να**κρυπτογραφήσετε****user=administrator**
Ίσως ένα cookie να έχει μια τιμή και να υπογράφεται χρησιμοποιώντας CBC. Έτσι, η ακεραιότητα της τιμής είναι η υπογραφή που δημιουργείται χρησιμοποιώντας CBC με την ίδια τιμή. Καθώς συνιστάται να χρησιμοποιείται ένα μηδενικό διάνυσμα ως αρχικοποίηση, αυτός ο τύπος ελέγχου ακεραιότητας μπορεί να είναι ευάλωτος.
1. Αποκτήστε την υπογραφή του ονόματος χρήστη **administ** = **t**
2. Αποκτήστε την υπογραφή του ονόματος χρήστη **rator\x00\x00\x00 XOR t** = **t'**
3. Ορίστε στο cookie την τιμή **administrator+t'** (**t'** θα είναι μια έγκυρη υπογραφή του **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00**
Δημιουργήστε 2 χρήστες με σχεδόν τα ίδια δεδομένα (όνομα χρήστη, κωδικό πρόσβασης, email, κλπ.) και προσπαθήστε να ανακαλύψετε κάποιο πρότυπο μέσα στο δοσμένο cookie.
Δημιουργήστε έναν χρήστη με το όνομα "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" και ελέγξτε αν υπάρχει κάποιο πρότυπο στο cookie (καθώς το ECB κρυπτογραφεί με τον ίδιο κλειδί κάθε μπλοκ, τα ίδια κρυπτογραφημένα bytes μπορεί να εμφανιστούν εάν το όνομα χρήστη κρυπτογραφηθεί).
Θα πρέπει να υπάρχει ένα πρότυπο (με το μέγεθος ενός χρησιμοποιούμενου μπλοκ). Έτσι, γνωρίζοντας πώς κρυπτογραφούνται μια σειρά από "a", μπορείτε να δημιουργήσετε ένα όνομα χρήστη: "a"\*(μέγεθος του μπλοκ)+"admin". Στη συνέχεια, μπορείτε να διαγράψετε το κρυπτογραφημένο πρότυπο ενός μπλοκ από το cookie. Και θα έχετε το cookie του ονόματος χρήστη "admin".
Βρείτε ευπάθειες που έχουν μεγαλύτερη σημασία, ώστε να μπορείτε να τις διορθώσετε πιο γρήγορα. Το Intruder παρακολουθεί την επιθετική επιφάνειά σας, εκτελεί προληπτικές απειλητικές αναζητήσεις, εντοπίζει προβλήματα σε ολόκληρο το τεχνολογικό σας στοίχημα, από APIs έως web εφαρμογές και συστήματα cloud. [**Δοκιμάστε το δωρεάν**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) σήμερα.
<summary><strong>Μάθετε το hacking του 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)**.**
* **Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.