Upgrade Header Smuggling

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!

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

Try Hard Security Group


H2C Κατάχρηση

HTTP2 Πάνω σε Καθαρό Κείμενο (H2C)

Το H2C, ή http2 πάνω σε καθαρό κείμενο, αποκλίνει από τον κανόνα των προσωρινών συνδέσεων HTTP αναβαθμίζοντας μια τυπική σύνδεση HTTP σε μια μόνιμη. Αυτή η αναβαθμισμένη σύνδεση χρησιμοποιεί το δυαδικό πρωτόκολλο http2 για τη συνεχή επικοινωνία, αντί για τη μονοεπικοινωνιακή φύση του καθαρού HTTP.

Η ουσία του προβλήματος κατάχρησης προκύπτει με τη χρήση ενός αντίστροφου διακομιστή. Συνήθως, ο αντίστροφος διακομιστής επεξεργάζεται και προωθεί τα αιτήματα HTTP στον πίσω μέρος, επιστρέφοντας την απάντηση του πίσω μέρους μετά από αυτό. Ωστόσο, όταν η κεφαλίδα Connection: Upgrade είναι παρούσα σε ένα αίτημα HTTP (συνηθισμένα βλέπεται με συνδέσεις websocket), ο αντίστροφος διακομιστής διατηρεί μια μόνιμη σύνδεση μεταξύ πελάτη και διακομιστή, διευκολύνοντας τη συνεχή ανταλλαγή που απαιτείται από ορισμένα πρωτόκολλα. Για τις συνδέσεις H2C, η συμμόρφωση με το RFC απαιτεί την παρουσία τριών συγκεκριμένων κεφαλίδων:

Upgrade: h2c
HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA
Connection: Upgrade, HTTP2-Settings

Εκμετάλλευση

Είναι κρίσιμο να σημειωθεί ότι όχι όλοι οι διακομιστές προωθούν από μόνοι τους τα απαραίτητα headers για μια συμμορφωμένη αναβάθμιση σύνδεσης H2C. Ως εκ τούτου, διακομιστές όπως οι AWS ALB/CLB, NGINX και Apache Traffic Server, μεταξύ άλλων, φυσικά αποκλείουν τις συνδέσεις H2C. Παρ' όλα αυτά, αξίζει να δοκιμάσετε τη μη συμμορφωμένη εκδοχή Connection: Upgrade, η οποία εξαιρεί την τιμή HTTP2-Settings από το header Connection, καθώς μερικά backends ενδέχεται να μη συμμορφώνονται με τα πρότυπα.

Ανεξαρτήτως της συγκεκριμένης διαδρομής που έχει οριστεί στο URL proxy_pass (π.χ., http://backend:9999/socket.io), η καθιερωμένη σύνδεση προεπιλέγεται στο http://backend:9999. Αυτό επιτρέπει την αλληλεπίδραση με οποιαδήποτε διαδρομή εντός αυτού του εσωτερικού σημείου πρόσβασης, εκμεταλλευόμενος αυτήν την τεχνική. Ως εκ τούτου, η καθορισμένη διαδρομή στο URL proxy_pass δεν περιορίζει την πρόσβαση.

Last updated