tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Метод CONNECT

У мові програмування Go поширеною практикою при обробці HTTP-запитів, зокрема за допомогою бібліотеки net/http, є автоматичне перетворення шляху запиту в стандартизований формат. Цей процес включає:

  • Шляхи, що закінчуються на слеш (/), такі як /flag/, перенаправляються на їхній варіант без слеша, /flag.
  • Шляхи, що містять послідовності переходу по каталогах, такі як /../flag, спрощуються і перенаправляються на /flag.
  • Шляхи з крапкою в кінці, як у /flag/., також перенаправляються на чистий шлях /flag.

Однак спостерігається виняток при використанні методу CONNECT. На відміну від інших HTTP-методів, CONNECT не викликає процес нормалізації шляху. Ця поведінка відкриває потенційний шлях для доступу до захищених ресурсів. Використовуючи метод CONNECT разом з опцією --path-as-is у curl, можна обійти стандартну нормалізацію шляху і потенційно досягти обмежених зон.

Наступна команда демонструє, як експлуатувати цю поведінку:

bash
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

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks