hacktricks/network-services-pentesting/pentesting-web/golang.md

3.6 KiB
Raw Blame History

{% hint style="success" %} 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
{% endhint %}

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

{% hint style="success" %} AWS Hacking'i öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)

HackTricks'i Destekleyin
{% endhint %}