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

11 KiB

WebDav


Utilice Trickest para construir y automatizar flujos de trabajo con las herramientas de la comunidad más avanzadas del mundo.
Obtenga acceso hoy:

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

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

Un servidor HTTP con WebDav activo es un servidor donde probablemente se puedan actualizar, eliminar, mover, copiar archivos. A veces se necesitan credenciales válidas (generalmente se comprueba con la autenticación básica HTTP).

Debe intentar cargar algún webshell y ejecutarlo desde el servidor web para tomar el control del servidor.
Por lo general, para conectar un servidor WebDav necesitará credenciales válidas: fuerza bruta de WebDav (Autenticación básica).

Otra configuración común es prohibir la carga de archivos con extensiones que serán ejecutados por el servidor web, debe verificar cómo burlar esto:

  • Cargar archivos con extensiones ejecutables (tal vez no esté prohibido).
  • Cargar archivos sin extensiones ejecutables (como .txt) e intentar renombrar el archivo (mover) con una extensión ejecutable.
  • Cargar archivos sin extensiones ejecutables (como .txt) e intentar copiar el archivo (mover) con una extensión ejecutable.

DavTest

Davtest intenta cargar varios archivos con diferentes extensiones y verifica si se ejecuta la extensión:

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

Salida de ejemplo:

Esto no significa que las extensiones .txt y .html se estén ejecutando. Esto significa que puedes acceder a estos archivos a través de la web.

Cadaver

Puedes usar esta herramienta para conectarte al servidor WebDav y realizar acciones (como subir, mover o eliminar) manualmente.

cadaver <IP>

Petición PUT

Description

Descripción

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 files on a web server.

El método HTTP PUT se utiliza para actualizar un recurso en un servidor. En el contexto de las aplicaciones web, este método se utiliza a menudo para actualizar archivos en un servidor web.

WebDAV (Web Distributed Authoring and Versioning) is an extension of the HTTP protocol that allows clients to perform remote Web content authoring operations. WebDAV is often used to manage files on a web server.

WebDAV (Web Distributed Authoring and Versioning) es una extensión del protocolo HTTP que permite a los clientes realizar operaciones de autoría de contenido web remoto. WebDAV se utiliza a menudo para gestionar archivos en un servidor web.

Vulnerability

Vulnerabilidad

The PUT method can be vulnerable to attacks if the server does not properly validate the input data. An attacker can use the PUT method to upload a malicious file to the server, or to modify an existing file to include malicious code.

El método PUT puede ser vulnerable a ataques si el servidor no valida correctamente los datos de entrada. Un atacante puede utilizar el método PUT para cargar un archivo malicioso en el servidor, o para modificar un archivo existente para incluir código malicioso.

Exploitation

Explotación

To exploit this vulnerability, an attacker can use a tool like curl to send a PUT request to the server with a malicious file as the payload. The attacker can then use the file to execute code on the server or to gain access to sensitive information.

Para explotar esta vulnerabilidad, un atacante puede utilizar una herramienta como curl para enviar una petición PUT al servidor con un archivo malicioso como carga útil. El atacante puede entonces utilizar el archivo para ejecutar código en el servidor o para acceder a información sensible.

Mitigation

Mitigación

To mitigate this vulnerability, the server should properly validate all input data and should only allow authorized users to perform PUT requests. Additionally, the server should be configured to limit the size and type of files that can be uploaded using the PUT method.

Para mitigar esta vulnerabilidad, el servidor debe validar correctamente todos los datos de entrada y sólo permitir a los usuarios autorizados realizar peticiones PUT. Además, el servidor debe estar configurado para limitar el tamaño y el tipo de archivos que se pueden cargar utilizando el método PUT.

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

Solicitud MOVE

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

Utilice Trickest para construir y automatizar fácilmente flujos de trabajo impulsados por las herramientas comunitarias más avanzadas del mundo.
Obtenga acceso hoy:

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

Vulnerabilidad WebDav en IIS5/6

Esta vulnerabilidad es muy interesante. El WebDav no permite cargar o renombrar archivos con la extensión .asp. Pero puedes burlar esto añadiendo al final del nombre ";.txt" y el archivo se ejecutará como si fuera un archivo .asp (también puedes usar ".html" en lugar de ".txt" pero NO olvides el ";").

Luego puedes cargar tu shell como un archivo ".txt" y copiar/moverlo a un archivo ".asp;.txt". Al acceder a ese archivo a través del servidor web, se ejecutará (cadaver dirá que la acción de mover no funcionó, pero sí lo hizo).

Publicar credenciales

Si el Webdav estaba usando un servidor Apache, deberías buscar en los sitios configurados en Apache. Comúnmente:
/etc/apache2/sites-enabled/000-default

Dentro de él, podrías encontrar algo como:

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

Como puedes ver, hay archivos con las credenciales válidas para el servidor webdav:

/etc/apache2/users.password

Dentro de este tipo de archivos encontrarás el nombre de usuario y un hash de la contraseña. Estas son las credenciales que el servidor webdav utiliza para autenticar a los usuarios.

Puedes intentar descifrar las credenciales, o añadir más si por alguna razón deseas acceder al servidor webdav:

htpasswd /etc/apache2/users.password <USERNAME> #You will be prompted for the password

Para comprobar si las nuevas credenciales funcionan, puedes hacer lo siguiente:

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


Utiliza Trickest para construir y automatizar flujos de trabajo con las herramientas de la comunidad más avanzadas del mundo.
Obtén acceso hoy mismo:

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