hacktricks/network-services-pentesting/pentesting-web/put-method-webdav.md
2023-06-03 13:10:46 +00:00

173 lines
11 KiB
Markdown

# WebDav
![](<../../.gitbook/assets/image (9) (1) (2).png>)
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour créer et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.\
Obtenez l'accès aujourd'hui :
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<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 [**NFT**](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>
Un serveur **HTTP avec WebDav** actif est un serveur où vous pouvez probablement **mettre à jour, supprimer, déplacer, copier** des fichiers. Parfois, vous devez avoir des **identifiants valides** (généralement vérifiés avec l'authentification de base HTTP).
Vous devriez essayer de **télécharger** un **webshell** et de l'**exécuter** depuis le serveur Web pour prendre le contrôle du serveur.\
Généralement, pour **se connecter** à un serveur WebDav, vous aurez besoin de **crédits valides** : [**WebDav bruteforce**](../../generic-methodologies-and-resources/brute-force.md#http-basic-auth) _(Authentification de base)_.
Une autre configuration courante consiste à **interdire le téléchargement** de fichiers avec des **extensions** qui seront **exécutées** par le serveur Web. Vous devriez vérifier comment **contourner cela** :
* **Téléchargez** des fichiers avec des **extensions exécutables** (peut-être n'est-ce pas interdit).
* **Téléchargez** des fichiers **sans extensions exécutables** (comme .txt) et essayez de **renommer** le fichier (déplacer) avec une **extension exécutable**.
* **Téléchargez** des fichiers **sans extensions exécutables** (comme .txt) et essayez de **copier** le fichier (déplacer) avec une **extension exécutable**.
## DavTest
**Davtest** essaie de **télécharger plusieurs fichiers avec des extensions différentes** et **vérifie** si l'extension est **exécutée** :
```bash
davtest [-auth user:password] -move -sendbd auto -url http://<IP> #Uplaod .txt files and try to move it to other extensions
davtest [-auth user:password] -sendbd auto -url http://<IP> #Try to upload every extension
```
Sortie d'exemple :
![](<../../.gitbook/assets/image (19) (1).png>)
Cela ne signifie pas que les extensions **.txt** et **.html sont exécutées**. Cela signifie que vous pouvez **accéder à ces fichiers** via le web.
## Cadaver
Vous pouvez utiliser cet outil pour **vous connecter au serveur WebDav** et effectuer des actions (comme **télécharger**, **déplacer** ou **supprimer**) **manuellement**.
```
cadaver <IP>
```
## Requête PUT
---
### Description
### Description
The HTTP PUT method is used to update a resource on a server. In the context of web applications, this method is often used to update an existing file on a web server.
La méthode HTTP PUT est utilisée pour mettre à jour une ressource sur un serveur. Dans le contexte des applications web, cette méthode est souvent utilisée pour mettre à jour un fichier existant sur un serveur web.
---
### PUT request with WebDAV
### Requête PUT avec WebDAV
WebDAV (Web Distributed Authoring and Versioning) is an extension of the HTTP protocol that allows clients to perform remote Web content authoring operations. One of the operations that can be performed with WebDAV is file upload via PUT request.
WebDAV (Web Distributed Authoring and Versioning) est une extension du protocole HTTP qui permet aux clients d'effectuer des opérations d'auteur de contenu Web à distance. L'une des opérations qui peuvent être effectuées avec WebDAV est le téléchargement de fichiers via une requête PUT.
---
### PUT request with WebDAV and Workspace
### Requête PUT avec WebDAV et Workspace
In Workspace, the PUT method can be used to upload files to the platform. This can be done through the WebDAV interface, which allows users to access their Workspace files as if they were on a local drive.
Dans Workspace, la méthode PUT peut être utilisée pour télécharger des fichiers sur la plateforme. Cela peut être fait via l'interface WebDAV, qui permet aux utilisateurs d'accéder à leurs fichiers Workspace comme s'ils étaient sur un lecteur local.
---
### PUT request with WebDAV and AWS S3
### Requête PUT avec WebDAV et AWS S3
In AWS S3, the PUT method can be used to upload files to a bucket. This can be done through the AWS S3 API or through the WebDAV interface.
Dans AWS S3, la méthode PUT peut être utilisée pour télécharger des fichiers dans un compartiment. Cela peut être fait via l'API AWS S3 ou via l'interface WebDAV.
---
### PUT request with WebDAV and GCP Cloud Storage
### Requête PUT avec WebDAV et GCP Cloud Storage
In GCP Cloud Storage, the PUT method can be used to upload files to a bucket. This can be done through the GCP Cloud Storage API or through the WebDAV interface.
Dans GCP Cloud Storage, la méthode PUT peut être utilisée pour télécharger des fichiers dans un compartiment. Cela peut être fait via l'API GCP Cloud Storage ou via l'interface WebDAV.
```
curl -T 'shell.txt' 'http://$ip'
```
## Requête MOVE
```
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
```
![](<../../.gitbook/assets/image (9) (1) (2).png>)
Utilisez [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) pour créer et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.\
Obtenez l'accès aujourd'hui :
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Vulnérabilité WebDav IIS5/6
Cette vulnérabilité est très intéressante. Le **WebDav** ne permet pas de télécharger ou de renommer des fichiers avec l'extension **.asp**. Mais vous pouvez contourner cela en ajoutant à la fin du nom **";.txt"** et le fichier sera exécuté comme s'il s'agissait d'un fichier .asp (vous pouvez également utiliser ".html" au lieu de ".txt" mais n'oubliez pas le ";" ).
Ensuite, vous pouvez télécharger votre shell en tant que fichier ".**txt"** et le copier/déplacer vers un fichier ".asp;.txt". En accédant à ce fichier via le serveur web, il sera exécuté (cadaver indiquera que l'action de déplacement n'a pas fonctionné, mais c'est le cas).
![](<../../.gitbook/assets/image (18) (1) (1).png>)
## Publier des informations d'identification
Si Webdav utilisait un serveur Apache, vous devriez regarder les sites configurés dans Apache. Couramment :\
_**/etc/apache2/sites-enabled/000-default**_
À l'intérieur, vous pourriez trouver quelque chose comme :
```
ServerAdmin webmaster@localhost
Alias /webdav /var/www/webdav
<Directory /var/www/webdav>
DAV On
AuthType Digest
AuthName "webdav"
AuthUserFile /etc/apache2/users.password
Require valid-user
```
Comme vous pouvez le voir, il y a des fichiers avec les **identifiants** valides pour le serveur **webdav** :
```
/etc/apache2/users.password
```
À l'intérieur de ce type de fichiers, vous trouverez le **nom d'utilisateur** et un **hash** du mot de passe. Ce sont les informations d'identification que le serveur WebDAV utilise pour authentifier les utilisateurs.
Vous pouvez essayer de les **craquer**, ou en **ajouter d'autres** si pour une raison quelconque vous souhaitez **accéder** au serveur **WebDAV** :
```bash
htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password
```
Pour vérifier si les nouvelles informations d'identification fonctionnent, vous pouvez faire :
```bash
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
```
<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** 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>
![](<../../.gitbook/assets/image (9) (1) (2).png>)
\
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour construire et **automatiser des workflows** alimentés par les outils communautaires les plus avancés au monde.\
Obtenez l'accès aujourd'hui :
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}