# Απάτη HTTP Response Smuggling / Desync
Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! Άλλοι τρόποι υποστήριξης του 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.
**Η τεχνική αυτής της ανάρτησης προήλθε από το βίντεο: [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 στην ουρά απόκρισης**. Συνεπώς, το **επόμενο αίτημα του δεύτερου θύματος** θα **λάβει** ως **απόκριση κάτι που έχει δημιουργηθεί εξ ολοκλήρου από τον επιτιθέμενο**. Καθώς η απόκριση έχει δημιουργηθεί εξ ολοκλήρου από τον επιτιθέμενο, μπορεί επίσης να **κάνει τη μνήμη προσωρινής αποθήκευσης την απόκριση**.