漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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、使用白名单
版权声明:转载请注明来源 xcrypt@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2015-03-30 13:00
厂商回复:
谢谢反馈。:)
最新状态:
暂无