mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
20 lines
1.4 KiB
Markdown
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}}
|