中间件安全-apache篇


前言

Apache 是世界使用排名第一的 Web 服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。

Apache解析漏洞

Apache 默认一个文件可以有多个以点分隔的后缀,当右边的后缀无法识别(不在 mime.tyoes 内),则继续向左识别。例如这样的一个文件:shell.php.xx.yy。当右边yy无法识别的时候就会往左边继续进行识别直到识别到apache可以解析的内容。

修复方法

在apache配置文件中把AddType application/x-httpd-php .php .html.phtml 删除掉即可,重启apache即可。

.htaccess文件解析

原理:.htaccess文件(或者”分布式配置文件”),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。

条件:

  • php5.6以下不带nts的版本
  • 服务器没有禁止.htaccess文件的上传,且服务商允许用户使用自定义.htaccess文件

一般出于安全性考虑根目录的AllowOverride属性一般都配置成不允许任何Override,即要设置为None。要想使.htaccess文件生效需要把None改成ALL。当是在测试过程中发现phpstudy无论是否修改都可以解析。。。。。具体可以看看该文章

所以开发过程中切忌不要使用集成环境,不够安全

img

上传文件.htaccess中代码为:

<FilesMatch "shell.jpg"> 
SetHandler application/x-httpd-php 
</FilesMatch>

该目录包括子目录下的所有名为shell.jpg的文件都会解析为php文件

Apache HTTPD 多后缀解析漏洞

Apache Httpd支持一个文件拥有多个后缀,不同的后缀执行不同的命令,也就是说当我们上传的文件中只要后缀名含有php,该文件就可以被解析成php文件,利用Apache httpd这个特性,就可以绕过上传文件的白名单。无关apache版本和php版本是用户配置错误漏洞

开发的错误配置:

AddHandler application/x-httpd-php .php

直接上传一个名为shell.php.jpg的文件,可以成功解析:

Apache HTTPD 换行解析漏洞

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

vulhub上的详细复现和环境:https://vulhub.org/#/environments/httpd/CVE-2017-15715/

个人复现:
利用vulhub提供的靶场环境上传文件,在php处做好标记:

img

在php后面插入\x0A,在把前面的标志删掉。

使用蚁剑进行连接可以成功利用:

apache提权-CVE-2019-0211

暂时没有复现成功,可以参考文章:https://paper.seebug.org/889/


文章作者: EASY
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 EASY !
 上一篇
中间件安全-nginx篇 中间件安全-nginx篇
前言Nginx 是一款轻量级Web 服务器、 反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 其特点是 占有内存少, 并发能力强(来自百度) Nginx解析漏洞该漏洞与nginx和php的版本无关属于用户配置错误的漏洞。如下是p
2020-08-05 EASY
下一篇 
某cms代码审计 某cms代码审计
前言好久没有进行代码审计了,今天空闲选了一个较为简单的MVC架构的CMS进行练练手。源码下载地址版本为3.8.6。 该cms使用了THINKPHP3.2.3框架进行开发,并且没有修复其历史漏洞,这是其有多个漏洞的一个重要原因。 前端多个sq
2020-08-03 EASY
  目录