Discuz! "$referer"输出值跨站漏洞

影响版本:Discuz! 7.X、Discuz! 6.X、Discuz! 5.X、Discuz!NT 3.X
其他版本可能也存在此问题。任何对referer进行赋值并输出的网站程序都存在该弱点。
漏洞描述:
在Discuz! 任意版本中存在以下页面:
/templates/default/attachpay.htm
/templates/default/ec_rate.htm
/templates/default/register.htm

这些页面都包含$referer输出代码: <input type="hidden" name="referer" value="$referer" />
当$referer 中含有恶意代码时,这些页面及被其嵌套的php页面会产生跨站漏洞。

测试方法:

以register.htm 为例:
访问者访问某URL,然后点击“注册”按钮, 该URL被赋值给 $referer 函数,然后 register.htm 会将$referer输出,此时用户打开的注册页面 register.php 中也会包含 $referer 值。
所以,无论该URL是动态页面还是静态页面,无论它是否含有跨站漏洞,只要这个URL地址可以包含跨站代码,跨站就可能发生。

攻击者构造含有特殊代码的URL,以Discuz! 7.0为例,如:http://www.zeroplace.cn/viewthread.php?tid=<;;script>alert(/liscker/);</script> ,用户访问该URL,然后点击“注册”按钮,访问register.php,此时发生跨站,执行恶意代码。

attachpay.htm、ec_rate.htm原理与register.htm原理相同

文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 8939