最近看服务器的日志, 发现出现多个很奇怪的访问记录:
后面还有这样的日志:
GET /Runtime/phpinfo2.PHP?e=assert&pass=phpinfo(); HTTP/1.1" 200 12306
网站被人插了一句话木马无疑.
疑问就是形似这样的请求?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 是啥意思, 看样子后面的部分有点像是 session, 如果是个参数的话也没见过像这样直接通过?= 传递的参数, 难道该页面通过特别的 URI 解析方式来确认使用者身份? 由于文件已经被入侵者删除, 也没法确认这一点, 但感觉应该可能性不大.
后来查阅资料时发现了这篇文章: http://phpsadness.com/sad/11
原来在比较早的 PHP 版本里内置了一些 PHP 彩蛋, 类似 google 浏览器的小恐龙???
只要在运行了 5.5 之前版本 PHP 的网站域名后面输入下面的字符参数, 就可以看到些 logo 图片之类.
- ?=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 蓝色大象)
- PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 :
PHPE9568F34-D428-11d2-A769-00AA001ACF42:
PHPE9568F35-D428-11d2-A769-00AA001ACF42:
PHPE9568F36-D428-11d2-A769-00AA001ACF42:
"彩蛋" 只有这 4 种, 且这个功能在早版本 PHP 里是默认开启的, 由于并没有泄露什么东西, 也不必把它当作漏洞. 不过据说有些扫描器会将提交这些请求来判断网站是不是 PHP 语言, 并且可以用来判断 PHP 版本是不是小于 5.5, 由此来找一些已知的版本漏洞来进行攻击.
这个功能在 PHP 5.5 版本已经弃用, 如果要手动关闭这个功能, 只要在 PHP.INI 里将 expose_php 改为 Off 即可.
来源: http://www.bubuko.com/infodetail-2893742.html