Golang

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)

支持HackTricks的其他方式:

CONNECT方法

在Go编程语言中,处理HTTP请求时的常见做法,特别是使用net/http库时,是将请求路径自动转换为标准格式。这个过程包括:

  • 以斜杠(/)结尾的路径,如/flag/,会被重定向到它们的非斜杠对应路径,即/flag

  • 包含目录遍历序列的路径,如/../flag,会被简化并重定向到/flag

  • 以句点结尾的路径,如/flag/.,也会被重定向到干净的路径/flag

然而,在使用CONNECT方法时存在一个例外。与其他HTTP方法不同,CONNECT不会触发路径规范化过程。这种行为为访问受保护资源打开了一个潜在的途径。通过在curl中使用--path-as-is选项,结合CONNECT方法,可以绕过标准路径规范化,潜在地访问受限区域。

以下命令演示了如何利用这种行为:

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的其他方式:

最后更新于