禅道项目管理软件多个漏洞

漏洞概要

缺陷编号:WooYun-2015-0104700

漏洞标题:禅道项目管理软件多个漏洞

相关厂商:禅道

漏洞作者:xcrypt

提交时间:2015-03-30 12:16

公开时间:2015-06-28 13:02

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

危害等级:高

自评Rank:18

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

2015-03-30: 细节已通知厂商并且等待厂商处理中
2015-03-30: 厂商已经确认,细节仅向厂商公开
2015-04-02: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2015-05-24: 细节向核心白帽子及相关领域专家公开
2015-06-03: 细节向普通白帽子公开
2015-06-13: 细节向实习白帽子公开
2015-06-28: 细节向公众公开

简要描述:

问题都比较严重,可导致匿名用户写入任意代码。
测试版本:开源版6.3和7.1,专业版4.5,其他版本可能也受影响。

详细说明:

1、upgrade.php缺少权限验证,导致匿名用户可随意调用任意模块,造成任意代码写入。2、附件上传模块的黑名单过滤在windows环境下可被绕过,结合第一个漏洞,匿名用户可上传任意文件。

漏洞证明:

1、越权upgrade.php关键代码如下

index.php相关代码如下

可以看到upgrade.php在loadModule之前少了一行checkPriv,即无需权限验证即可调用模块。但上面还有一行判断,$_SERVER['HTTP_X_REQUESTED_WITH']如果为空并且两个版本号比较结果小于等于0,则跳转到index.php。测试发现,两个版本号比较结果始终等于0,那么,$_SERVER['HTTP_X_REQUESTED_WITH']是不是可控的呢?答案是肯定的,这个值从http头中获取。这样便跳过了if判断,直接加载模块。官方演示站也存在该问题,如下图所示:

后台的模块编辑功能可以写入任意php代码,利用该漏洞可以无条件写入任意代码并执行。2、任意文件上传除了利用模块编辑功能外,附件上传功能在windows环境下也可以被利用。下图是获取文件后缀的代码

如果存在以下危险后缀,则返回txt。

黑名单检查一不小心就会被绕过,特别是程序部署在windows服务器上时,因为windows的一些特性导致。利用过程如下:

修复方案:

1、upgrade.php加上权限判断2、使用白名单

漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-03-3013:00

厂商回复:

谢谢反馈。:)

最新状态:

暂无

评价

  1. 2010-01-01 00:00 茜茜公主 白帽子 | Rank:899 漏洞数:85)

    匿名用户

  2. 2010-01-01 00:00 papaver 白帽子 | Rank:163 漏洞数:19)

    居然现在有厂商了。。。

  3. 2010-01-01 00:00 qhwlpg 白帽子 | Rank:141 漏洞数:13)

    ::$ mark

  4. 2010-01-01 00:00 BeenQuiver 白帽子 | Rank:50 漏洞数:6)

    截断上传::$DATA