5

PHP彩蛋还是漏洞?expose_php彩蛋的触发和屏蔽方法

 3 years ago
source link: https://zhang.ge/4983.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Jager · 1月13日 · 2015年360网站卫士 · 网站挂马 · 网站漏洞修复 · 网站路径泄漏 4597次已读

最近在折腾网站XSS漏洞修复的时候,当我把XSS漏洞和谐成功之后,360扫描送来了一个"彩蛋":

本以为又是360误报,结果点击看了下,还真能打开PHPinfo:

PHP彩蛋我也是第一次听说,貌似老一辈的程序员们都知道,因为PHP是由黑客语言发展而来,所以各方面都透露着放荡不羁的极客精神!

一、如何触发PHP彩蛋?

我们只要在运行PHP的服务器上,在域名后面输入下面的字符参数,就能返回一些意想不到的信息。当然有些服务器是把菜单屏蔽了的。彩蛋只有这4个,PHP是开放源代码的,所以不必担心还有其他。

?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 (PHP信息列表)
?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 (PHP的LOGO)
?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 (Zend LOGO)
?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 (PHP LOGO 蓝色大象)

我2个网站目前都已屏蔽了PHP彩蛋,所以我们一起来看下腾讯的招聘网站:

原网站是这样的 点击跳转

加上“彩蛋之后”是这样:

1). PHP信息列表 点击跳转

2). PHP的LOGO 点击跳转

3). Zend LOGO 点击跳转

4). PHP LOGO 蓝色大象  点击跳转

二、如何看待PHP彩蛋?

如果你在自己的博客上也发现了这个问题,请不要惊慌,也莫要想着必须马上去解决他。其实这不算是漏洞。只是开源团队开的一个玩笑,全世界都认可的玩笑。没必要上纲上线,将它列为PHP的漏洞,连360都戏称为[彩蛋漏洞]。

三、如何屏蔽PHP彩蛋?

方法①、我们可以通过apache或者nginx的伪静态规则去屏蔽,比如apache的服务器,我们可以在 .htaccess 里面加入以下2条规则即可拦截此类访问:

RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC]
RewriteRule .* - [F]

方法②、 直接编辑PHP的配置文件php.ini,找到expose_php,将值改为Off,然后重启或重载PHP服务即可:

#修改php.ini,找到expose_php并将其值改为Off
expose_php = Off
#修改并保存之后,执行如下命令重载php
service php-fpm reload

我是懒得去想nginx规则该如何写了,直接修改php.ini来屏蔽的。屏蔽后,再去触发彩蛋发现已经无效了。再用360检测已经没有任何问题了:

如果你也发现你的网站有这个问题,也不必太在意。当然,强迫症还是去折腾修复下,免得坐立不安,哈哈!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK