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

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

缺陷编号:wooyun-2015-099979

漏洞标题:Discuz全版本存储型DOM XSS(可打管理员)附Discuz官方开发4大坑&验证脚本

相关厂商:Discuz!

漏洞作者: ModNar

提交时间:2015-03-07 11:21

修复时间:2015-06-07 09:58

公开时间:2015-06-07 09:58

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-07: 细节已通知厂商并且等待厂商处理中
2015-03-09: 厂商已经确认,细节仅向厂商公开
2015-03-12: 细节向第三方安全合作伙伴开放
2015-05-03: 细节向核心白帽子及相关领域专家公开
2015-05-13: 细节向普通白帽子公开
2015-05-23: 细节向实习白帽子公开
2015-06-07: 细节向公众公开

简要描述:

由此次漏洞和上次的命令注入,看出Discuz官方开发4大坑:
1.发的补丁和diff官方最新版本安装包的结果不一定相同(导致后台升级,手动更新后已经在新版本修了的漏洞还在)
2.发补丁不发修复点的公告(导致二次开发的站考虑到兼容性不愿第一时间更新)
3.在线上改代码修漏洞却不发补丁
4.发补丁,发新版本安装包的时间,论坛发补丁帖的时间不一致,参见:http://download.comsenz.com/DiscuzX/3.2/
http://www.discuz.net/forum-10-1.html

详细说明:

Discuz编辑器JS处理不当导致的存储型XSS。
产生原因:
JS原生取ELEMENT中HTML内容的方法,会将服务端转义过的单双引号实体编码进行反转。
代码分析:
这里用最新版本本地测payload为:[align="onmouseover="alert(1)]
官方论坛站点悄悄于2015-1-21改了代码,导致以上payload被过滤,不过用[email=2"onmouseover="alert(2)]2[/email]可绕过。
/forum.php?mod=post&action=edit&fid=xx&tid=xx&pid=xx&page=x

1.png


2.png


/static/js/common.js:

3.png


4.png


/static/js/bbcode.js:

5.png


/static/js/editor.js

6.png


7.png


调试流程:

8.png


9.png


10.png


11.png


12.png


13.png


14.png


15.png


16.png


漏洞证明:

触发过程:
发表帖子,编辑器内输入[email=2"onmouseover="alert(2)]2[/email],支持的bbcode类型可在bbcode.js中查看。
点击编辑时即可触发,由于是编辑器前端产生的问题,因此有权限编辑帖子的角色都会受到影响,包括版主,管理员。

17.png


18.png


19.png

修复方案:

调试过程已经很清楚了,在哪修复,过滤转义还是加白。请自行考虑。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-03-09 09:56

厂商回复:

感谢您发现的问题,我们会尽快给于修复

最新状态:

暂无


漏洞评价:

评论

  1. 2015-03-07 11:29 | 无心、 ( 实习白帽子 | Rank:71 漏洞数:20 | 你不是风儿,我也不是沙,再怎么缠绵也到不...)

    沙发

  2. 2015-03-07 11:53 | jsbug ( 普通白帽子 | Rank:117 漏洞数:16 )

    我有一种不好的预感。难道是正则?

  3. 2015-03-07 12:23 | 浅蓝 ( 普通白帽子 | Rank:274 漏洞数:109 | 爱安全:www.ixsec.orgXsec社区:zone.ixse...)

    卧槽

  4. 2015-03-07 12:25 | 浅蓝 ( 普通白帽子 | Rank:274 漏洞数:109 | 爱安全:www.ixsec.orgXsec社区:zone.ixse...)

    要火

  5. 2015-03-07 13:30 | 明月影 ( 路人 | Rank:12 漏洞数:8 | 学姿势,学思路。)

    目测会忽略。

  6. 2015-03-07 14:12 | 耐小心 ( 路人 | Rank:12 漏洞数:5 | 噗 我是新手 新手求罩)

    这的确是Discuz的4大坑。。。。。

  7. 2015-03-07 14:44 | 泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)

    关注下

  8. 2015-03-07 16:27 | Fire ant ( 实习白帽子 | Rank:73 漏洞数:26 | 他们回来了................)

    四大坑...........意思是要出系列咯

  9. 2015-03-07 17:50 | ModNar ( 路人 | Rank:29 漏洞数:3 | 路人甲)

    @Fire ant 只是为站长吐槽一下,没别的意思

  10. 2015-03-08 19:23 | 逗比 ( 路人 | Rank:20 漏洞数:6 | 逗比的年代,诶油我艹)

    目测要火

  11. 2015-03-09 10:38 | saga ( 路人 | Rank:11 漏洞数:2 | 世界上只有10种人,懂二进制的,和不懂二进...)

    前排留名

  12. 2015-03-13 09:54 | Vinc ( 普通白帽子 | Rank:120 漏洞数:22 | :))

    .

  13. 2015-03-16 18:19 | 乳酸君、 ( 路人 | Rank:8 漏洞数:2 | 看,漏洞)

    火钳刘明

  14. 2015-06-07 10:54 | 绽放的菊花 ( 路人 | Rank:17 漏洞数:2 | 绽放中的菊花)

    火钳刘明

  15. 2015-06-08 09:38 | 老曹哥哥 ( 路人 | Rank:5 漏洞数:1 | 气功打鬼子)

    火钳刘明

  16. 2015-06-11 00:26 | Vayne ( 路人 | Rank:8 漏洞数:1 | PLA...)

    路过一下看看

  17. 2015-06-19 17:10 | 我对网名没兴趣 ( 路人 | Rank:2 漏洞数:1 | xss,渗透,社工,ddos,sql注入这些技术我...)

    我发现只能弹2,当我改成[email=2"onmouseover="alert(2XXXXXX)]2[/email]弹不出

  18. 2015-06-19 17:11 | 我对网名没兴趣 ( 路人 | Rank:2 漏洞数:1 | xss,渗透,社工,ddos,sql注入这些技术我...)

    只能弹出长度为1的字符

  19. 2015-06-20 22:10 | ModNar ( 路人 | Rank:29 漏洞数:3 | 路人甲)

    @我对网名没兴趣 字符串是要加引号包裹的吧,理论上可以的,我之后试试

  20. 2015-07-20 14:02 | #6c6c6c ( 普通白帽子 | Rank:291 漏洞数:47 | 像一条狗孤独的活着,渴望的活着,绝望的活...)

    @我对网名没兴趣 onmouserover难道是为2创建的?别逗了!