5.3 KiB
Αναβάθμιση Κεφαλίδας Κατάχρησης
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!
Άλλοι τρόποι υποστήριξης του HackTricks:
- Αν θέλετε να δείτε την εταιρεία σας διαφημισμένη στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF ελέγξτε τα ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ!
- Αποκτήστε το επίσημο PEASS & HackTricks swag
- Ανακαλύψτε την Οικογένεια PEASS, τη συλλογή μας από αποκλειστικά NFTs
- Εγγραφείτε στη 💬 ομάδα Discord ή στη ομάδα τηλεγραφήματος ή ακολουθήστε μας στο Twitter 🐦 @carlospolopm.
- Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα HackTricks και HackTricks Cloud αποθετήρια στο GitHub.
Try Hard Security Group
{% embed url="https://discord.gg/tryhardsecurity" %}
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 ενδέχεται να μη συμμορφώνονται με τα πρότυπα.
{% hint style="danger" %}
Ανεξαρτήτως της συγκεκριμένης διαδρομής που έχει οριστεί στο URL proxy_pass
(π.χ., http://backend:9999/socket.io
), η καθιερωμένη σύνδεση προεπιλέγεται στο http://backend:9999
. Αυτό επιτρέπει την αλληλεπίδραση με οποιαδήποτε διαδρομή εντός αυτού του εσωτερικού σημείου πρόσβασης, εκμεταλλευόμενος αυτήν την τεχνική. Ως εκ τούτου, η καθορισμένη διαδρομή στο URL proxy_pass
δεν περιορίζει την πρόσβαση.
{% endhint %}