Apache解析漏洞主要是因为Apache默认一个文件可以有多个用.分割得后缀,当最右边的后缀无法识别(mime.types文件中的为合法后缀)则继续向左看,直到碰到合法后缀才进行解析(以最后一个合法后缀为准)

1.

如图,最后一个后缀名为.xxx,不合法,所以向左看,.php为合法后缀,所以以.php格式解析,可用来绕过黑名单过滤

2.AddHandler导致的解析漏洞

如果服务器给.php后缀添加了处理器:AddHandler application/x-httpd-php.php
那么,在有多个后缀的情况下,只要包含.php后缀的文件就会被识别出php文件进行解析,不需要是最后一个后缀,可绕过白名单过滤

如图,最后一个后缀名为.jpg,合法,因为文件名info.php.jpg中包含.php,所以解析为php文件

3.Apache换行解析漏洞(CVE-2017-15715)

影响范围:2.4.0-2.4.29版本
原因:合法后缀配置文件中的正则表达式中$不仅匹配字符串结尾位置,还可以匹配\n或\r,在解析php时,1.php\x0A将按照.php进行解析,而’.php\x0A’ != ‘.php’,可能过滤时过滤了.php但没有过滤.php\x0A从而实现绕过。
配置文件:过滤后缀名.php

<FilesMatch \.php$>SetHandler application/x-httpd-php
<FilesMatech>`>

测试代码:


<html>
<body><form action="" method="post" enctype="multipart/form-data"><input type="file" name="file" /><input type="text" name="name" /><input type="submit" value="上传文件" /></form>
</body>
</html>
<?php
if(isset($_FILES['file'])) {  $name = basename($_POST['name']); $ext = pathinfo($name,PATHINFO_EXTENSION); if(in_array($ext, ['php', 'php3', 'php4', 'php5', 'phtml', 'pht'])) {exit('bad file'); }
echo "ok"; move_uploaded_file($_FILES['file']['tmp_name'], './' . $name);
}
?>


验证是否上传成功

可以访问,并且文件夹中也出现文件

限制:获取文件名时不能用$_FILES[‘file’][‘name’],因为它会自动把换行去掉。

修复建议

1.升级到高版本
2.将上传的文件重命名为时间戳+随机数+.jpg格式并禁用上传文件目录执行脚本权限

Apache解析漏洞相关推荐

  1. 7z apache解析漏洞_解析漏洞(Web漏洞及防御)

    概述 Web容器解析漏洞会将其他类型的文件当作脚本语言的文件进行解析! (由于Web容器自身的漏洞,导致一些特殊文件被 IIS.apache.nginx 或其他 Web服务器在某种情况下解释成脚本文件 ...

  2. 利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单

    目标环境: 比如,目标存在一个上传的逻辑: <?php if(isset($_FILES['file'])) {$name = basename($_POST['name']);$ext = p ...

  3. php黑名单绕过,利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单

    我在代码审计知识星球里提到了Apache最新的一个解析漏洞(CVE-2017-15715): 除了帖子中说到的利用方法,我们还可以利用这个漏洞来绕过上传黑名单限制. 目标环境 比如,目标存在一个上传的 ...

  4. Apache解析漏洞CVE-2017-15715、apache_parsing_vulnerability、CVE-2021-40438 vulhub复现分析

    目录 前言: (一)漏洞简介 Apache目录结构 (二)apache_parsing_vulnerability 1.漏洞原理 2.漏洞修复 2.1 在httpd.conf或httpd-vhosts ...

  5. Apache 解析漏洞

    呜啦 ~~ 又太久没写博客啦 偶然间看到了这一篇文章,觉得写得还挺好的.下面是文章内容!!! Apache文件如何解析漏洞实例分析 我最为熟悉的便是Apache了,先来研究它的文件解析漏洞.百度许久, ...

  6. 文件解析漏洞总结-Apache

    Apache解析漏洞 多后缀名解析:xx.php.xxoo Apache认为一个文件可以有多个后缀名,例如:peak.txt.jpg.xx Apache的解析规则是从后(右)往前(左)依次判断后缀名, ...

  7. 【文件上传漏洞-07】中间件文件解析漏洞概述及实例——Apache、IIS和Nginx

    目录 1 Apache解析漏洞 1.1 概述 1.2 Apache解析漏洞实例 1.2.1 实验目的 1.2.2 实验环境 1.2.3 实验一:验证解析顺序漏洞 1.3 总结 2 IIS 解析漏洞 2 ...

  8. Apache与文件解析漏洞详解

    1. Apache介绍与服务搭建 1.1. apache介绍 Apache跨平台的纯粹的web服务器,负责接收处理/响应http请求,之所以说它是纯粹的web服务器,是因为apache对于html页面 ...

  9. Apache 文件解析漏洞SSRF漏洞原理介绍及代码

    Apache 文件解析漏洞 SSRF漏洞原理介绍及代码 1. Apache 环境简介 2. Apache 解析漏洞介绍 3. 解析漏洞利用演示 4.利用场景介绍 1. Apache 环境简介 ​ Ap ...

  10. 00截断上传绕过_【文件上传与解析】文件上传与解析漏洞总结v1.0

    点击上方"公众号" 可以订阅哦! Hello,各位小伙伴晚上好~ 这里是依旧勤劳写公众号的小编~ 今天本公众号将推出一个新的模块,那就是漏洞知识点总结模块!!!(此处应有掌声~) ...

最新文章

  1. 《自然语言处理入门》不是 NLP 学习路上的万能药
  2. 024_输入输出字符集
  3. 资源利用率监控与存储卷(pv/pvc)
  4. 一个调用其他activity的完整例子,使用了 onActivityResult和startActivityForResult
  5. mysql的分页查询
  6. 蓝桥练习-算法训练 最大最小公倍数
  7. IT第三阶段?“智慧的运算”的未解之谜
  8. windows无法发现任何计算机或设备,Win10系统提示windows无法与设备或资源通信如何解决...
  9. 【洛谷1341】无序字母对(欧拉回路)
  10. [emacs] Python代码补全的各种方法介绍以及对比
  11. 计算机组成原理—半导体随机存储器的基本结构
  12. Eclipse 反编译插件下载地址
  13. java面向接口编程
  14. IDT oligo使用说明
  15. pod健康检查详解(liveness,readiness,滚动更新)
  16. Recovered from a route's Handler('github.com/kataras/iris/mvc.(*ControllerActivator).handlerOf.func2
  17. 互联网最新创新创业项目
  18. Java并发编程:volatile关键字解析(学习总结-海子)
  19. 学习自旋电子学的笔记04:模拟自旋波在弯曲磁畴壁中传播
  20. MAC地址和IP地址说明

热门文章

  1. django 分拆views 提示 module ‘app001.views‘ has no attribute ‘xxx‘
  2. matlab 三维数组 二维,matlab三维数组变二维
  3. ZeroMQ史上最全的知识总结(一):常见的通讯模式
  4. mysql getvar_杰奇登录后的东西都是在session里面的
  5. 三思而行 --jsp基础篇
  6. Scala 函数式编程(一) 什么是函数式编程?
  7. 2021-03-29
  8. 阿里云部署RSSHub踩坑笔记
  9. 科创板交易规则知多少
  10. 疫情下,裁员补偿标准不可不知