这就是问题所在:
CakePHP在缓存/视图中生成奇怪的缓存文件
" 2f400_shtml.php" " d_allow_url_include_3don_d_auto_prepend_file_3d_2f_2f_2f_2f_2f_2f_2f_2f_2f_2f_2f_2fetc_2fpasswd"
不太明白会发生什么,但审查我在请求中看到的文件反序列化此文件:
"query";a:1:{s:10:"/400_shtml";s:0:"";}
有人已经遇到过这个问题吗?
这发生在生产服务器中,但不在我的本地环境中。
可以尝试这些攻击吗?
谢谢,感谢您的评论。
答案 0 :(得分:2)
是的,看起来有人在搞乱您的网站。看起来他们正在尝试访问/etc/passwd
文件。
有人点击了一个让Cake创建缓存文件的URL。 Cake会对已经命中的url进行URL编码,并用下划线替换特殊字符
因此请求会涉及很多/字符。
看看你的apache access.log文件,你就可以看到人们提出的请求更清楚:
E.g。
cat <apache_logs_dir>/access.log | grep passwd
会在那里向第二个请求显示类似的请求。
我会自己尝试以确保它们没有任何成功:)
可能是时候确保Apache只能访问您想要的目录了。我认为您可以使用<directory>
标记:
http://httpd.apache.org/docs/2.2/mod/core.html#directory
(我假设您使用的是Apache,如果您使用的是IIS,则可能需要调查类似的功能)
环顾谷歌看起来似乎有人试图利用此漏洞:
http://blog.sucuri.net/2012/05/php-cgi-vulnerability-exploited-in-the-wild.html
从该链接中提取:
The PHP guys are recommending the following .htaccess hack to block those attacks:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^[^=]*$
RewriteCond %{QUERY_STRING} %2d|\- [NC]
RewriteRule .? – [F,L]