漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-074941
漏洞标题:cmseasy 后台缓存配置文件未过滤一个字符导致getshell
相关厂商:cmseasy
漏洞作者: menmen519
提交时间:2014-09-04 12:08
修复时间:2014-12-03 12:10
公开时间:2014-12-03 12:10
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:15
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-09-04: 细节已通知厂商并且等待厂商处理中
2014-09-05: 厂商已经确认,细节仅向厂商公开
2014-09-08: 细节向第三方安全合作伙伴开放
2014-10-30: 细节向核心白帽子及相关领域专家公开
2014-11-09: 细节向普通白帽子公开
2014-11-19: 细节向实习白帽子公开
2014-12-03: 细节向公众公开
简要描述:
cmseasy 管理员身份 后台缓存配置文件,没有过滤一个字符导致getshell
详细说明:
啥都不说了 直接看代码:
我们直接到
然后我们分析一下代码:
system.php:(lines:67):
我们跟进到$GLOBALS['celsysteminfo']->conf
这个函数看看,在这里之前他进行了addslashes,分析一下,如果我们提交的一个值为aaa\' 转义之后就是aaa\\\' 那么我们进入:
system.class.php:(14):
这句正则表达式是有问题的 ,这里的this->file 就是我们的配置文件的内容,此文件位于
celive/include/config.inc.php
意思就是把这里面company里面的值替换掉,然后后面这个'[\'company\'] = \''.$company.'\'; 相加之后其中\\\'会变成\\'故而产生漏洞,我们构造请求如下:
发送一次看看这个文件有什么变化:
我们在测试一下这里是否存在csrf,我们构造一个页面:
我们放到另一台机器上去,然后发给管理员,管理员触发之后:
成功发送,下来我们这里访问一下刚才那个配置文件
ok 这里没有给出csrf 诱惑管理员的方法,想必上一个sql来说,这个稍微弱一些,但是这个不需要数据库权限,故而还是挺严重的
漏洞证明:
修复方案:
版权声明:转载请注明来源 menmen519@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:5
确认时间:2014-09-05 13:08
厂商回复:
祝节日快乐
最新状态:
暂无