Neurohazard
暮雲煙月,皓首窮經;森羅萬象,如是我聞。

WebDAV 协议的简要介绍

wpadmin~September 6, 2018 /InfoSec/Software Engineering

WebDAV 协议的简要介绍

概要

一言蔽之,WebDAV 可以认为是一个 HTTP 协议的扩展 (Extension),提供远程服务器上的文件的增删查改操作,通常应用于网盘相关服务。
更多详情参考 https://en.wikipedia.org/wiki/WebDAV 简要翻译

常见服务端实现

一个 WebDAV Server 的 Golang 实现
https://github.com/hacdias/webdav

基于 Powershell 的 WebDAV
https://github.com/p3nt4/Invoke-TmpDavFS

PyWebDAV
https://pypi.org/project/PyWebDAV/

云服务提供商

参考 Providers
https://cyberduck.io/webdav/

常见客户端实现

Cyberduck / Mountain Duck
https://cyberduck.io/webdav/
https://mountainduck.io/

Python 的 WebDAV Client

webdavclient (推荐)
https://pypi.org/project/webdavclient/

PyDAV (不推荐)
http://users.sfo.com/~jdavis/Software/PyDAV/readme.html#client
https://github.com/yadutaf/pydav

Zope (不推荐)
https://github.com/zopefoundation/Zope
Zope 是一个 Python 实现的 Web 服务器,里面也有一部分实现 WebDAV Client 的代码。

部署指南

Golang 版 WebDAV 服务端部署指南

缺陷,不支持 Windows 的认证模式,只能通过 HTTP Auth 之类的认证方式。
客户端可以直接使用 Cyberduck。

下载后即可直接部署

wget https://github.com/hacdias/webdav/releases/download/v1.2.0/linux-amd64-webdav.tar.gz
tar -zxvf linux-amd64-webdav.tar.gz
./webdav --config webdav_conf.yml

使用 systemd 管理的案例
https://github.com/hacdias/webdav/blob/master/webdav.service.example

[Unit]
Description=WebDAV server
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/webdav --config /opt/webdav.config
Restart=on-failure

[Install]
WantedBy=multi-user.target

一个配置文件的案例,该服务器使用的配置文件格式为 YAML

scope: /home/team/develop
address: 0.0.0.0
port: 8080
tls: false
users:
  - username: admin
    password: admin
  - username: basic
    password: basic
    modify:   false
    rules:
      - regex: false
      - allow: false
      - path: /some/file

scope 为共享文件的目录。

Python版 服务端 部署指南

pip install PyWebDAV
davserver -D /media/C/Pentester/Powershell/PowerSploit -n -H 192.168.56.1 //启动webdav
# 默认开放端口为 8008
davserver -D /home/team/develop -n -H 192.168.248.128
# 查看帮助
davserver -h

可以直接使用 Cyberduck 匿名登陆。
在 Windows 直接映射到 文件管理器 (File Explorer)

#
# 添加映射到文件管理器
net use Z: http://admin:admin@192.168.248.128:8008/
# 解除映射
net use Z: /DELETE

其他参考资料

webdav是什么,有什么作用,应用场景是什么,不要概念?
https://www.zhihu.com/question/30719209

使用 Box 同步 OmniFocus 数据库
https://sspai.com/post/43256

OmniFocus 被过誉了吗?
https://www.zhihu.com/question/21006398

Leave a Reply

Your email address will not be published. Required fields are marked *