修补wordpress的受攻击弱点

多个版本的wordpress都有这个受攻击弱点。

WordPress WordPress (B2) 0.6.2 .1
WordPress WordPress (B2) 0.6.2
WordPress WordPress 2.0.5
WordPress WordPress 2.0.4
WordPress WordPress 2.0.3
WordPress WordPress 2.0.2
WordPress WordPress 2.0.1
WordPress WordPress 2.0
WordPress WordPress 1.5.2
WordPress WordPress 1.5.1 .3
WordPress WordPress 1.5.1 .2
WordPress WordPress 1.5.1
WordPress WordPress 1.5
WordPress WordPress 1.2.2
WordPress WordPress 1.2.1
+ Gentoo Linux
WordPress WordPress 1.2
+ Gentoo Linux 1.4
+ Gentoo Linux
WordPress WordPress 0.71
WordPress WordPress 0.7

但这个弱点已经在2.0.6中修补,但当前流行使用的版本为2.0.5,所以大家还是自己补上吧:
我翻了一下我保存的各个版本的wordpress,不知道为什么也找不到原文中提到的代码。(wordpress应该是没有attribute_escape()函数的)
2.0.5中应该是这样修补的:
打开 your-wordpress/wp-admin/templates.php (应该在114行),找到

echo "<li><a href='templates.php?file=" . wp_specialchars($recent, true) . "'>" . get_file_description(basename($recent)) . "</a></li>";

修改为

echo "<li><a href='templates.php?file=" . wp_specialchars($recent, true) . "'>" . wp_specialchars(get_file_description(basename($recent))) . "</a></li>";

wordpress-1[1][1].5.2、2.0 RC2、2.0.2 – 2.0.4的templates.php原代码是这样的,

echo "<li><a href='templates.php?file=$recent'>" . get_file_description(basename($recent)) . "</a></li>";

修改为

echo "<li><a href='templates.php?file=" . wp_specialchars($recent, true) . "'>" . wp_specialchars(get_file_description(basename($recent))) . "</a></li>";

打开 your-wordpress/wp-admin/templates.php ,找到

echo "<li><a href='templates.php?file=" . attribute_escape($recent) . "'>" . get_file_description(basename($recent)) . "</a></li>";

修改为

echo "<li><a href='templates.php?file=" . attribute_escape($recent) . "'>" . wp_specialchars(get_file_description(basename($recent))) . "</a></li>";

查看更多:WordPress Template.PHP HTML Injection Vulnerability
跨站脚本攻击(XSS)FAQ

还是关于总结2006年的SQL

最近在看关于SQL的资料,这里再来几条SQL语句练习一下。

2006年度最多comment(&trackback&pingback)的posts

SELECT ID, Count( comment_ID ) , post_title
FROM `wp_comments` , `wp_posts`
WHERE comment_post_ID = ID
AND comment_approved = '1'
AND post_date >= '2006-01-01'
AND post_date < '2007-01-01'
GROUP BY ID
ORDER BY 2 DESC

1、更新blogbus to wordpress转换程序 (43 comments)
2、从blogbus跳转到WordPress (31 comments)
3、wordpress2.0 rss import文件分析及oblog导入 (18 comments)
4、我使用的plugins (17 comments)
5、怎样将wordpress从盘古搬到DreamHost (16 comments)

暂时还没想到更多的SQL,想好了再加吧。

Happy New Year!

昨天开始,网络已经慢慢地好了,至少我这里的情况是这样的,不用代理也可以进入DreamHost。
这本应该是昨天要写的一个post。却因为手上没有更多的数据,不能像别的blogger那样总结上一年blog的情况,而作罢。
昨天帮网上一位朋友转换blogbus的备份,忙了一天,可以算是2006年冰古blog的一个写照。

刚才看到wordpress planet中alex的一篇post,提到一些SQL语句是关于2006年blog的一个粗略总结的。我也借此对冰古blog在2006年作个总结吧:
一年发的post篇数为 145
得到的留言数为 463
post的平均字(节)数为 1126.2345
总字(节)数为 163304
(utf8格式下的中文字一个占3个字节)

关于这些SQL语句,要注意的是:
如果你的wp-config.php中$table_prefix不是’wp_’,请修改语句中的’wp_’为你的$table_prefix;
语句中 的全角和半角。

如果你和我一样使用GaMerZ的WP-PostViews统计posts的查看数,那这条SQL语句就是为你准备的,2006年的posts中查看数最多的是:

SELECT meta_value, ID, post_title, post_name
FROM `wp_posts` , `wp_postmeta`
WHERE post_id = ID
AND meta_key = 'views'
AND post_date >= '2006-01-01'
AND post_date < '2007-01-01'
AND post_status = 'publish'
ORDER BY cast( `meta_value` AS DECIMAL ) DESC

冰古blog查看数最多的2006年的posts是:
1、wordpress2.0 rss import文件分析及oblog导入 (3498 views)
2、昨天阅读 (3364 views)
3、更新blogbus to wordpress转换程序 (1408 views)
4、我使用的plugins (1114 views)
5、从blogbus跳转到WordPress (916 views)