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

文件上传漏洞: .htaccess文件

1. 什么是 .htaccess 文件?

.htaccess(Hypertext Access,超文本访问)是 Apache Web 服务器使用的分布式配置文件。

核心特性包括:

  • 分布式:可以放置在网站目录树的任何目录中

  • 继承性:配置指令会影响所在目录及其所有子目录

  • 即时生效:修改后无需重启 Apache 服务器即可立即应用

2.htaccess 文件上传漏洞

.htaccess 文件上传漏洞是指攻击者能够将恶意的 .htaccess 文件上传到 Web 服务器可访问目录的安全漏洞。

漏洞成因主要条件:

  1. 存在文件上传功能 - 网站允许用户上传文件

  2. 过滤不严格 - 未正确验证上传文件的类型和内容

  3. 目录权限配置不当 - 上传目录允许 .htaccess 文件生效

3.攻击方式

攻击方式一:任意文件解析

恶意 .htaccess 内容:所有以 .jpg.png.txt 结尾的文件,都应该被当作PHP脚本来解析和执行,而不是作为图片或文本文件来处理。

# 方法1:使用 AddType
AddType application/x-httpd-php .jpg .png .txt
# 方法2:使用 SetHandler(更强大)
<FilesMatch "\.(jpg|png|gif|txt)$">SetHandler application/x-httpd-php
</FilesMatch>

攻击流程:

(1)上传恶意 .htaccess 文件

(2)上传包含 PHP 后门的图片文件 shell.jpg

(3)访问 http://target.com/uploads/shell.jpg 即可执行 PHP 代码

攻击方式二:源码泄露攻击

方式一:

RemoveHandler .php
RemoveType .php

含义解析:

  • RemoveHandler:移除指定文件扩展名的处理器关联

  • RemoveType:移除指定文件扩展名的 MIME 类型关联

  • .php:目标文件扩展名

当访问 某个php文件时,Apache 不再将其交给PHP解释器执行,而是作为普通的文本文件直接输出到浏览器,导致 PHP 源代码泄露。

方式二:

<Files *.php>SetHandler text/plain
</Files>

含义解析:

  • <Files *.php>:匹配所有 .php 文件的条件块

  • SetHandler text/plain:强制设置处理器为文本类型

PHP 文件不会被解释执行,而是以纯文本形式显示源代码。

攻击方式三:授权绕过攻击

# 移除对admin目录的认证要求
Satisfy Any
Order allow,deny
Allow from all

正常情况/admin 这样的敏感目录通常会有一个认证配置,要求用户输入用户名和密码。这个配置.htaccess 文件中,使用 AuthType BasicRequire valid-user 等指令。

攻击原理:

Satisfy Any:这是一个关键指令。它告诉服务器,满足 Allow 条件或成功通过身份认证,任一条件即可访问资源。

Order allow,deny 和 Allow from all:这两条指令组合在一起,表示允许来自任何IP地址的请求。

最终效果:由于设置了 Satisfy Any,服务器检查发现请求来自“所有”IP(满足了 Allow 条件),于是它直接跳过了密码认证步骤,允许任何人无密码访问 /admin 目录。

攻击方式四:重定向攻击

RewriteEngine On
RewriteRule ^login.php$ http://恶意网站/login.php [R=302,L]

攻击目标:网站的登录页面(如 login.php)。

攻击原理

(1)RewriteRule ^login.php$ ...:这是一个重写规则。^login.php$ 是一个正则表达式,精确匹配对 login.php 页面的请求

(2)http://恶意网站/login.php:这是规则的目标,即用户将被重定向到的地址。L 表示这是最后一条规则,如果匹配,就不再处理后续规则。

(3)R=302 表示这是一个临时重定向,浏览器会跳转到新地址;L 表示这是最后一条规则,如果匹配,就不再处理后续规则。

最终效果:当用户尝试访问正常网站/login.php 时,会被无缝重定向到一个看起来一模一样的钓鱼网站。用户在此输入用户名和密码,这些凭证就会被攻击者窃取。

#无限重定向循环
RewriteEngine On
RewriteRule ^(.*)$ /$1 [R=301,L]

攻击原​​​​​​​理:

(1)RewriteRule ^(.*)$ /$1:这个规则匹配任何请求 (.*),并将其重定向到 /$1$1 是前面括号捕获的内容,所以它本质上是重定向到它自己。

​​​​​​​(2)[R=301,L]301 是永久重定向。

最终效果:​​​​​​​

(1)对用户:浏览器会快速连续地收到重定向指令,最终显示“重定向过多”的错误,无法访问网站。

(2)对服务器:每一个请求都会触发这个规则,CPU 需要不断处理重定向逻辑。如果有大量并发请求,服务器资源(CPU、内存)会被迅速耗尽,导致整个网站瘫痪,形成拒绝服务攻击。

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

相关文章:

  • 【GD32】软件I2C
  • 温州产品推广网站服务网站建设方案
  • 08-docker综合应用
  • 电商网站建设与运营哦在线图片编辑助手
  • 十一款c++小游戏
  • 15-verilog的延时打拍问题记录
  • skynet.newservice接口分析
  • C# 中 Excel 工作表打印前页面边距的设置方法
  • uniapp学习【vue3在uniapp中语法,使用element】
  • 网站建设的基本流程和技术规范懒人免费建站模板
  • Linux的Ext文件系统:硬盘理解和inode及软硬链接
  • 可靠的媒体发稿网有哪些
  • 鸿蒙剪贴板服务的新特性
  • 上海外贸营销网站建设做app的模板下载网站
  • Linux中Tomcat部署项目
  • kanass入门到实战(16) - 如何管理产品
  • CAT-M:蜂窝物联网的基石与通信工程的精妙平衡
  • Flink 状态模式演进(State Schema Evolution)从原理到落地的一站式指南
  • 网站建设游戏开发专门做物理的网站
  • 计算机网络【第五章-传输层】
  • 打工人日报#20251011
  • 电子电气架构 ---安全车控操作系统介绍
  • python 网站开发入门wordpress获取文章
  • 苹果iOS26系统升级:液态玻璃与智能功能全解析
  • 第二十四讲:C++中的IO流
  • 上传头像到腾讯云对象存储-前端基于antdv
  • 百度智能建站系统深圳网站公司招聘信息
  • STM32单片机:基本定时器应用:PWM 生成(STM32L4xx)
  • 驱动开发-Linux启动
  • 【力扣】hot100系列(三)链表(二)(多解法+时间复杂度分析)