hacktricks/network-services-pentesting/pentesting-web/put-method-webdav.md
2023-08-03 19:12:22 +00:00

12 KiB
Raw Blame History

WebDav


使用Trickest可以轻松构建和自动化由全球最先进的社区工具提供支持的工作流程。
立即获取访问权限:

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

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

一个启用了WebDav的HTTP服务器可能允许你更新、删除、移动、复制文件。有时候你需要有有效的凭证通常使用HTTP基本身份验证进行检查

你应该尝试上传一些webshell并从Web服务器上执行它,以控制服务器。
通常,要连接到WebDav服务器你需要有效的凭证WebDav暴力破解 (基本身份验证)

另一种常见的配置是禁止上传由Web服务器执行的文件扩展名,你应该检查如何绕过此限制

  • 上传具有可执行扩展名的文件(也许不被禁止)。
  • 上传没有可执行扩展名的文件(如.txt并尝试使用可执行扩展名重命名(移动)文件。
  • 上传没有可执行扩展名的文件(如.txt并尝试使用可执行扩展名复制文件。

DavTest

Davtest尝试使用不同的扩展名上传多个文件检查扩展名是否被执行

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

输出示例:

这并不意味着 .txt.html 扩展名被执行。这意味着你可以通过网络 访问这些文件

Cadaver

你可以使用这个工具来 连接到 WebDav 服务器并 手动 执行操作(如 上传移动删除)。

cadaver <IP>

PUT请求

The PUT method is used to update or create a resource on a server. It is commonly used in web development to upload files or modify existing resources. When sending a PUT request, the client specifies the URI of the resource to be updated or created, and includes the new data in the request body.

PUT请求用于在服务器上更新或创建资源。它通常用于Web开发中上传文件或修改现有资源。在发送PUT请求时客户端指定要更新或创建的资源的URI并在请求体中包含新数据。

WebDAV and PUT

WebDAV (Web Distributed Authoring and Versioning) is an extension of the HTTP protocol that allows for more advanced file management on web servers. It includes support for the PUT method, among other features.

WebDAVWeb分布式作者和版本控制是HTTP协议的扩展允许在Web服务器上进行更高级的文件管理。它包括对PUT方法的支持以及其他功能。

PUT Method and Web Application Security

From a security perspective, the PUT method can introduce vulnerabilities if not properly implemented. For example, if the server does not validate the user's permissions before updating or creating a resource, an attacker could potentially modify sensitive data or upload malicious files.

从安全角度来看如果没有正确实现PUT方法它可能会引入漏洞。例如如果服务器在更新或创建资源之前不验证用户的权限攻击者可能会修改敏感数据或上传恶意文件。

Exploiting PUT Method Vulnerabilities

To exploit vulnerabilities related to the PUT method, an attacker can send a crafted PUT request with malicious data or files. This can lead to various types of attacks, such as remote code execution, file inclusion, or information disclosure.

为了利用与PUT方法相关的漏洞攻击者可以发送一个精心构造的PUT请求其中包含恶意数据或文件。这可能导致各种类型的攻击例如远程代码执行、文件包含或信息泄露。

Protecting Against PUT Method Vulnerabilities

To protect against vulnerabilities related to the PUT method, it is important to implement proper security measures. This includes validating user permissions, sanitizing user input, and implementing access controls to prevent unauthorized access or modification of resources.

为了防止与PUT方法相关的漏洞重要的是要实施适当的安全措施。这包括验证用户权限、对用户输入进行清理并实施访问控制以防止未经授权的访问或修改资源。

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

MOVE 请求

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

MOVE 请求在 WebDAV 中用于将资源从一个位置移动到另一个位置。它类似于 HTTP 的 PUT 方法,但不是创建新的资源,而是将现有资源移动到新的位置。

Syntax

MOVE /path/to/source HTTP/1.1
Host: example.com
Destination: /path/to/destination

Example

MOVE /file.txt HTTP/1.1
Host: example.com
Destination: /new/location/file.txt

In this example, the file file.txt located at /path/to/source on the server example.com is moved to /path/to/destination on the same server.

在这个例子中,位于服务器 example.com 上的 /path/to/source 的文件 file.txt 被移动到同一服务器上的 /path/to/destination

Response

The server should respond with a 200 OK status code if the move operation is successful. If the destination already exists, the server may choose to overwrite it or return a 412 Precondition Failed status code.

如果移动操作成功,服务器应该以 200 OK 状态码进行响应。如果目标位置已经存在,服务器可以选择覆盖它或返回 412 Precondition Failed 状态码。

Security Implications

The MOVE request can be used by an attacker to move sensitive files to a location accessible to them, potentially exposing sensitive information or compromising the system's integrity.

攻击者可以使用 MOVE 请求将敏感文件移动到他们可以访问的位置,从而可能暴露敏感信息或破坏系统的完整性。

It is important to properly configure access controls and permissions to prevent unauthorized access and abuse of the MOVE request.

重要的是要正确配置访问控制和权限,以防止未经授权的访问和滥用 MOVE 请求。

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

使用Trickest可以轻松构建和自动化由全球最先进的社区工具提供支持的工作流程。
立即获取访问权限:

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

IIS5/6 WebDav漏洞

这个漏洞非常有趣。WebDav不允许上传或重命名扩展名为**.asp的文件。但是,您可以通过在名称末尾添加";.txt"来绕过此限制,文件将被执行,就像它是一个.asp文件一样您也可以使用".html"代替".txt",但不要忘记";"**)。

然后您可以将您的shell上传为".txt"文件,并将其复制/移动到".asp;.txt"文件中。通过Web服务器访问该文件它将被执行cadaver会说移动操作失败但实际上是成功的

提交凭据

如果Webdav使用的是Apache服务器则应查看Apache中配置的站点。通常在
/etc/apache2/sites-enabled/000-default

在其中,您可能会找到类似以下内容的东西:

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

正如您所看到的,这里有一个包含webdav服务器的有效凭据的文件:

/etc/apache2/users.password

在这类文件中,您将找到用户名密码的哈希值。这些是WebDAV服务器用于验证用户的凭据。

您可以尝试破解它们,或者如果出于某种原因您想要访问WebDAV服务器可以添加更多凭据:

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

要检查新凭据是否有效,可以执行以下操作:

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


使用Trickest可以轻松构建和自动化工作流程,使用世界上最先进的社区工具。
立即获取访问权限:

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