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}}
|
|
|
|
## CONNECT-metode
|
|
|
|
In die Go-programmeertaal is 'n algemene praktyk wanneer HTTP-versoeke hanteer word, spesifiek met die gebruik van die `net/http` biblioteek, die outomatiese omskakeling van die versoekpad in 'n gestandaardiseerde formaat. Hierdie proses behels:
|
|
|
|
- Pade wat eindig met 'n skuinsstreep (`/`) soos `/flag/` word herlei na hul nie-skuinsstreep teenhanger, `/flag`.
|
|
- Pade wat katalogus-traversie-sekwensies bevat soos `/../flag` word vereenvoudig en herlei na `/flag`.
|
|
- Pade met 'n agtereenvolgende punt soos in `/flag/.` word ook herlei na die skoon pad `/flag`.
|
|
|
|
Daar is egter 'n uitsondering met die gebruik van die `CONNECT` metode. Anders as ander HTTP-metodes, aktiveer `CONNECT` nie die padnormalisering proses nie. Hierdie gedrag open 'n potensiële pad om toegang te verkry tot beskermde hulpbronne. Deur die `CONNECT` metode saam met die `--path-as-is` opsie in `curl` te gebruik, kan 'n mens die standaard padnormalisering omseil en moontlik beperkte areas bereik.
|
|
|
|
Die volgende opdrag demonstreer hoe om hierdie gedrag te benut:
|
|
```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}}
|