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

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

缺陷编号:wooyun-2014-062140

漏洞标题:Discuz! <=2.5 csrf防御绕过

相关厂商:Discuz!

漏洞作者: 索马里的海贼

提交时间:2014-05-26 10:33

修复时间:2014-08-24 10:34

公开时间:2014-08-24 10:34

漏洞类型:文件上传导致任意代码执行

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

在Discuz! <=2.5版本的某处设计存在失误,csrf防御可被绕过
可以获取到formhash 所以应该算全局的绕过吧

详细说明:

其实还是 drops文章《上传文件的陷阱》带来的问题。
dz2.5以下版本修改头像处未检查图片文件的合法性,可以上传.jpg后缀的swf文件。
使用这个swf文件发起恶意请求读取页面源码就能获取到formhash 有formhash之后。。想干嘛就干嘛了
具体文件/uc_server/control/user.php 281行onuploadavatar函数

$imgtype = array(1 => '.gif', 2 => '.jpg', 3 => '.png');


只检查了后缀而不像3.0以上用库检查了图片格式

漏洞证明:

步骤
1、新建一个获取页面源码 提取formhash 然后用formhash发送添加副站长请求的swf,保存为.jpg后缀

0.jpg


2、注册一个账号,去/home.php?mod=spacecp&ac=avatar上传上一步生成的.jpg后缀的swf文件并抓包 上传后的地址应该是
http://192.168.1.104/uc_server/data/tmp/upload{uid}.jpg这样的

1.jpg


3、新建一个html页面,把上一步拿到的头像地址当作flash加载到页面。
4、引诱管理员访问这个html页面,就会在后台把你的账号添加为副站长

2.jpg


3.jpg

修复方案:

把3.0 3.1的检查代码搬过来吧

版权声明:转载请注明来源 索马里的海贼@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2014-05-26 11:17

厂商回复:

感谢您提出的问题。由于该问题和论坛版本无关,是ucenter的问题,所以我们之前曾经针对ucenter单独发过修正。只是目前安装包中的ucenter一直没有更新,所以X3之前的版本还会存在这个问题。我们会尽快更正这个问题。

最新状态:

暂无