hacktricks/network-services-pentesting/pentesting-web/golang.md
2024-02-10 21:30:13 +00:00

3.6 KiB

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

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

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법: