Golang

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Μέθοδος 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

https://github.com/golang/go/blob/9bb97ea047890e900dae04202a231685492c4b18/src/net/http/server.go#L2354-L2364

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated