Golang

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:

  • /flag/ gibi bir eğik çizgi (/) ile biten yollar, eğik çizgisiz karşılığına, yani /flag'a yönlendirilir.

  • /../flag gibi dizin geçiş dizileri içeren yollar basitleştirilir ve /flag'a yönlendirilir.

  • /flag/. gibi bir son nokta ile biten yollar da temiz yol olan /flag'a yönlendirilir.

Ancak, CONNECT yönteminin kullanımıyla bir istisna gözlemlenir. 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:

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

HackTricks'i Destekleyin

Last updated