20 lines
1.4 KiB
Markdown

{{#include ../../banners/hacktricks-training.md}}
## METHOD YA CONNECT
Katika lugha ya programu ya Go, ni kawaida kutumia mbinu ya kushughulikia maombi ya HTTP, hasa kwa kutumia maktaba ya `net/http`, ni uongofu wa kiotomatiki wa njia ya ombi kuwa katika muundo wa kawaida. Mchakato huu unajumuisha:
- Njia zinazomalizika na slash (`/`) kama `/flag/` zinaelekezwa kwa sawa zisizo na slash, `/flag`.
- Njia zinazojumuisha mfuatano wa kusafiri kwenye saraka kama `/../flag` zinarahisishwa na kuelekezwa kwa `/flag`.
- Njia zenye kipindi cha mwisho kama katika `/flag/.` pia zinaelekezwa kwa njia safi `/flag`.
Hata hivyo, kuna ubaguzi unaonekana na matumizi ya mbinu ya `CONNECT`. Tofauti na mbinu nyingine za HTTP, `CONNECT` haiamsha mchakato wa kuimarisha njia. Tabia hii inafungua njia inayoweza kutumika kupata rasilimali zilizolindwa. Kwa kutumia mbinu ya `CONNECT` pamoja na chaguo la `--path-as-is` katika `curl`, mtu anaweza kupita mchakato wa kawaida wa kuimarisha njia na kwa uwezekano kufikia maeneo yaliyopigwa marufuku.
Amri ifuatayo inaonyesha jinsi ya kutumia tabia hii:
```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](https://github.com/golang/go/blob/9bb97ea047890e900dae04202a231685492c4b18/src/net/http/server.go#L2354-L2364)
{{#include ../../banners/hacktricks-training.md}}