教你用phpBB2配置一个安全的Linux论坛(下)(1)


二、清除安全漏洞和升级论坛版本
1. php
BB2.0.11安全漏洞分析和清除方法:
phpBB2是一个用php脚本语言编写的论坛,该论坛的低于2.0.11版本有个严重的漏洞,就是 viewtopic.php允许远程执行命令。viewtopic.php是phpBB2论坛脚本文件中的一个,用于查看帖子内容。通过该漏洞攻击者可以在服务上运行任何代码。Net-Worm.Perl.Santy.a是一个使用perl脚本代码编写蠕虫病毒,通过该phpBB2漏洞远程执行系统命令入侵主机,一旦入侵成功并获得运行,就开始向google发送请求,搜索可以入侵的主机。 如果你使用phpBB2版本低于2.0.11,那么需要清除该蠕虫病毒。
(1)清除病毒步骤:
打开viewtopic.php文件,在以下代码前加入一行:

$topic_id = $post_id = false;
if ( isset($HTTP_GET_VARS[POST_TOPIC_URL]) )
{
$topic_id = intval($HTTP_GET_VARS[POST_TOPIC_URL]);
}
else if ( isset($HTTP_GET_VARS['topic']) )
{
$topic_id = intval($HTTP_GET_VARS['topic']);
}

另外还要将viewtopic.php文件中以下代码:

$join_sql_table = ( !isset($post_id) ) ? '' : ", " 
         . POSTS_TABLE . " p, " . POSTS_TABLE . " p2 ";
$join_sql = ( !isset($post_id) ) ? "t.topic_id = $topic_id" : "p.post_id = $post_id AND 
         t.topic_id = p.topic_id AND p2.topic_id = p.topic_id AND p2.post_id <= $post_id";
$count_sql = ( !isset($post_id) ) ? '' : ", COUNT(p2.post_id) AS prev_posts";
$order_sql = ( !isset($post_id) ) ? '' : "GROUP BY p.post_id, t.topic_id, 
t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type, 
t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id, 
f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete, 
f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, f.auth_attachments 
ORDER BY p.post_id ASC";           

替换为:

$join_sql_table = ( empty($post_id) ) ? '' : ", " 
. POSTS_TABLE . " p, " . POSTS_TABLE . " p2 ";
$join_sql = ( empty($post_id) ) ? "t.topic_id = $topic_id" : "p.post_id = 
$post_id AND t.topic_id = p.topic_id AND p2.topic_id = p.topic_id 
AND p2.post_id <= $post_id";
$count_sql = ( empty($post_id) ) ? '' : ", COUNT(p2.post_id) AS prev_posts";
$order_sql = ( empty($post_id) ) ? '' : "GROUP BY p.post_id, t.topic_id, 
t.topic_title, t.topic_status, t.topic_replies, t.topic_time, t.topic_type,
 t.topic_vote, t.topic_last_post_id, f.forum_name, f.forum_status, f.forum_id,
 f.auth_view, f.auth_read, f.auth_post, f.auth_reply, f.auth_edit, f.auth_delete,
 f.auth_sticky, f.auth_announce, f.auth_pollcreate, f.auth_vote, 
f.auth_attachments ORDER BY p.post_id ASC";

然后点击“开始”-“搜索”-“文件或文件夹”在文件名称中输入“m1h020f”,找到后全部删除即可。截至到目前为止,该蠕虫还没有更新的变种。已经得到了很到的控制。
2. phpBB2.0.12安全漏洞分析和解决除方法:
phpBB 2.0.12版本中存在两个安全漏洞,其中一个很严重,允许任意用户都可以获取管理权限,另外一个漏洞会导致服务器路径泄露。第一个漏洞存在于includes/sessions.php文件中,其对$sessiondata['autologinid']变量的类型及比较操作存在问题,远程攻击者可以通过伪造特别的变量值使用判断用户合法性的操作始终返回真,从而使用任意用户可以在不知道口令的情况下以管理员的身份认证成功。第二个漏洞在于viewtopic.php文件中,由于对消息的过滤不充分,使路径泄露成为可能。远程攻击者可以利用这个漏洞获取管理权限。解决方法,升级版本到2.0.14。
步骤:
1.数据库的备份:
phpBB2本身可以备份自己的数据,点击phpBB2 的论坛管理员控制面板“普通管理”-》“数据库工具管理:备份”-》“选择整体备份选项”,即可完成论坛数据的整体备份,见图-4.


图-4 phpBB2论坛的数据备份
备份产生的文件是:phpbb_db_backup.sql,可以看出是一个sql文件。


相关内容