昨天在Google里查找关于Wordpress cache功能的资料时,偶然发现了绿盟的一篇文章,介绍Wordpress的一个漏洞。
汗,以前只听说一些论坛程序比如动网有漏洞,原来Wordpress也有漏洞。这篇文章说,在Wordpress 2.0.2及更早的版本中,由于cache功能将用户信息保存到wp-content/cache/userlogins/和wp-content/cache/users/目录中,攻击者可以利用这个漏洞通过换行字符注入并执行任意PHP代码。在Wordpress 2.0.3版已经修复了这个漏洞。
文章里给出了程序,可以在PHP命令行模式下执行。有空的话上网找找看有谁还没升级Wordpress程序,嘿嘿嘿。不过这个程序好复杂,我不懂多少PHP,看不懂。而且我也没有PHP命令行用,想把他改成可以在服务器上执行的,心有余而力不足啊。
Update:仔细看了一下文章的英文出处,大概是说:Wordpress没有充分检查被cache的用户名的数据格式,解决的办法是升级到Wordpress 2.0.3,而之所以被解决是因为:"As of Wordpress 2.0.2 the user data cache is disabled by default."Wordpress 2.0.2以后的版本中,默认禁用用户数据的cache。这说明Wordpress开发组还没有解决这个问题,只是简单的在Wordpress 2.0.3里禁用了cache功能,不知道Wordpress 2.1里解决了这个问题没有。现在要在Wordpress中使用cache功能必须在wp-config.php文件中强制打开,可以参考我的这篇文章。
我觉得如果很需要优化速度就使用wp-cache插件吧,尽量还是不要打开这个功能,要是被人攻击了就不好了。不过,好像他是需要用户数据的哈,我们这种不开放用户注册的应该没什么问题吧。希望Wordpress开发组早日解决这个问题,再重新把cache功能设置为默认打开。
Update:在secunia.com还能搜索到很多Wordpress漏洞的资料,有空应该经常去看看。搜索Wordpress漏洞的地址在这里。比如这个漏洞,可以通过访问http://[host]/index.php?paged=-1来看到Wordpress的数据库出错信息。
Support论坛上的
这个漏洞需要下列的条件:
1. You have enabled the caching of db info to disk which is disabled by default in 2.0.2
2. You have a simple /null database password. This is needed to make the filename of the cache file guessable and the exploit easy to achieve
3. You have user registration enabled
所以不用太怕,呵呵