Apache最新解析漏洞:CVE-2017-15715复现

栏目:旅游资讯  时间:2023-08-06
手机版

  原理

  Apache官网给出的漏洞信息

  翻译过来

  参考链接:http://httpd.apache.org/security/vulnerabilities_24.html

  什么是?

  在apache配置文件中用来做访问控制之用,比如可配置某目录下,禁止访问PHP文件。

  如何利用??

  在默认配置下, “上传”一个带“换号符”的php文件上去,使用http://ip/test.php%0a访问,可直接解析PHP内容。

  如下图,已上传一个“6.php换行符”文件。(上传过程后文有记载,在linux可使用如下方法发现文件名后面有换行符:“cat 文件名前部分+Tab键”,如cat 6.p+Tab键)

  浏览器访问:http://192.168.131.136/upload/upload-labs/master/upload//6.php%0a(访问链接最后加%0a)

  不加%0a会显示无此文件

  Apache情况说明

  默认情况下,apache2.4.x使用了(在/etc/httpd/conf.d/php.conf文件),故可利用。该配置代表解析php。

  利用

  环境:centos7+httpd2.4.6+php5.6

  情况一:在代码层采用黑名单策略防止上传

  代码如下:

  上传PHP文件

  直接无法上传

  对上传包进行以下修改:在1.php后添加x0a,成功上传

  访问该图片链接并在后面加%0a,成功解析。(也可是是一个shell)

  情况二:在apache配置文件中进行如下配置:上传目录php目录禁止访问。(但以$做正则匹配)

  此方法无法直接利用解析漏洞!!!

  httpd.conf文件做如下配置

  发现无法解析

  证明”$”符号起到了限制效果。

  情况三:在apache配置文件中进行如下配置:上传目录不做PHP文件的解析。(但以$做正则匹配)

  此方法无法直接利用解析漏洞!!!

  httpd.conf文件做如下配置

  可绕过限制访问其中的php文件(“1.php换行符”是包含的图片马)

  发现可绕过是否是PHP文件的检测,但不对其代码进行解析。

  利用条件

  文件上传采取黑名单策略(或直接任意文件上传);

  获取文件名时不能用“去掉换行”的函数,比如$_FILES['file']['name'];

  在上传目录下,文件有执行权限和解析权限

  Apache在配置文件中采用了“$”做PHP解析的正则匹配(其他情况不行),如下图。

  影响版本

  Apache 2.4.29-2.4.25, 2.4.23, 2.4.20

  Apache 2.4.18-2.4.16, 2.4.12, 2.4.10

  Apache 2.4.9, 2.4.7, 2.4.6, 2.4.4-2.4.1

  所有版本均存在,只不过默认情况下,apache2.4.x版本有如下配置(其他版本亲测有效)

  欢迎各位大佬批评指正!

上一篇:未成年人节目对主持人的要求
下一篇:韭菜和什么豆芽能一起吃