当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-053771

漏洞标题:Discuz! X2.5 / X3 / X3.1中CSRF攻击防御可被绕过

相关厂商:Discuz!

漏洞作者: kookxiang

提交时间:2014-03-16 11:32

修复时间:2014-06-14 11:32

公开时间:2014-06-14 11:32

漏洞类型:CSRF

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-03-16: 细节已通知厂商并且等待厂商处理中
2014-03-17: 厂商已经确认,细节仅向厂商公开
2014-03-20: 细节向第三方安全合作伙伴开放
2014-05-11: 细节向核心白帽子及相关领域专家公开
2014-05-21: 细节向普通白帽子公开
2014-05-31: 细节向实习白帽子公开
2014-06-14: 细节向公众公开

简要描述:

写插件的时候偶然发现的...可绕过Discuz自带的CSRF攻击

详细说明:

discuz在判断表单时用这个函数:

submitcheck('submit', true)


其中第二个参数本来应该是是否允许GET请求的选项。
在X2.5 / X3 / X3.1中,第二个参数为true时竟然不判断formhash直接return true了……
使用批量搜索工具搜索discuz源代码里的submitcheck(*, *)……然后发现官方也用了这种写法,尿了尿了
另外表示X2和之前的都没看过,不确定是否有问题。 我本地的X2.5 X3 X3.1这个文件基本都一样……

漏洞证明:

source/class/helper/helper_form.php
Line 22

if($allowget || ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_GET['formhash']) && $_GET['formhash'] == formhash() && empty($_SERVER['HTTP_X_FLASH_VERSION']) && (empty($_SERVER['HTTP_REFERER']) ||
preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER['HTTP_REFERER']) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER['HTTP_HOST'])))) {


当$allowget = TRUE时,后面整个括号就可以无视了

修复方案:

最简单的办法,修改下这个判断语句的逻辑吧

版权声明:转载请注明来源 kookxiang@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:1

确认时间:2014-03-17 16:48

厂商回复:

allowget这个参数是用户无法控制的,只有当程序员认为这个功能不需要post方式提交和formhash校验的时候,才会使用allowget这个参数。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-03-16 12:55 | YY-2012 ( 普通白帽子 | Rank:2763 漏洞数:641 | 意淫,是《红楼梦》原创的词汇,但后来演变...)

    前排收wb

  2. 2014-03-16 13:01 | 耐小心 ( 路人 | Rank:12 漏洞数:5 | 噗 我是新手 新手求罩)

    mark

  3. 2014-03-17 18:56 | HUC缘生 ( 路人 | Rank:28 漏洞数:29 | 小白求罩~~~~)

    围观

  4. 2014-03-19 00:45 | kookxiang ( 路人 | Rank:28 漏洞数:6 | 苦逼PHP程序猿…)

    @xsser 能帮忙转移下楼上那行到漏洞说明么 = =

  5. 2014-03-19 11:11 | jhdxr ( 路人 | Rank:3 漏洞数:2 | 这家伙很懒,所以。。。)

    discuz给rank是出了名的吝啬。。。不忽略已经给很给面子了(→_→)

  6. 2014-03-20 18:56 | horseluke ( 普通白帽子 | Rank:116 漏洞数:18 | Realize the dream in earnest.)

    @kookxiang 求细节...

  7. 2014-03-22 19:12 | kookxiang ( 路人 | Rank:28 漏洞数:6 | 苦逼PHP程序猿…)

    @horseluke 发到微博那边了 = = 没注意乌云提醒

  8. 2014-03-23 21:11 | LooTan ( 路人 | Rank:4 漏洞数:2 | 拍黄片的大象派来的逗比)

    新人求罩!

  9. 2014-03-24 19:46 | Coxxs ( 实习白帽子 | Rank:34 漏洞数:8 | 节操数:233 | ww)

    新人求罩!

  10. 2014-03-30 00:00 | tensor ( 路人 | Rank:5 漏洞数:3 | 花式撸管,撸出美好明天。)

    围观一下