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

13 KiB

WebDav


Utilisez Trickest pour construire facilement et automatiser des flux de travail alimentés par les outils communautaires les plus avancés au monde.
Obtenez un accès aujourd'hui :

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

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 (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 valides identifiants : WebDav bruteforce (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 (ce n'est peut-être 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 différentes extensions et vérifie si l'extension est exécutée :

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

Output sample:

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

A PUT request is an HTTP method used to update or create a resource on a server. It is commonly used in WebDAV (Web Distributed Authoring and Versioning) to upload files to a remote server.

Une requête PUT est une méthode HTTP utilisée pour mettre à jour ou créer une ressource sur un serveur. Elle est couramment utilisée dans WebDAV (Web Distributed Authoring and Versioning) pour télécharger des fichiers vers un serveur distant.

How it works

Fonctionnement

To make a PUT request, the client sends an HTTP request to the server with the desired resource URL and includes the data to be uploaded in the request body. The server then processes the request and updates or creates the resource accordingly.

Pour effectuer une requête PUT, le client envoie une requête HTTP au serveur avec l'URL de la ressource souhaitée et inclut les données à télécharger dans le corps de la requête. Le serveur traite ensuite la requête et met à jour ou crée la ressource en conséquence.

WebDAV and PUT

WebDAV et PUT

In WebDAV, the PUT method is used to upload files to a remote server. It allows clients to create or update files on the server by sending a PUT request with the file data in the request body. The server then saves the file at the specified location.

Dans WebDAV, la méthode PUT est utilisée pour télécharger des fichiers vers un serveur distant. Elle permet aux clients de créer ou de mettre à jour des fichiers sur le serveur en envoyant une requête PUT avec les données du fichier dans le corps de la requête. Le serveur enregistre ensuite le fichier à l'emplacement spécifié.

Security Considerations

Considérations de sécurité

When using the PUT method, it is important to consider security implications. Without proper authentication and authorization mechanisms in place, an attacker could potentially upload malicious files or overwrite existing files on the server.

Lors de l'utilisation de la méthode PUT, il est important de prendre en compte les implications en matière de sécurité. Sans mécanismes d'authentification et d'autorisation appropriés, un attaquant pourrait potentiellement télécharger des fichiers malveillants ou écraser des fichiers existants sur le serveur.

To mitigate these risks, it is recommended to implement strong authentication and access control measures, such as requiring user credentials and validating file uploads to prevent unauthorized access or malicious file uploads.

Pour atténuer ces risques, il est recommandé de mettre en place des mesures d'authentification et de contrôle d'accès solides, telles que l'exigence de données d'identification de l'utilisateur et la validation des téléchargements de fichiers pour empêcher l'accès non autorisé ou les téléchargements de fichiers malveillants.

curl -T 'shell.txt' 'http://$ip'

Requête MOVE

The MOVE request is used in WebDAV to move a resource from one location to another. It is similar to the HTTP PUT request, but instead of creating a new resource, it moves an existing resource to a new location.

La requête MOVE est utilisée dans WebDAV pour déplacer une ressource d'un emplacement à un autre. Elle est similaire à la requête HTTP PUT, mais au lieu de créer une nouvelle ressource, elle déplace une ressource existante vers un nouvel emplacement.

Syntax

MOVE /source-resource HTTP/1.1
Host: example.com
Destination: /destination-resource

Example

MOVE /files/document.txt HTTP/1.1
Host: example.com
Destination: /archive/document.txt

In this example, the MOVE request moves the document.txt file from the /files directory to the /archive directory on the example.com server.

Dans cet exemple, la requête MOVE déplace le fichier document.txt du répertoire /files vers le répertoire /archive sur le serveur example.com.

curl -X MOVE --header 'Destination:http://$ip/shell.php' 'http://$ip/shell.txt'


Utilisez Trickest pour construire et automatiser facilement des flux de travail alimentés par les outils communautaires les plus avancés au monde.
Obtenez un 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).

Poster des identifiants

Si Webdav utilisait un serveur Apache, vous devriez regarder les sites configurés dans Apache. Généralement :
/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 les 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 davantage si, pour une raison quelconque, vous souhaitez accéder au serveur WebDAV :

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 :

wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥


Utilisez Trickest pour construire et automatiser facilement des workflows alimentés par les outils communautaires les plus avancés au monde.
Obtenez un accès aujourd'hui :

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}