tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin

CONNECT yöntemi

Go programlama dilinde, HTTP isteklerini işlerken, özellikle net/http kütüphanesini kullanırken, istek yolunun otomatik olarak standart bir formata dönüştürülmesi yaygın bir uygulamadır. Bu süreç şunları içerir:

  • / ile biten yollar (/flag/) kesme işareti olmayan karşılıklarına, yani /flag'a yönlendirilir.
  • /../flag gibi dizin geçiş dizileri içeren yollar basitleştirilir ve /flag'a yönlendirilir.
  • /flag/. gibi sonlandırma noktası olan yollar da temiz yol olan /flag'a yönlendirilir.

Ancak, CONNECT yönteminin kullanımıyla bir istisna gözlemlenmektedir. Diğer HTTP yöntemlerinin aksine, CONNECT yol normalizasyon sürecini tetiklemez. Bu davranış, korunan kaynaklara erişim için potansiyel bir yol açar. curl'da --path-as-is seçeneği ile birlikte CONNECT yöntemini kullanarak, standart yol normalizasyonunu atlayabilir ve potansiyel olarak kısıtlı alanlara ulaşabilirsiniz.

Aşağıdaki komut, bu davranışı nasıl istismar edeceğinizi göstermektedir:

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'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin