Apache解析漏洞

Posted Fool学安全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache解析漏洞相关的知识,希望对你有一定的参考价值。

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


一、漏洞描述

Apache HTTPD是一款HTTP服务器,其2.4.0~2.4.29版本中存在一个解析漏洞,在解析php时,1.phpx0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。该漏洞属于用户配置不当所产生,与具体中间件版本无关。


二、漏洞原理

查看index.php内容,代码如下:


这是一个文件上传的后端PHP代码,除了上传文件外,还要以POST请求方式传入参数name,其值作为文件上传后最后的名字,同时设置了黑名单过滤name值传递的带有黑名单信息的后缀。


再看一下配置文件信息,输入命令

“cat /etc/apache2/conf-availabl/docker-php.conf”,

如图所示。

Apache解析漏洞

前三行的内容意思是将所有以“.php”为后缀的文件内容当作PHP代码进行解析,但是却使用了“$”进行文件匹配,这就导致了漏洞的产生。这个符号在正则表达式中是匹配字符串中结尾的位置,若存在换行则匹配换行符为结尾,也就是说可以利用换行符使“$”与其匹配从而绕过黑名单机制实现文件上传。


三、漏洞环境搭建

Apache解析漏洞


四、漏洞复现

在文本框中写入上传后文件的名字,如:evil.php,选择一个带有phpinfo代码的PHP文件,利用BurpSuite抓包上传,按【Ctrl】+【R】快捷键发送至“Repeater”模块,如图所示。

Apache解析漏洞

在evil.php后插入空格,点击Hex,找到evil.php后空格所对应的十六进制:“20”(0x20),将其改为“0a”(0x0a),如图所示。

Apache解析漏洞

点击"Go”,访问http://192.168.194.165:8080/evil.php%0A,可以看到PHP代码已经被解析,如图所示。

Apache解析漏洞


Apache HTTPD 多后缀解析漏洞


一、漏洞描述

Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如,如下配置文件:

AddType text/html .html AddLanguage zh-CN .cn

其给.html后缀增加了media-type,值为text/html;给.cn后缀增加了语言,值为zh-CN。此时,如果用户请求文件index.cn.html,他将返回一个中文的html页面。

以上就是Apache多后缀的特性。如果运维人员给.php后缀增加了处理器:

AddHandler application/x-httpd-php .php

那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。


二、漏洞环境搭建

Apache解析漏洞


三、漏洞复现

(1)上传phpinfo.php.png文件:

Apache解析漏洞

成功解析:

Apache解析漏洞

(2)上传一句话木马:

Apache解析漏洞

执行命令:

Apache解析漏洞


Apache SSI 远程命令执行漏洞


一、漏洞描述

在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!--#exec cmd="id" -->语法执行任意命令。


二、漏洞环境搭建

环境启动后,访问http://your-ip:8080/upload.php,即可看到一个上传表单。

Apache解析漏洞


三、漏洞复现

正常上传PHP文件是不允许的,我们可以上传一个shell.shtml文件:

<!--#exec cmd="id" -->

成功上传,然后访问shell.shtml,可见命令已成功执行:

参考链接:

https://my.oschina.net/u/3076320/blog/4470775

https://vulhub.org/


以上是关于Apache解析漏洞的主要内容,如果未能解决你的问题,请参考以下文章

apache httpd 解析漏洞

Apache文件解析漏洞复现,CVE-2017-15715复现,Apache多后缀解析漏洞复现

Apache解析漏洞

Apache[多后缀文件名解析漏洞+换行解析漏洞+SSI远程命令执行漏洞]复现

NSATP-A学习笔记之Day4-2apache解析漏洞

Apache解析漏洞