Golang
Μέθοδος CONNECT
Στη γλώσσα προγραμματισμού Go, μια συνηθισμένη πρακτική κατά την χειρισμό των αιτημάτων HTTP, ειδικότερα χρησιμοποιώντας τη βιβλιοθήκη net/http
, είναι η αυτόματη μετατροπή της διαδρομής του αιτήματος σε ένα κανονικοποιημένο μορφοποιημένο μορφότυπο. Αυτή η διαδικασία περιλαμβάνει:
Οι διαδρομές που τελειώνουν με κάθετο (
/
) όπως/flag/
ανακατευθύνονται στην αντίστοιχη μη-κάθετη μορφή τους,/flag
.Οι διαδρομές που περιέχουν ακολουθίες διάσχισης καταλόγου όπως
/../flag
απλοποιούνται και ανακατευθύνονται στο/flag
.Οι διαδρομές με ένα τελικό τελεία όπως
/flag/.
ανακατευθύνονται επίσης στην καθαρή διαδρομή/flag
.
Ωστόσο, παρατηρείται μια εξαίρεση με τη χρήση της μεθόδου CONNECT
. Αντίθετα από άλλες μεθόδους HTTP, η CONNECT
δεν ενεργοποιεί τη διαδικασία κανονικοποίησης της διαδρομής. Αυτή η συμπεριφορά ανοίγει ένα δυνητικό μονοπάτι για την πρόσβαση σε προστατευμένους πόρους. Χρησιμοποιώντας τη μέθοδο CONNECT
μαζί με την επιλογή --path-as-is
στο curl
, μπορεί κανείς να παρακάμψει την κανονικοποίηση της διαδρομής και πιθανώς να φτάσει σε περιορισμένες περιοχές.
Το παρακάτω παράδειγμα δείχνει πώς να εκμεταλλευτείτε αυτήν τη συμπεριφορά:
Last updated