hacktricks/pentesting-web/hacking-with-cookies/README.md

265 lines
29 KiB
Markdown
Raw Normal View History

# Χακάροντας Cookies
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Μάθετε να χακάρετε το AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Άλλοι τρόποι υποστήριξης του HackTricks:
2024-01-01 17:15:10 +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>
**Try Hard Security Group**
2023-09-02 23:48:41 +00:00
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
## Χαρακτηριστικά των Cookies
Τα cookies έρχονται με διάφορα χαρακτηριστικά που ελέγχουν τη συμπεριφορά τους στον περιηγητή του χρήστη. Εδώ έχουμε μια ανασκόπηση αυτών των χαρακτηριστικών με μια πιο παθητική φωνή:
2024-02-10 22:40:18 +00:00
### Λήξη και Max-Age
Η ημερομηνία λήξης ενός cookie καθορίζεται από το χαρακτηριστικό `Expires`. Αντίστροφα, το χαρακτηριστικό `Max-age` ορίζει το χρόνο σε δευτερόλεπτα μέχρι το cookie να διαγραφεί. **Επιλέξτε το `Max-age` καθώς αντικατοπτρίζει πιο σύγχρονες πρακτικές.**
2024-02-05 20:00:40 +00:00
### Domain
Οι φιλοξενούμενοι που λαμβάνουν ένα cookie καθορίζονται από το χαρακτηριστικό `Domain`. Από προεπιλογή, αυτό ορίζεται στον φιλοξενούντα που εξέδωσε το cookie, χωρίς να συμπεριλαμβάνει τα υποτομεία του. Ωστόσο, όταν το χαρακτηριστικό `Domain` ορίζεται ρητά, περιλαμβάνει επίσης τα υποτομεία. Αυτό καθιστά την καθορισμό του χαρακτηριστικού `Domain` μια λιγότερο περιοριστική επιλογή, χρήσιμη για περιπτώσεις όπου είναι απαραίτητο το κοινή χρήση των cookies σε υποτομεία. Για παράδειγμα, η ρύθμιση `Domain=mozilla.org` καθιστά τα cookies προσβάσιμα στα υποτομέα της όπως το `developer.mozilla.org`.
### Διαδρομή
Μια συγκεκριμένη διαδρομή URL που πρέπει να υπάρχει στο αιτούμενο URL για να σταλεί η κεφαλίδα `Cookie` υποδεικνύεται από το χαρακτηριστικό `Path`. Αυτό το χαρακτηριστικό θεωρεί τον χαρακτήρα `/` ως διαχωριστικό καταλόγου, επιτρέποντας ταιριάσματα σε υποκαταλόγους επίσης.
2024-02-10 22:40:18 +00:00
### Κανόνες Ταξινόμησης
Όταν δύο cookies έχουν το ίδιο όνομα, το επιλεγόμενο για αποστολή βασίζεται σε:
* Το cookie που ταιριάζει με τη μεγαλύτερη διαδρομή στο αιτούμενο URL.
* Το πιο πρόσφατα ορισμένο cookie αν οι διαδρομές είναι ίδιες.
### SameSite
* Το χαρακτηριστικό `SameSite` καθορίζει εάν τα cookies στέλνονται σε αιτήσεις που προέρχονται από τομείς τρίτων. Προσφέρει τρεις ρυθμίσεις:
* **Αυστηρό**: Περιορίζει το cookie από το να σταλεί σε αιτήσεις τρίτων.
* **Χαλαρό**: Επιτρέπει στο cookie να σταλεί με αιτήσεις GET που ξεκινούν από ιστοσελίδες τρίτων.
* **Κανένα**: Επιτρέπει στο cookie να σταλεί από οποιοδήποτε τομέα τρίτων.
Να θυμάστε, κατά τη διαμόρφωση των cookies, η κατανόηση αυτών των χαρακτηριστικών μπορεί να βοηθήσει να εξασφαλιστεί ότι θα συμπεριφέρονται όπως αναμένεται σε διαφορετικά σενάρια.
| **Τύπος Αιτήματος** | **Παράδειγμα Κώδικα** | **Cookies Που Στέλνονται Όταν** |
| ---------------- | ---------------------------------- | --------------------- |
| Σύνδεσμος | \<a href="...">\</a> | NotSet\*, Lax, None |
| Προεκτέλεση | \<link rel="prerender" href=".."/> | NotSet\*, Lax, None |
| Φόρμα GET | \<form method="GET" action="..."> | NotSet\*, Lax, None |
| Φόρμα POST | \<form method="POST" action="..."> | NotSet\*, None |
| iframe | \<iframe src="...">\</iframe> | NotSet\*, None |
| AJAX | $.get("...") | NotSet\*, None |
| Εικόνα | \<img src="..."> | NetSet\*, None |
Πίνακας από [Invicti](https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/) και ελαφρώς τροποποιημένο.\
Ένα cookie με το χαρακτηριστικό _**SameSite**_ θα **ελαττώσει τις επιθέσεις CSRF** όπου απαιτείται μια συνεδρία σύνδεσης.
**\*Σημειώστε ότι από το Chrome80 (Φεβ/2019) η προεπιλεγμένη συμπεριφορά ενός cookie χωρίς το χαρακτηριστικό samesite** **θα είναι lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\
Σημειώστε ότι προσωρινά, μετά την εφαρμογή αυτής της αλλαγής, τα **cookies χωρίς πολιτική SameSite** στο Chrome θα **χειριστούν ως None** κατά τα **πρώτα 2 λεπτά και στη συνέχεια ως Lax για αιτήματα POST διασταυρούμενων τομέων κορυφαίου επιπέδου.**
2024-02-05 20:00:40 +00:00
## Σημαίες των Cookies
### HttpOnly
Αυτό αποφεύγει τον **πελάτη** να έχει πρόσβαση στο cookie (Μέσω **Javascript** για παράδειγμα: `document.cookie`)
#### **Παρακάμψεις**
* Αν η σελίδα **στέλνει τα cookies ως απάντηση** μιας αιτήσεως (για παράδειγμα σε μια σελίδα **PHPinfo**), είναι δυνατό να καταχραστείτε το XSS για να στείλετε μια αίτηση σε αυτή τη σελίδα και **να κλέψετε τα cookies** από την απάντηση (ελέγξτε ένα παράδειγμα στο [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/).
* Αυτό μπορεί να παρακαμφθεί με αιτήσεις **TRACE HTTP** καθώς η απάντηση από τον διακομιστή (εάν αυτή η μέθοδος HTTP είναι διαθέσιμη) θα αντανακλά τα cookies που στάλθηκαν. Αυτή η τεχνική ονομάζεται **Cross-Site Tracking**.
* Αυτή η τεχνική αποφεύγεται από τους **σύγχρονους περιηγητές μη επιτρέποντας την αποστολή ενός αιτήματος TRACE** από το JS. Ωστόσο, έχουν βρεθεί κάποιες παρακάμψεις σε αυτό σε συγκεκριμένο λογισμικό όπως η αποστολή `\r\nTRACE` αντί για `TRACE` στο IE6.0 SP2.
* Μια άλλη μέθοδος είναι η εκμετάλλευση ευπάθειών μηδέν/ημέρας των περιηγητών.
* Είναι δυνατό να **αντικατασταθούν τα
### Αντικατάσταση cookies
Ένας από τους τρόπους προστασίας των cookies που προσθέτουν το πρόθεμα `__Host-` είναι να αποτρέπουν την αντικατάστασή τους από υποτομείς. Αποτρέποντας, για παράδειγμα, τις επιθέσεις [**Cookie Tossing**](cookie-tossing.md). Στην ομιλία [**Cookie Crumbles: Αποκάλυψη Ευπάθειας Ακεραιότητας Συνεδρίας Ιστού**](https://www.youtube.com/watch?v=F\_wAzF4a7Xg) ([**άρθρο**](https://www.usenix.org/system/files/usenixsecurity23-squarcina.pdf)) παρουσιάζεται ότι ήταν δυνατό να οριστούν cookies με πρόθεμα \_\_HOST- από υποτομές, με τον τρόπο του να εξαπατήσει τον αναλυτή, για παράδειγμα, προσθέτοντας "=" στην αρχή ή στην αρχή και στο τέλος...:
<figure><img src="../../.gitbook/assets/image (6) (1).png" alt=""><figcaption></figcaption></figure>
Ή στην PHP ήταν δυνατό να προστεθούν **άλλοι χαρακτήρες στην αρχή** του ονόματος του cookie που θα αντικαθίσταντο από χαρακτήρες κάτω παυλών, επιτρέποντας την αντικατάσταση των `__HOST-` cookies:
<figure><img src="../../.gitbook/assets/image (7) (1).png" alt="" width="373"><figcaption></figcaption></figure>
## Επιθέσεις σε Cookies
Αν ένα προσαρμοσμένο cookie περιέχει ευαίσθητα δεδομένα, ελέγξτε το (ειδικά αν παίζετε ένα CTF), καθώς ενδέχεται να είναι ευάλωτο.
### Αποκωδικοποίηση και Αλλαγή Cookies
Τα ευαίσθητα δεδομένα που ενσωματώνονται σε cookies πρέπει πάντα να ελέγχονται προσεκτικά. Τα cookies που κωδικοποιούνται σε Base64 ή παρόμοιες μορφές μπορούν συχνά να αποκωδικοποιηθούν. Αυτή η ευπάθεια επιτρέπει στους επιτιθέμενους να τροποποιήσουν το περιεχόμενο του cookie και να υποδυθούν άλλους χρήστες κωδικοποιώντας τα τροποποιημένα τους δεδομένα πίσω στο cookie.
### Απαγωγή Συνεδρίας
Αυτή η επίθεση περιλαμβάνει την κλοπή του cookie ενός χρήστη για να αποκτήσει μη εξουσιοδοτημένη πρόσβαση στον λογαριασμό του σε μια εφαρμογή. Χρησιμοποιώντας το κλεμμένο cookie, ένας επιτιθέμενος μπορεί να υποδυθεί τον νόμιμο χρήστη.
2024-02-10 22:40:18 +00:00
### Σταθεροποίηση Συνεδρίας
Σε αυτό το σενάριο, ένας επιτιθέμενος εξαπατά ένα θύμα να χρησιμοποιήσει ένα συγκεκριμένο cookie για να συνδεθεί. Αν η εφαρμογή δεν αναθέτει ένα νέο cookie κατά τη σύνδεση, ο επιτιθέμενος, έχοντας το αρχικό cookie, μπορεί να υποδυθεί το θύμα. Αυτή η τεχνική βασίζεται στο να συνδεθεί το θύμα με ένα cookie που παρέχεται από τον επιτιθέμενο.
Αν βρήκατε ένα **XSS σε μια υποτομή** ή ελέγχετε μια **υποτομή**, διαβάστε:
2021-10-19 00:01:07 +00:00
{% content-ref url="cookie-tossing.md" %}
[cookie-tossing.md](cookie-tossing.md)
{% endcontent-ref %}
2024-02-10 22:40:18 +00:00
### Δωρεά Συνεδρίας
Εδώ, ο επιτιθέμενος πείθει το θύμα να χρησιμοποιήσει το session cookie του επιτιθέμενου. Το θύμα, πιστεύοντας ότι έχει συνδεθεί στον δικό του λογαριασμό, θα εκτελέσει απροσεξίες στο πλαίσιο του λογαριασμού του επιτιθέμενου.
2021-10-19 00:01:07 +00:00
Αν βρήκατε ένα **XSS σε μια υποτομή** ή ελέγχετε μια **υποτομή**, διαβάστε:
2021-10-19 00:01:07 +00:00
{% content-ref url="cookie-tossing.md" %}
[cookie-tossing.md](cookie-tossing.md)
{% endcontent-ref %}
### [Cookies JWT](../hacking-jwt-json-web-tokens.md)
Κάντε κλικ στον προηγούμενο σύνδεσμο για να αποκτήσετε πρόσβαση σε μια σελίδα που εξηγεί πιθανές ευπάθειες στα JWT.
Τα JSON Web Tokens (JWT) που χρησιμοποιούνται σε cookies μπορεί επίσης να παρουσιάζουν ευπάθειες. Για λεπτομερείς πληροφορίες σχετικά με πιθανές ευπάθειες και πώς να τις εκμεταλλευτείτε, συνιστάται η πρόσβαση στο έγγραφο που συνδέεται με το hacking των JWT.
2024-02-05 20:00:40 +00:00
### Παραβίαση Αιτήσεων Αναπαραγωγής Ανά Διαδίκτυο (CSRF)
Αυτή η επίθεση αναγκάζει έναν συνδεδεμένο χρήστη να εκτελέσει μη επιθυμητες ενέργειες σε μια ιστοσελίδα στην οποία είναι επί του παρόντος πιστοποιημένος. Οι επιτιθέμενοι μπορούν να εκμεταλλευτούν cookies που στέλνονται αυτόματα με κάθε αίτηση στην ευάλωτη ιστοσελίδα.
2024-02-05 20:00:40 +00:00
2024-02-10 22:40:18 +00:00
### Κενά Cookies
(Ελέγξτε περαιτέρω λεπτομέρειες στην [αρχική έρευνα](https://blog.ankursundara.com/cookie-bugs/)) Οι περιηγητές επιτρέπουν τη δημιουργία cookies χωρίς όνομα, το οποίο μπορεί να επιδειχθεί μέσω JavaScript ως εξής:
```js
document.cookie = "a=v1"
2024-02-05 20:00:40 +00:00
document.cookie = "=test value;" // Setting an empty named cookie
document.cookie = "b=v2"
```
Το αποτέλεσμα στην κεφαλίδα cookie που στάλθηκε είναι `a=v1; test value; b=v2;`. Ενδιαφέροντα, αυτό επιτρέπει την παρεμβολή στα cookies εάν ένα cookie με κενό όνομα έχει οριστεί, ενδεχομένως ελέγχοντας άλλα cookies με τον καθορισμό του κενού cookie σε μια συγκεκριμένη τιμή:
```js
function setCookie(name, value) {
2024-02-10 22:40:18 +00:00
document.cookie = `${name}=${value}`;
}
2024-02-05 20:00:40 +00:00
setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's value
```
#### Chrome Bug: Πρόβλημα με τον Κωδικό Συντροφικού Σημείου Unicode
2024-04-06 18:31:47 +00:00
Στο Chrome, εάν ένα συντροφικό σημείο Unicode είναι μέρος ενός συνόλου cookie, το `document.cookie` γίνεται δλαλοποιημένο, επιστρέφοντας στη συνέχεια μια κενή συμβολοσειρά:
```js
document.cookie = "\ud800=meep";
```
Αυτό έχει ως αποτέλεσμα το `document.cookie` να εμφανίζει μια κενή συμβολοσειρά, υποδεικνύοντας μόνιμη διαφθορά.
2024-04-06 18:31:47 +00:00
#### Λαθρεμπορία Cookie Λόγω Προβλημάτων Ανάλυσης
2024-04-06 18:31:47 +00:00
(Ελέγξτε περισσότερες λεπτομέρειες στην [αρχική έρευνα](https://blog.ankursundara.com/cookie-bugs/)) Πολλοί διακομιστές ιστού, συμπεριλαμβανομένων αυτών από Java (Jetty, TomCat, Undertow) και Python (Zope, cherrypy, web.py, aiohttp, bottle, webob), χειρίζονται εσφαλμένα τις συμβολοσειρές cookie λόγω της ξεπερασμένης υποστήριξης του RFC2965. Διαβάζουν μια τιμή cookie που είναι σε διπλά εισαγωγικά ως μια μοναδική τιμή ακόμα κι αν περιλαμβάνει ερωτηματικά, τα οποία θα έπρεπε να χωρίζουν κανονικά τα ζεύγη κλειδιού-τιμής:
```
2024-02-05 20:00:40 +00:00
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
```
#### Ευπάθειες Έγχυσης Cookies
(Ελέγξτε λεπτομέρειες στην [αρχική έρευνα](https://blog.ankursundara.com/cookie-bugs/)) Η εσφαλμένη ανάλυση των cookies από διακομιστές, ειδικά Undertow, Zope, και αυτούς που χρησιμοποιούν τα `http.cookie.SimpleCookie` και `http.cookie.BaseCookie` της Python, δημιουργεί ευκαιρίες για επιθέσεις έγχυσης cookies. Αυτοί οι διακομιστές αποτυγχάνουν να ορθώς περιορίσουν την έναρξη νέων cookies, επιτρέποντας σε επιτιθέμενους να πλαστογραφήσουν cookies:
* Ο Undertow περιμένει ένα νέο cookie αμέσως μετά από μια παραθέση χωρίς ερωτηματικό.
* Το Zope ψάχνει για ένα κόμμα για να ξεκινήσει την ανάλυση του επόμενου cookie.
* Οι κλάσεις cookie της Python ξεκινούν την ανάλυση σε ένα χαρακτήρα κενού.
Αυτή η ευπάθεια είναι ιδιαίτερα επικίνδυνη σε web εφαρμογές που βασίζονται στην προστασία CSRF με βάση τα cookies, καθώς επιτρέπει σε επιτιθέμενους να εισάγουν πλαστογραφημένα cookies CSRF-token, πιθανώς παρακάμπτοντας μέτρα ασφαλείας. Το πρόβλημα επιδεινώνεται από τη χειριστική της Python για διπλότυπα ονόματα cookies, όπου η τελευταία εμφάνιση αντικαθιστά τις προηγούμενες. Επίσης, δημιουργεί ανησυχίες για τα cookies `__Secure-` και `__Host-` σε ανασφαλείς συμφωνίες και θα μπορούσε να οδηγήσει σε παρακάμψεις εξουσιοδότησης όταν τα cookies περνιούνται σε διακομιστές που είναι ευάλωτοι στην πλαστογράφηση.
### Επιπλέον Ευάλωτοι Έλεγχοι Cookies
#### **Βασικοί Έλεγχοι**
* Το **cookie** είναι **ίδιο** κάθε φορά που **συνδέεστε**.
* Αποσυνδεθείτε και δοκιμάστε να χρησιμοποιήσετε το ίδιο cookie.
* Δοκιμάστε να συνδεθείτε με 2 συσκευές (ή περιηγητές) στο ίδιο λογαριασμό χρησιμοποιώντας το ίδιο cookie.
* Ελέγξτε αν το cookie περιέχει κάποιες πληροφορίες και δοκιμάστε να το τροποποιήσετε.
* Δοκιμάστε να δημιουργήσετε αρκετούς λογαριασμούς με σχεδόν το ίδιο όνομα χρήστη και ελέγξτε αν μπορείτε να δείτε ομοιότητες.
* Ελέγξτε την επιλογή "**Να με θυμάσαι**" αν υπάρχει για να δείτε πώς λειτουργεί. Αν υπάρχει και είναι ευάλωτη, χρησιμοποιήστε πάντα το cookie του **να με θυμάσαι** χωρίς κανένα άλλο cookie.
* Ελέγξτε αν το προηγούμενο cookie λειτουργεί ακόμα αφού αλλάξετε τον κωδικό.
#### **Προηγμένες επιθέσεις με cookies**
Αν το cookie παραμένει το ίδιο (ή σχεδόν) όταν συνδέεστε, αυτό πιθανότατα σημαίνει ότι το cookie σχετίζεται με κάποιο πεδίο του λογαριασμού σας (πιθανώς το όνομα χρήστη). Τότε μπορείτε:
* Δοκιμάστε να δημιουργήσετε πολλούς **λογαριασμούς** με πολύ **παρόμοια** ονόματα χρηστών και δοκιμάστε να **μαντέψετε** πώς λειτουργεί ο αλγόριθμος.
* Δοκιμάστε να **bruteforce το όνομα χρήστη**. Αν το cookie αποθηκεύει μόνο ως μέθοδος πιστοποίησης για το όνομα χρήστη σας, τότε μπορείτε να δημιουργήσετε ένα λογαριασμό με όνομα χρήστη "**Bmin**" και να **bruteforce** κάθε μοναδικό **bit** του cookie σας επειδή ένα από τα cookies που θα δοκιμάσετε θα είναι αυτό που ανήκει στον "**admin**".
* Δοκιμάστε το **Padding Oracle** (μπορείτε να αποκρυπτογραφήσετε το περιεχόμενο του cookie). Χρησιμοποιήστε το **padbuster**.
**Padding Oracle - Παραδείγματα Padbuster**
```bash
padbuster <URL/path/when/successfully/login/with/cookie> <COOKIE> <PAD[8-16]>
# When cookies and regular Base64
padbuster http://web.com/index.php u7bvLewln6PJPSAbMb5pFfnCHSEd6olf 8 -cookies auth=u7bvLewln6PJPSAbMb5pFfnCHSEd6olf
# If Base64 urlsafe or hex-lowercase or hex-uppercase --encoding parameter is needed, for example:
padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6
7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6 8 -encoding 2
```
Padbuster θα κάνει αρκετές προσπάθειες και θα σας ρωτήσει ποια συνθήκη είναι η συνθήκη σφάλματος (αυτή που δεν είναι έγκυρη).
Στη συνέχεια θα αρχίσει να αποκρυπτογραφεί το cookie (μπορεί να διαρκέσει αρκετά λεπτά).
Αν η επίθεση έχει πραγματοποιηθεί με επιτυχία, τότε θα μπορούσατε να δοκιμάσετε να κρυπτογραφήσετε μια συμβολοσειρά της επιλογής σας. Για παράδειγμα, αν θέλατε να **κρυπτογραφήσετε** **user=administrator**
```
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
```
Αυτή η εκτέλεση θα σας δώσει το cookie σωστά κρυπτογραφημένο και κωδικοποιημένο με το string **user=administrator** μέσα.
**CBC-MAC**
Ίσως ένα cookie μπορεί να έχει κάποια τιμή και να υπογράφεται χρησιμοποιώντας CBC. Στη συνέχεια, η ακεραιότητα της τιμής είναι η υπογραφή που δημιουργείται χρησιμοποιώντας CBC με την ίδια τιμή. Καθώς συνιστάται να χρησιμοποιείται ως IV ένα μηδενικό διάνυσμα, αυτός ο τύπος ελέγχου ακεραιότητας θα μπορούσε να είναι ευάλωτος.
2024-02-10 22:40:18 +00:00
**Η επίθεση**
1. Λάβετε την υπογραφή του ονόματος χρήστη **administ** = **t**
2. Λάβετε την υπογραφή του ονόματος χρήστη **rator\x00\x00\x00 XOR t** = **t'**
2024-02-10 22:40:18 +00:00
3. Ορίστε στο cookie την τιμή **administrator+t'** (**t'** θα είναι μια έγκυρη υπογραφή του **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00**
**ECB**
Αν το cookie είναι κρυπτογραφημένο χρησιμοποιώντας ECB μπορεί να είναι ευάλωτο.\
Όταν συνδέεστε, το cookie που λαμβάνετε πρέπει να είναι πάντα το ίδιο.
2024-02-10 22:40:18 +00:00
**Πώς να ανιχνεύσετε και να επιτεθείτε:**
Δημιουργήστε 2 χρήστες με σχεδόν τα ίδια δεδομένα (όνομα χρήστη, κωδικό πρόσβασης, email, κλπ.) και προσπαθήστε να ανακαλύψετε κάποιο πρότυπο μέσα στο δεδομένο cookie
Δημιουργήστε ένα χρήστη με το όνομα για παράδειγμα "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" και ελέγξτε αν υπάρχει κάποιο πρότυπο στο cookie (καθώς το ECB κρυπτογραφεί με τον ίδιο κλειδί κάθε block, τα ίδια κρυπτογραφημένα bytes μπορεί να εμφανιστούν αν το όνομα χρήστη είναι κρυπτογραφημένο).
Θα πρέπει να υπάρχει ένα πρότυπο (με το μέγεθος ενός χρησιμοποιούμενου block). Έτσι, γνωρίζοντας πώς κρυπτογραφούνται μια σειρά "a" μπορείτε να δημιουργήσετε ένα όνομα χρήστη: "a"\*(μέγεθος του block)+"admin". Στη συνέχεια, μπορείτε να διαγράψετε το κρυπτογραφημένο πρότυπο ενός block από το cookie. Και θα έχετε το cookie του ονόματος χρήστη "admin".
2024-02-10 22:40:18 +00:00
## Αναφορές
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
* [https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
2023-09-02 23:48:41 +00:00
**Try Hard Security Group**
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Άλλοι τρόποι υποστήριξης του HackTricks:
2024-01-01 17:15:10 +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) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα hacking tricks σας υποβάλλοντας 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>