mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-18 00:53:43 +00:00
32 lines
3 KiB
Markdown
32 lines
3 KiB
Markdown
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
- Travaillez-vous dans une entreprise de cybersécurité? Voulez-vous voir votre entreprise annoncée dans HackTricks? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
|
|
|
- Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
|
|
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
|
|
- **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
|
|
- **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|
|
|
|
|
|
## Méthode CONNECT
|
|
|
|
En golang, la bibliothèque net/http transforme généralement le chemin en un chemin canonique avant d'y accéder :
|
|
|
|
* /flag/ -- Est répondu avec une redirection vers /flag
|
|
* /../flag --- Est répondu avec une redirection vers /flag
|
|
* /flag/. -- Est répondu avec une redirection vers /flag
|
|
|
|
Cependant, lorsque la méthode CONNECT est utilisée, cela ne se produit pas. Ainsi, si vous devez accéder à une ressource protégée, vous pouvez exploiter cette astuce :
|
|
```text
|
|
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)
|
|
|
|
La fonction `readRequest` est utilisée pour lire une requête HTTP à partir d'une connexion. Cette fonction est appelée par la fonction `readRequestHeader` qui lit la première ligne de la requête HTTP et la stocke dans la variable `req.Method`, `req.URL`, `req.Proto` et `req.ProtoMajor`. Ensuite, la fonction `readRequest` est appelée pour lire le corps de la requête HTTP et le stocker dans la variable `req.Body`. Si la requête HTTP contient un corps, la fonction `readRequest` utilise la fonction `io.LimitReader` pour limiter la taille du corps de la requête à la valeur spécifiée dans la variable `maxBytesReader`.
|