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

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated