hacktricks/network-services-pentesting/pentesting-web/put-method-webdav.md
2023-06-06 18:56:34 +00:00

11 KiB

WebDav

Use Trickest para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.
Obtenha acesso hoje:

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

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

Um servidor HTTP com WebDav ativo é um servidor onde você provavelmente pode atualizar, excluir, mover, copiar arquivos. Às vezes, você precisa ter credenciais válidas (geralmente verifique com Autenticação Básica HTTP).

Você deve tentar carregar algum webshell e executá-lo a partir do servidor web para assumir o controle do servidor.
Normalmente, para conectar um servidor WebDav, você precisará de credenciais válidas: WebDav brute force (Autenticação Básica).

Outra configuração comum é proibir o upload de arquivos com extensões que serão executados pelo servidor web, você deve verificar como burlar isso:

  • Carregue arquivos com extensões executáveis (talvez não seja proibido).
  • Carregue arquivos sem extensões executáveis (como .txt) e tente renomear o arquivo (mover) com uma extensão executável.
  • Carregue arquivos sem extensões executáveis (como .txt) e tente copiar o arquivo (mover) com extensão executável.

DavTest

Davtest tenta carregar vários arquivos com diferentes extensões e verifica se a extensão é executada:

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

Saída de exemplo:

Isso não significa que as extensões .txt e .html estão sendo executadas. Isso significa que você pode acessar esses arquivos pela web.

Cadaver

Você pode usar esta ferramenta para conectar-se ao servidor WebDav e realizar ações (como upload, mover ou excluir) manualmente.

cadaver <IP>

Requisição PUT


Description

The HTTP PUT method is used to update a resource on a server. In the context of web applications, this method is commonly used to update files on a web server. However, it can also be used to create new resources or overwrite existing ones.

Descrição

O método HTTP PUT é usado para atualizar um recurso em um servidor. No contexto de aplicações web, este método é comumente usado para atualizar arquivos em um servidor web. No entanto, ele também pode ser usado para criar novos recursos ou sobrescrever os existentes.


WebDAV PUT

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 WebDAV supports is the PUT method. This method allows clients to upload files to a Web server.

WebDAV PUT

WebDAV (Web Distributed Authoring and Versioning) é uma extensão do protocolo HTTP que permite que clientes realizem operações de autoria de conteúdo Web remotamente. Uma das operações que o WebDAV suporta é o método PUT. Este método permite que os clientes façam upload de arquivos para um servidor Web.


PUT Method Vulnerabilities

The PUT method can be vulnerable to several attacks, including:

  • File upload vulnerability: Attackers can use the PUT method to upload malicious files to a server, which can then be executed to compromise the server or steal sensitive data.

  • Directory traversal vulnerability: Attackers can use the PUT method to upload files to directories outside of the intended upload directory, potentially allowing them to access sensitive files or execute arbitrary code.

  • Overwriting sensitive files: Attackers can use the PUT method to overwrite sensitive files on a server, potentially causing denial of service or leaking sensitive information.

Vulnerabilidades do Método PUT

O método PUT pode ser vulnerável a vários ataques, incluindo:

  • Vulnerabilidade de upload de arquivo: Atacantes podem usar o método PUT para fazer upload de arquivos maliciosos para um servidor, que podem ser executados para comprometer o servidor ou roubar dados sensíveis.

  • Vulnerabilidade de travessia de diretório: Atacantes podem usar o método PUT para fazer upload de arquivos para diretórios fora do diretório de upload pretendido, potencialmente permitindo que eles acessem arquivos sensíveis ou executem código arbitrário.

  • Sobrescrevendo arquivos sensíveis: Atacantes podem usar o método PUT para sobrescrever arquivos sensíveis em um servidor, potencialmente causando negação de serviço ou vazamento de informações sensíveis.

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

Requisição MOVE

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

Use Trickest para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.
Obtenha acesso hoje:

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

Vulnerabilidade WebDav IIS5/6

Essa vulnerabilidade é muito interessante. O WebDav não permite o upload ou renomeação de arquivos com a extensão .asp. Mas você pode burlar isso adicionando ao final do nome ";.txt" e o arquivo será executado como se fosse um arquivo .asp (você também pode usar ".html" em vez de ".txt" mas NÃO esqueça do ";").

Então você pode fazer upload do seu shell como um arquivo ".txt" e copiá-lo/movê-lo para um arquivo ".asp;.txt". Ao acessar esse arquivo pelo servidor web, ele será executado (o cadaver dirá que a ação de movimento não funcionou, mas funcionou).

Postar credenciais

Se o Webdav estiver usando um servidor Apache, você deve procurar nos sites configurados no Apache. Comumente:
/etc/apache2/sites-enabled/000-default

Dentro dele, você pode 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 você pode ver, há arquivos com as credenciais válidas para o servidor webdav:

/etc/apache2/users.password

Dentro deste tipo de arquivos, você encontrará o nome de usuário e um hash da senha. Estas são as credenciais que o servidor webdav está usando para autenticar usuários.

Você pode tentar quebrá-las, ou adicionar mais se, por algum motivo, você quiser acessar o servidor webdav:

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

Para verificar se as novas credenciais estão funcionando, você pode fazer:

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


Use Trickest para construir e automatizar fluxos de trabalho facilmente, alimentados pelas ferramentas comunitárias mais avançadas do mundo.
Obtenha acesso hoje:

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