Discuz0724补丁补掉的一个XSS+补掉的另外一个XSS -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    这篇文章我记得发过了,但是没找到,再发一次

    对比补丁我们发现在\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( //替换的正则

    ........

    "",

    "
"

    替换的代码部分:

    $ 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或者类似函数处理过,

Discuz0724补丁补掉的一个XSS+补掉的另外一个XSS

电脑资料

Discuz0724补丁补掉的一个XSS+补掉的另外一个XSS》(https://www.unjs.com)。所以没有办法使用"和<>

    这也就是意味着  "/\[ align= ([^\[\<]+?)\]/ i"-->"

" 是没办法用"<>等闭合,我们再看float标签:

    "/\[floa t= ([^ \[\<]+? )\]/ i" -->""

    替换后的\\1进入

    测试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, '/'))).'/');

最新文章