2.4 KiB
{{#include ../../banners/hacktricks-training.md}}
Μέθοδος CONNECT
Στη γλώσσα προγραμματισμού Go, μια κοινή πρακτική κατά την επεξεργασία αιτημάτων HTTP, συγκεκριμένα χρησιμοποιώντας τη βιβλιοθήκη net/http
, είναι η αυτόματη μετατροπή της διαδρομής του αιτήματος σε μια τυποποιημένη μορφή. Αυτή η διαδικασία περιλαμβάνει:
- Διαδρομές που τελειώνουν με μια κάθετο (
/
) όπως/flag/
ανακατευθύνονται στην αντίστοιχη χωρίς κάθετο,/flag
. - Διαδρομές που περιέχουν ακολουθίες διαδρομής καταλόγου όπως
/../flag
απλοποιούνται και ανακατευθύνονται στο/flag
. - Διαδρομές με μια τελεία στο τέλος όπως στο
/flag/.
ανακατευθύνονται επίσης στη καθαρή διαδρομή/flag
.
Ωστόσο, μια εξαίρεση παρατηρείται με τη χρήση της μεθόδου CONNECT
. Σε αντίθεση με άλλες μεθόδους HTTP, η CONNECT
δεν ενεργοποιεί τη διαδικασία κανονικοποίησης διαδρομής. Αυτή η συμπεριφορά ανοίγει μια πιθανή οδό για την πρόσβαση σε προστατευμένους πόρους. Χρησιμοποιώντας τη μέθοδο CONNECT
μαζί με την επιλογή --path-as-is
στο curl
, μπορεί κανείς να παρακάμψει την τυπική κανονικοποίηση διαδρομής και ενδεχομένως να φτάσει σε περιορισμένες περιοχές.
Η παρακάτω εντολή δείχνει πώς να εκμεταλλευτεί κανείς αυτή τη συμπεριφορά:
curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag
{{#include ../../banners/hacktricks-training.md}}