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

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

漏洞描述

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

影响版本

Apache HTTPd 2.4.0~2.4.29

环境搭建

$ git clone https://github.com/vulhub/vulhub.git
$ cd vulhub/httpd/CVE-2017-15715
$ sudo docker-compose build
$ sudo docker-compose up -d

访问http://ip:8080/,出现以下页面即为环境搭建成功

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

漏洞复现

上传php后门文件,shell.php

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

文件上传失败

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

抓取数据包,在shell.php后面插入一个0a,上传成功

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

访问url,php代码执行成功

http://ip:8080/shell.php%0A 

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

Apache HTTPD 多后缀解析漏洞

漏洞描述

预备知识

在对漏洞介绍之前我们先对httpd.conf文件进行一个介绍,httpd.conf是apache的一个总配置文件,在该文件中,有很多对apache解析网页参数的设置,我们挑三个来介绍

  • AddType:为特定后缀的文件指定MIME类型
  • AddLanguage:一个HTML文档可以同时具备多个语言的版本,如对于file1.html文档可以具备file1.html.en、file1.html.cn等不同的版本,每个语言后缀可以使用AddLanguage进行定义;这样服务器可以针对不同国家的客户,通过与浏览器进行协商,发送不同的语言版本
  • AddHandler:用于指定非静态的处理类型,用指定的方式处理非静态文档后,再向浏览器返回处理结果

有了这个基础之后,我们再来讲解漏洞原理

apache解析的特性

Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令,比如,我们在httpd.conf中添加如下配置文件

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

此时,如果用户请求文件index.cn.html,他将返回一个中文的html页面(.cn后缀对应的AddLanguage是zh-CN,.html对应的AddType是text/html,.html和.cn标记的属性同时被apache执行了),那么,如果在apache配置文件中添加了php对应的解析的话,我们上传的文件中只要包含.php,php文件就会被执行

# 在配置文件中添加此项,将会造成一个可以绕过上传白名单的解析漏洞
AddHandler application/x-httpd-php .php

影响版本

跟服务器配置有关,与apache版本无关

环境搭建

$ git clone https://github.com/vulhub/vulhub.git
$ cd vulhub/httpd/apache_parsing_vulnerability
$ sudo docker-compose build
$ sudo docker-compose up -d

访问http://ip/,出现以下页面即为环境搭建成功

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

漏洞复现

我们查看一下apache的配置文件

# 在vulhub/httpd/apache_parsing_vulnerability/conf目录下
$ cat docker-php.conf
AddHandler application/x-httpd-php .php

DirectoryIndex disabled
DirectoryIndex index.php index.html

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

可以看到添加了对php文件的解析设置:AddHandler application/x-httpd-php .php

上传php文件

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

上传失败

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

将shell.php,修改为shell.php.png

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

上传成功,访问:http://ip/uploadfiles/shell.php.png ,php代码执行成功

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

参考连接

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

上一篇:html-css


下一篇:自己封裝的深拷貝方法js