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

Apache HTTPD 换行解析漏洞

CVE-2017-15715漏洞简介

组件版本漏洞名称

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

漏洞描述

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

原理

apache-CVE-2017-15715 的出现是由于apache 在修复第一个后缀名解析漏洞时,使用 正则表达式匹配后缀,在解析php时xxx.php\x0A 将被php后缀进行解析,导致绕过一些服务器的安全策略

影响版本

Apache HTTPd 2.4.0~2.4.29

漏洞环境

编译及运行漏洞环境:

sudo docker-compose up -d

Apache HTTPD (CVE-2017-15715)换行解析漏洞复现_第1张图片

查看使用端口:

Apache HTTPD (CVE-2017-15715)换行解析漏洞复现_第2张图片

启动后Apache运行在http://10.9.75.58:8083

访问页面:

Apache HTTPD (CVE-2017-15715)换行解析漏洞复现_第3张图片

漏洞复现

上传一个名为info.php的文件,被拦截:

Apache HTTPD (CVE-2017-15715)换行解析漏洞复现_第4张图片

我们将evil.php 改为info.php. ,然后打开十六进制:

Apache HTTPD (CVE-2017-15715)换行解析漏洞复现_第5张图片

打开十六进制,将. 对应的十六进制改为0a:

Apache HTTPD (CVE-2017-15715)换行解析漏洞复现_第6张图片

然后提交:

Apache HTTPD (CVE-2017-15715)换行解析漏洞复现_第7张图片

发现上传成功。

我们访问一下上传的文件,注意:因为我们上面加上了0a,所以我们在访问时要加上%0a :

Apache HTTPD (CVE-2017-15715)换行解析漏洞复现_第8张图片

​ 除了在十六进制里面加0a外,还可以在info.php后面插入一个\x0A(注意,不能是\x0D\x0A,只能是一个\x0A),不再拦截:

Apache HTTPD (CVE-2017-15715)换行解析漏洞复现_第9张图片

你可能感兴趣的:(漏洞复现,apache,网络安全,运维,安全)