tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
CONNECT 方法
在 Go 编程语言中,处理 HTTP 请求时,特别是使用 net/http
库时,一个常见的做法是将请求路径自动转换为标准格式。这个过程包括:
- 以斜杠 (
/
) 结尾的路径,如/flag/
被重定向到其无斜杠的对应路径/flag
。 - 包含目录遍历序列的路径,如
/../flag
被简化并重定向到/flag
。 - 以句点结尾的路径,如
/flag/.
也被重定向到干净的路径/flag
。
然而,使用 CONNECT
方法时观察到一个例外。与其他 HTTP 方法不同,CONNECT
不会触发路径规范化过程。这种行为为访问受保护资源打开了潜在的途径。通过在 curl
中使用 CONNECT
方法和 --path-as-is
选项,可以绕过标准路径规范化,并可能到达受限区域。
以下命令演示了如何利用这种行为:
bash
curl --path-as-is -X CONNECT http://gofs.web.jctf.pro/../flag
tip
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。