CVE-2017-15715漏洞复现

复现环境

docke

apache 2.4.0到2.4.29即可

php5.5

 

复现过程

先在物理机上创建目录

mkdir -p /var/www/html

然后创建个容器,并关联物理机的/var/www/html目录

docker run -d -v /var/www/html:/var/www/html -p 8080:80 --name apache php:5.5-apache

再把物理机的/var/www/html开放写权限

chmod 777 /var/www/html/

写一个文件上传的php

这里过滤了php,php3,php4,php5,phtml,pht

访问下抓包

CVE-2017-15715漏洞复现_第1张图片

然后更改请求方式和内容类型

CVE-2017-15715漏洞复现_第2张图片

 

上传一个1.php文件,会被拦截

CVE-2017-15715漏洞复现_第3张图片

上传个2.txt,上传正常

CVE-2017-15715漏洞复现_第4张图片

CVE-2017-15715漏洞复现_第5张图片

在上传个3.php并在文件名后面添加0a

CVE-2017-15715漏洞复现_第6张图片

CVE-2017-15715漏洞复现_第7张图片

上传成功

 

 

CVE-2017-15715漏洞复现_第8张图片

访问xxx/3.php%0a发现解析成功

CVE-2017-15715漏洞复现_第9张图片

 

后记

1. 默认的Apache配置文件即可利用,因为Apache配置使用了:

    

SetHandler application/x-httpd-php

后来测试发现回车的(0D)是不行的,虽然能上传成功,但是无法解析

CVE-2017-15715漏洞复现_第10张图片

CVE-2017-15715漏洞复现_第11张图片

火狐

CVE-2017-15715漏洞复现_第12张图片

谷歌

CVE-2017-15715漏洞复现_第13张图片

2. 获取文件名时不能用$_FILES['file']['name'],因为他会自动把换行去掉,这一点有点鸡肋

 

 

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