hacktricks/pentesting-web/http-response-smuggling-desync.md
Translator workflow 35c6b081d2 Translated to Greek
2024-02-10 22:40:18 +00:00

85 lines
9.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Απάτη HTTP Response Smuggling / Desync
<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>
Άλλοι τρόποι υποστήριξης του 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)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο github.
</details>
**Η τεχνική αυτής της ανάρτησης προήλθε από το βίντεο: [https://www.youtube.com/watch?v=suxDcYViwao\&t=1343s](https://www.youtube.com/watch?v=suxDcYViwao\&t=1343s)**
## Αποσυντονισμός Ουράς Αιτημάτων HTTP
Καταρχήν, αυτή η τεχνική **καταχράται μια ευπάθεια HTTP Request Smuggling**, οπότε πρέπει να ξέρετε τι είναι αυτό:
Η **κύρια** **διαφορά** ανάμεσα σε αυτήν την τεχνική και σε μια συνηθισμένη επίθεση HTTP Request smuggling είναι ότι αντί να επιτεθούμε στο αίτημα του θύματος προσθέτοντας ένα πρόθεμα, θα διαρρεύσουμε ή θα τροποποιήσουμε την απάντηση που λαμβάνει το θύμα. Αυτό γίνεται αποσυντονίζοντας την ουρά απαντήσεων των διαμεσολαβητών, αντί να στείλουμε 1 αίτημα και μισό για να καταχραστούμε το HTTP Request smuggling, θα στείλουμε 2 πλήρη αιτήματα για να αποσυντονίσουμε την ουρά απαντήσεων των διαμεσολαβητών.
Αυτό γίνεται επειδή θα είμαστε σε θέση να αποσυντονίσουμε την ουρά απάντησης, έτσι ώστε η απάντηση από το νόμιμο αίτημα του θύματος να σταλεί στον επιτιθέμενο, ή να εισαγάγουμε περιεχόμενο που ελέγχεται από τον επιτιθέμενο στην απάντηση προς το θύμα.
### Αποσυντονισμός Ουράς HTTP Pipeline
Το HTTP/1.1 επιτρέπει να ζητηθούν **διάφοροι πόροι χωρίς να χρειάζεται να περιμένουμε για τους προηγούμενους**. Επομένως, αν υπάρχει ένας **διαμεσολαβητής** στη **μέση**, είναι η δουλειά των διαμεσολαβητών να **διατηρούν μια συγχρονισμένη αντιστοίχιση των αιτημάτων που στέλνονται στον πίσω χώρο και των απαντήσεων που προέρχονται από αυτόν**.
Ωστόσο, υπάρχει ένα πρόβλημα με τον αποσυντονισμό της ουράς απαντήσεων. Εάν ένας επιτιθέμενος στείλει μια επίθεση HTTP Response smuggling και οι απαντήσεις στο **αρχικό αίτημα και το καταχραστικό αίτημα απαντηθούν αμέσως**, η καταχραστική απάντηση δεν θα εισαχθεί στην ουρά της απάντησης του θύματος, αλλά θα **απορριφθεί απλά ως σφάλμα**.
![](<../.gitbook/assets/image (635) (1) (1) (1).png>)
Επομένως, είναι απαραίτητο να απαιτείται ότι το **κ
### Σύγχυση Περιεχομένου
Ακολουθώντας το προηγούμενο παράδειγμα, γνωρίζοντας ότι μπορείς να **ελέγξεις το σώμα** του αιτήματος του οποίου η απόκριση θα λάβει ο θύμα και ότι μια **απόκριση HEAD** συνήθως περιέχει στις κεφαλίδες της το **Content-Type και το Content-Length**, μπορείς να **στείλεις ένα αίτημα όπως το παρακάτω** για να προκαλέσεις XSS στο θύμα χωρίς τη σελίδα να είναι ευάλωτη σε XSS:
![](<../.gitbook/assets/image (654) (1) (1) (1) (1).png>)
### Δηλητηρίαση Κρυφής Μνήμης
Εκμεταλλευόμενος την προηγούμενη επίθεση διασυνοριακής ασυμφωνίας στην απόκριση περιεχομένου, **αν η μνήμη κρατάει την απόκριση στο αίτημα που πραγματοποίησε το θύμα και αυτή η απόκριση είναι μια ενοχλητική που προκαλεί XSS, τότε η μνήμη δηλητηριάζεται**.
Κακόβουλο αίτημα που περιέχει το φορτίο του XSS:
![](<../.gitbook/assets/image (644) (1).png>)
Κακόβουλη απόκριση προς το θύμα που περιέχει την κεφαλίδα που υποδεικνύει στη μνήμη να αποθηκεύσει την απόκριση:
![](<../.gitbook/assets/image (629) (1).png>)
{% hint style="warning" %}
Σημειώστε ότι σε αυτήν την περίπτωση, αν ο **"θύτης" είναι ο επιτιθέμενος**, τότε μπορεί να πραγματοποιήσει **δηλητηρίαση κρυφής μνήμης σε αυθαίρετα URLs**, καθώς μπορεί να **ελέγξει το URL που θα αποθηκευτεί στη μνήμη** με την κακόβουλη απόκριση.
{% endhint %}
### Απάτη Παραπλάνησης Προσωρινής Αποθήκευσης
Αυτή η επίθεση είναι παρόμοια με την προηγούμενη, αλλά **αντί να εισαγάγει ένα φορτίο μέσα στη μνήμη προσωρινής αποθήκευσης, ο επιτιθέμενος θα αποθηκεύει πληροφορίες του θύματος μέσα στη μνήμη:**
![](<../.gitbook/assets/image (643) (1) (1).png>)
### Διαίρεση Απόκρισης
Ο **στόχος** αυτής της επίθεσης είναι να εκμεταλλευτεί ξανά την **ασυμφωνία απόκρισης** για να **κάνει τον διαμεσολαβητή να στείλει μια απόκριση που παράγεται κατά 100% από τον επιτιθέμενο**.
Για να το επιτύχει αυτό, ο επιτιθέμενος πρέπει να βρει ένα σημείο της web εφαρμογής που **αντανακλά κάποιες τιμές μέσα στην απόκριση** και **να γνωρίζει το μήκος του περιεχομένου της απόκρισης HEAD**.
Θα στείλει ένα **εκμεταλλευτικό** όπως:
![](<../.gitbook/assets/image (649) (1) (1) (1).png>)
Αφού το πρώτο αίτημα επιλυθεί και σταλεί πίσω στον επιτιθέμενο, το αίτημα του θύματος προστίθεται στην ουρά:
![](<../.gitbook/assets/image (661) (1) (1) (1).png>)
Το θύμα θα λάβει ως απόκριση την **απόκριση HEAD + το περιεχόμενο της απόκρισης του δεύτερου αιτήματος (που περιέχει μέρος των αντανακλασμένων δεδομένων):**
![](<../.gitbook/assets/image (633) (1).png>)
Ωστόσο, παρατηρήστε ότι τα **αντανακλασμένα δεδομένα είχαν μέγεθος σύμφωνα με το Content-Length** της **απόκρισης HEAD που παρήγαγε μια έγκυρη απόκριση HTTP στην ουρά απόκρισης**.
Συνεπώς, το **επόμενο αίτημα του δεύτερου θύματος** θα **λάβει** ως **απόκριση κάτι που έχει δημιουργηθεί εξ ολοκλήρου από τον επιτιθέμενο**. Καθώς η απόκριση έχει δημιουργηθεί εξ ολοκλήρου από τον επιτιθέμενο, μπορεί επίσης να **κάνει τη μνήμη προσωρινής αποθήκευσης την απόκριση**.