HTTP Response Smuggling / Desync

Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Η τεχνική αυτής της ανάρτησης προήλθε από το βίντεο: 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 και οι απαντήσεις στο αρχικό αίτημα και το καταχραστικό αίτημα απαντηθούν αμέσως, η καταχραστική απάντηση δεν θα εισαχθεί στην ουρά της απάντησης του θύματος, αλλά θα απορριφθεί απλά ως σφάλμα.

Επομένως, είναι απαραίτητο να απαιτείται ότι το **κ

Σύγχυση Περιεχομένου

Ακολουθώντας το προηγούμενο παράδειγμα, γνωρίζοντας ότι μπορείς να ελέγξεις το σώμα του αιτήματος του οποίου η απόκριση θα λάβει ο θύμα και ότι μια απόκριση HEAD συνήθως περιέχει στις κεφαλίδες της το Content-Type και το Content-Length, μπορείς να στείλεις ένα αίτημα όπως το παρακάτω για να προκαλέσεις XSS στο θύμα χωρίς τη σελίδα να είναι ευάλωτη σε XSS:

Δηλητηρίαση Κρυφής Μνήμης

Εκμεταλλευόμενος την προηγούμενη επίθεση διασυνοριακής ασυμφωνίας στην απόκριση περιεχομένου, αν η μνήμη κρατάει την απόκριση στο αίτημα που πραγματοποίησε το θύμα και αυτή η απόκριση είναι μια ενοχλητική που προκαλεί XSS, τότε η μνήμη δηλητηριάζεται.

Κακόβουλο αίτημα που περιέχει το φορτίο του XSS:

Κακόβουλη απόκριση προς το θύμα που περιέχει την κεφαλίδα που υποδεικνύει στη μνήμη να αποθηκεύσει την απόκριση:

Σημειώστε ότι σε αυτήν την περίπτωση, αν ο "θύτης" είναι ο επιτιθέμενος, τότε μπορεί να πραγματοποιήσει δηλητηρίαση κρυφής μνήμης σε αυθαίρετα URLs, καθώς μπορεί να ελέγξει το URL που θα αποθηκευτεί στη μνήμη με την κακόβουλη απόκριση.

Απάτη Παραπλάνησης Προσωρινής Αποθήκευσης

Αυτή η επίθεση είναι παρόμοια με την προηγούμενη, αλλά αντί να εισαγάγει ένα φορτίο μέσα στη μνήμη προσωρινής αποθήκευσης, ο επιτιθέμενος θα αποθηκεύει πληροφορίες του θύματος μέσα στη μνήμη:

Διαίρεση Απόκρισης

Ο στόχος αυτής της επίθεσης είναι να εκμεταλλευτεί ξανά την ασυμφωνία απόκρισης για να κάνει τον διαμεσολαβητή να στείλει μια απόκριση που παράγεται κατά 100% από τον επιτιθέμενο.

Για να το επιτύχει αυτό, ο επιτιθέμενος πρέπει να βρει ένα σημείο της web εφαρμογής που αντανακλά κάποιες τιμές μέσα στην απόκριση και να γνωρίζει το μήκος του περιεχομένου της απόκρισης HEAD.

Θα στείλει ένα εκμεταλλευτικό όπως:

Αφού το πρώτο αίτημα επιλυθεί και σταλεί πίσω στον επιτιθέμενο, το αίτημα του θύματος προστίθεται στην ουρά:

Το θύμα θα λάβει ως απόκριση την απόκριση HEAD + το περιεχόμενο της απόκρισης του δεύτερου αιτήματος (που περιέχει μέρος των αντανακλασμένων δεδομένων):

Ωστόσο, παρατηρήστε ότι τα αντανακλασμένα δεδομένα είχαν μέγεθος σύμφωνα με το Content-Length της απόκρισης HEAD που παρήγαγε μια έγκυρη απόκριση HTTP στην ουρά απόκρισης.

Συνεπώς, το επόμενο αίτημα του δεύτερου θύματος θα λάβει ως απόκριση κάτι που έχει δημιουργηθεί εξ ολοκλήρου από τον επιτιθέμενο. Καθώς η απόκριση έχει δημιουργηθεί εξ ολοκλήρου από τον επιτιθέμενο, μπορεί επίσης να κάνει τη μνήμη προσωρινής αποθήκευσης την απόκριση.

Last updated