最新版Discuz修复不全导致仍可针对管理员存储XSS

2015-09-09T00:00:00
ID SSV:93756
Type seebug
Reporter Root
Modified 2015-09-09T00:00:00

Description

简要描述:

程序员修漏洞得修完全,不认真就不对了

详细说明:

新版本中修复了在 http://wooyun.org/bugs/wooyun-2010-099979 中所提供的插入点 但是由于程序员的疏忽,修复的代码中仍有可用的 shortcode 可以造成 XSS 具体的漏洞分析都在 http://wooyun.org/bugs/wooyun-2010-099979 中都有提及,其主要原因是由于 /static/js/bbcode.js 文件中的 bbcode2html() 函数对 shortcode 进行正则替换时,导致可以构造 payload,让编辑器渲染时形成 XSS。 通过 diff 前后两个版本可得到 bbcode.js 文件的更新结果:

<img src="https://images.seebug.org/upload/201509/09013252c0bbe2c6d45c18370c32b7c1ca1c7e9c.png" alt="poc.png" width="600" onerror="javascript:errimg(this);">

注意红色框所标注部分,虽然厂商对在 http://wooyun.org/bugs/wooyun-2010-099979 中所提及的 payload 进行了过滤,但是红色标注部分的 shortcode 正则替换仍能造成 XSS。 新的 payload 形态为:[email]2"onmouseover="alert(2)[/email] 将 payload 作为帖子内容或者评论,在管理员或者有权限人员对包含 payload 的帖子或者评论进行编辑时,利用 onmouseover 触发 JS 执行。

<img src="https://images.seebug.org/upload/201509/09014211dfa4d2d0fea3be57264aa514c2596688.png" alt="poc2.png" width="600" onerror="javascript:errimg(this);">

<img src="https://images.seebug.org/upload/201509/090142212243be124b2071bba8d840a5cd3a78e3.png" alt="poc3.png" width="600" onerror="javascript:errimg(this);">

<img src="https://images.seebug.org/upload/201509/09014230adaedbf8e9eb18640f3c46eae8d1ca33.png" alt="poc4.png" width="600" onerror="javascript:errimg(this);">

漏洞证明:

<img src="https://images.seebug.org/upload/201509/09014211dfa4d2d0fea3be57264aa514c2596688.png" alt="poc2.png" width="600" onerror="javascript:errimg(this);">

<img src="https://images.seebug.org/upload/201509/09014230adaedbf8e9eb18640f3c46eae8d1ca33.png" alt="poc4.png" width="600" onerror="javascript:errimg(this);">