hacktricks/network-services-pentesting/pentesting-web/put-method-webdav.md

146 lines
11 KiB
Markdown
Raw Normal View History

2022-05-01 13:25:53 +00:00
# WebDav
2022-04-28 16:01:33 +00:00
2022-09-30 10:43:59 +00:00
![](<../../.gitbook/assets/image (9) (1) (2).png>)
2022-09-01 23:40:55 +00:00
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour construire et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.\
2023-06-03 13:10:46 +00:00
Obtenez l'accès aujourd'hui :
2022-09-01 23:40:55 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<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>
2022-04-28 16:01:33 +00:00
* 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)
2023-06-03 13:10:46 +00:00
* 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)**.**
2023-06-03 13:10:46 +00:00
* **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).
2022-04-28 16:01:33 +00:00
</details>
Un serveur **HTTP avec WebDav** actif est un serveur où vous pouvez probablement **mettre à jour, supprimer, déplacer, copier** des fichiers. Parfois, vous avez besoin de **valides identifiants** (vérifiez généralement 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 **valides identifiants** : [**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** :
2023-06-03 13:10:46 +00:00
* **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**.
2022-05-01 13:25:53 +00:00
## DavTest
2023-06-03 13:10:46 +00:00
**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
```
![](<../../.gitbook/assets/image (19) (1).png>)
2023-06-03 13:10:46 +00:00
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>
```
2023-06-03 13:10:46 +00:00
## Requête PUT
```PUT``` is an HTTP method that is used to update or create a resource on a server. In the context of web applications, it is commonly used to update files on a web server.
2023-06-03 13:10:46 +00:00
```PUT``` est une méthode HTTP utilisée pour mettre à jour ou créer une ressource sur un serveur. Dans le contexte des applications web, elle est couramment utilisée pour mettre à jour des fichiers sur un serveur web.
2023-06-03 13:10:46 +00:00
WebDAV servers also support the ```PUT``` method, which allows clients to upload files to the server. This can be useful during a penetration test to upload a web shell or other malicious file to the server.
2023-06-03 13:10:46 +00:00
Les serveurs WebDAV prennent également en charge la méthode ```PUT```, qui permet aux clients de télécharger des fichiers sur le serveur. Cela peut être utile lors d'un test de pénétration pour télécharger un shell web ou un autre fichier malveillant sur le serveur.
2023-06-03 13:10:46 +00:00
To send a ```PUT``` request, you can use a tool like ```curl``` or ```wget```. Here is an example of using ```curl``` to upload a file to a WebDAV server:
2023-06-03 13:10:46 +00:00
Pour envoyer une requête ```PUT```, vous pouvez utiliser un outil comme ```curl``` ou ```wget```. Voici un exemple d'utilisation de ```curl``` pour télécharger un fichier sur un serveur WebDAV :
2023-06-03 13:10:46 +00:00
```
curl -X PUT -T localfile.txt http://example.com/remote/file/path.txt
```
2023-06-03 13:10:46 +00:00
In this example, ```localfile.txt``` is the file you want to upload, and ```http://example.com/remote/file/path.txt``` is the URL of the file on the server.
2023-06-03 13:10:46 +00:00
Dans cet exemple, ```localfile.txt``` est le fichier que vous souhaitez télécharger, et ```http://example.com/remote/file/path.txt``` est l'URL du fichier sur le serveur.
2023-06-03 13:10:46 +00:00
When sending a ```PUT``` request, it is important to ensure that the server is configured to only allow authorized users to upload files. Otherwise, an attacker could potentially upload malicious files to the server.
2023-06-03 13:10:46 +00:00
Lors de l'envoi d'une requête ```PUT```, il est important de s'assurer que le serveur est configuré pour n'autoriser que les utilisateurs autorisés à télécharger des fichiers. Sinon, un attaquant pourrait potentiellement télécharger des fichiers malveillants sur le serveur.
```
curl -T 'shell.txt' 'http://$ip'
```
2023-06-03 13:10:46 +00:00
## Requête MOVE
```
curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'
```
2022-09-30 10:43:59 +00:00
![](<../../.gitbook/assets/image (9) (1) (2).png>)
2022-09-01 23:40:55 +00:00
Utilisez [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) pour construire et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.\
2023-06-03 13:10:46 +00:00
Obtenez l'accès aujourd'hui :
2022-09-01 23:40:55 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Vulnérabilité IIS5/6 WebDav
2023-06-03 13:10:46 +00:00
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 dans 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).
2022-12-24 19:34:46 +00:00
![](<../../.gitbook/assets/image (18) (1) (1).png>)
## Poster des informations d'identification
Si le Webdav utilisait un serveur Apache, vous devriez regarder les sites configurés dans Apache. Couramment :\
_**/etc/apache2/sites-enabled/000-default**_
2023-06-03 13:10:46 +00:00
À 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
```
2023-06-03 13:10:46 +00:00
Comme vous pouvez le voir, il y a des fichiers avec les **identifiants** valides pour le serveur **webdav** :
```
/etc/apache2/users.password
```
2023-06-03 13:10:46 +00:00
À 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 davantage** 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
```
2023-06-03 13:10:46 +00:00
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
```
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<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>
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
* 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)**.**
2023-06-03 13:10:46 +00:00
* **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).
2022-04-28 16:01:33 +00:00
</details>
2022-09-01 23:40:55 +00:00
2022-09-30 10:43:59 +00:00
![](<../../.gitbook/assets/image (9) (1) (2).png>)
2022-09-01 23:40:55 +00:00
\
2023-06-03 13:10:46 +00:00
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 :
2022-09-01 23:40:55 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}