首页 > 其他分享 >【漏洞复现】Apache HTTPD 换行解析漏洞 (CVE-2017-15715)

【漏洞复现】Apache HTTPD 换行解析漏洞 (CVE-2017-15715)

时间:2023-03-12 22:14:50浏览次数:35  
标签:HTTPD 解析 漏洞 PHP Apache CVE php

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


0x01 漏洞描述

Apache HTTPD是一款HTTP服务器,它可以通过mod_PHP来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,shell.PHP\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

0x02 影响版本

Apache HTTPD 2.4.0~2.4.29

0x03 漏洞分析

此漏洞的出现是由于 apache 在修复第一个后缀名解析漏洞时,用正则来匹配后缀。在解析 php 时 xxx.php\x0A 将被按照 php 后缀进行解析,导致绕过一些服务器的安全策略。

index.php源码:

<?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');
    }
    move_uploaded_file($_FILES['file']['tmp_name'], './' . $name);
} else {

?>

<!DOCTYPE html>
<html>
<head>
        <title>Upload</title>
</head>
<body>
<form method="POST" enctype="multipart/form-data">
        <p>
                <label>file:<input type="file" name="file"></label>
        </p>
        <p>
                <label>filename:<input type="text" name="name" value="evil.php"></label>
        </p>
        <input type="submit">
</form>
</body>
</html>

<?php
}
?>

以POST请求方式传入参数name,并通过设置黑名单来过滤后缀。

配置文件:

#cat /etc/apache2/conf-available/docker-php.conf

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

DirectoryIndex disabled
DirectoryIndex index.php index.html

<Directory /var/www/>
        Options -Indexes
        AllowOverride All
</Directory>

.php$使用$来匹配以.php为后缀的文件,那么在文件名后插入换行符\x0A则可以绕过php黑名单,实现文件上传。

0x04 漏洞复现

使用vulhub靶场,编译运行漏洞环境:

cd vulhub/httpd/CVE-2017-15715
docker-compose build
docker-compose up -d

访问http://ip:8080,显示如下页面:

正常上传php文件,返回bad file

修改name参数值,点击hex,找到文件名,在.php后插入一个换行符\x0A,文件上传成功

访问http://ip:8080/evil.php%0a,出现phpinfo信息,说明上传后解析成功。

0x05 修复建议

  1. 升级版本
  2. 利用时间戳、随机数等方法对上传文件进行重命名
  3. 禁止上传文件执行

标签:HTTPD,解析,漏洞,PHP,Apache,CVE,php
From: https://www.cnblogs.com/0dot7/p/17209300.html

相关文章

  • shiro-550反序列化漏洞分析
    0x00环境搭建首先下载有漏洞的版本https://codeload.github.com/apache/shiro/zip/refs/tags/shiro-root-1.2.4配置samples/web的pom文件配置tomcat配置......
  • 文件包含漏洞(学习中)
    b站蜗牛学院课2-P121所用虚拟机地址:192.168.112.188所用本机地址:192.168.112.1一、本地文件包含1.源代码在虚拟机的security/fileinc.php文件中写入如下代码:<?php......
  • Zip Slip漏洞审计实战
    前言最近看到许少的推有说到ZipSlip这个漏洞导致的RCE,其实我在代码审计的时候确实发现有不少功能模块都是使用ZIP来解压,其实还是在真实系统中经常见到的。于是想着好久......
  • 禅道系统权限绕过与命令执行漏洞分析
    漏洞概述禅道是第一款国产的开源项目管理软件,也是国内最流行的项目管理软件。该系统在2023年初被爆出在野命令执行漏洞,官方已于2023年1月12日发布了漏洞修复补丁。该漏洞是......
  • 玩转CodeQLpy之用友GRP-U8漏洞挖掘
    0x01前言CodeQLpy是作者使用python3实现的基于CodeQL的java代码审计工具,github地址https://github.com/webraybtl/CodeQLpy。通过CodeQLpy可以辅助代码审计人员快速定位代......
  • CVE-2016-3348漏洞分析
    0x00漏洞信息漏洞影响:本地提权漏洞文件:win32kfull.sys漏洞函数:GreDoBanding漏洞原因:释放重引用漏洞日期: 2016年9月13日【漏洞分析合集】0x01漏洞分析win32kf......
  • 开源API越权漏洞检测系统推荐:IDOR_detect_tool
    相信大部分读者跟我一样,每天都在写各种API为Web应用提供数据支持,那么您是否有想过您的API是否足够安全呢?Web应用的安全是网络安全中不可忽视的关键方面。我们必须确保其We......
  • GitHub 漏洞:黑客窃取了 GitHub Desktop 和 Atom 的代码签名证书
    GitHub披露,未知的威胁行为者设法泄露了与适用于Mac和Atom应用程序的某些版本的GitHubDesktop有关的加密代码签名证书。因此,该公司出于谨慎考虑采取了吊销暴露......
  • TypechoCMS 反序列化漏洞
    前言这学期的专业实习周的第七个实验:TypechoCMS反序列化漏洞的代码审计,因为是学校的实验内容,所以难度也会比较低一些环境搭建TypechoCMS官方:https://typecho.org/漏......
  • Pwn2Own Austin 2021 Cisco RV34x RCE 漏洞链复现
    前言这个RCE漏洞利用链的实现是由几个逻辑洞的结合而导致的,这几天我花了一些时间复现了一遍,在此记录一下。固件解压我下载的是RV345v1.0.03.24,从官网下载到压缩包解压......