复现CVE2017-15715漏洞(Apache HTTPD 换行解析漏洞)

前言——首先我这是在前辈的经验上自己动手做了这次实验,全都仰仗前辈的经验总结。

漏洞简介:

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

复现:

我是在kali环境下,预先已经装好了docker。

不知怎么下载docker的和安装的可以去vulhub上自行解决:漏洞搭建环境指导

下载漏洞集成环境vulhub:

git clone https://github.com/vulhub/vulhub.git

启动docker:

systemctl start docker

  1. 在物理机上创建目录
  2. mkdir -p /var/www/html、
  3. 然后创建个容器,并关联物理机的/var/www/html目录
  4. docker run -d -v /var/www/html:/var/www/html -p 8080:80 --name apache php:5.5-apache
  5. 再把物理机的/var/www/html开放写权限
  6. chmod 777 /var/www/html/

在html目录下编辑一个php文件,内容如下:

      该代码为模拟一个存在解析漏洞的环境

对这个代码进行分析的话,发现这里获取文件名是需要单独post一个name的,如果通过下面这样的方式就会把\0xa自动去除,也就不会造造成这个漏洞

$_FILES['file']['name']

接着创建一个index.html文件:

      内容如下:

这是创建了一个上传表单

我们创建一个php文件,内容如下:

直接将其上传会显示上传失败

将其上传后抓包,在Hex选项卡中name=你的php文件名.php后面0d的位置右键-Insert byte,添加一个0a,然后发包,成功上传

浏览器访问:ip:8080/x.php%0A成功解析

回车的(0D)是不行的,虽然能上传成功,但是无法解析

优秀复现文章:

CVE-2017-15715漏洞复现

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

你可能感兴趣的:(中间件漏洞)