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

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

缺陷编号:wooyun-2015-0104700

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

相关厂商:禅道

漏洞作者: xcrypt

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

修复时间:2015-06-28 13:02

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

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

危害等级:高

自评Rank:18

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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关键代码如下

7.jpg


index.php相关代码如下

10.jpg


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

8.jpg


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

4.jpg


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

5.jpg


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

6.jpg


2.jpg


3.jpg

修复方案:

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

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-03-30 13:00

厂商回复:

谢谢反馈。:)

最新状态:

暂无