技术饭

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

copylian    0 评论    15459 浏览    2017.09.27

最近阿里针对tp3.2.3框架进行了检查,并发公告称tp3.2.3的文件缓存机制很容易被破解,如果使用了文件缓存未设置 DATA_CACHE_KEY 会造成任意代码执行,这个会对整个服务器以及数据造成很大的困扰,tp官方也第一时间辟谣称框架本身没有问题,只是需要设置 DATA_CACHE_KEY 这个值让攻击者不容易猜到即可。

一、程序概况

官网地址 http://www.aikehou.com/

针对爱客猴echoCMS存在远程代码执行漏洞解决方案


Echo内容管理系统v3.0~v3.2.3,采用了thinkphp3.2.3框架,并默认开启了cache,未设置 DATA_CACHE_KEY 造成任意代码执行

二、漏洞分析

查thinkphp官方文档缓存S函数使用方法如下:

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

跟进S函数具体实现

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

继续跟进set方法

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

set方法中数据序列化后被写入文件(对数据没有检查,可以使用插入换行符和php代码造成php代码执行),文件名由filename 加工,继续跟进filename函数

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

我们看到文件最后是以 DATA_CACHE_KEY 拼接$name 后的 md5值

而查看echo内容管理系统配置文件,没有配置DATA_CACHE_KEY值

那文件名也就是传入$name的md5值

在程序中随意找一处,如系统配置

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

查看它的控制类中方法

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

跟进setconfig方法

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

可以看出最后缓存的文件名是由 字符串’ALL_CONFIG’拼接siteid后的md5

在页面中获取siteid

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

修改提交数据 插入%0d%0aecho 'CNVD_V587_'. date('y-m-d H:i:s',time());//

 针对爱客猴echoCMS存在远程代码执行漏洞解决方案

执行后,按照预期应该在 根目录下的Apps/Runtime/Temp 生成一个文件名为 md5('ALL_CONFIG'.'0')  即 e701a6a47a4959f2a512e66f5c9ee986.php

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

成功换行插入php代码

访问这个php文件

针对爱客猴echoCMS存在远程代码执行漏洞解决方案

成功执行任意代码。

 针对爱客猴echoCMS存在远程代码执行漏洞解决方案

下面使用这个漏洞,测试官方demo

感谢国家互联网应急中心(CNCERT),国家信息安全漏洞共享平台(CNVD)的数据反馈,bug已经修复。。。

只袄早~~~
感谢你的支持,我会继续努力!
扫码打赏,感谢您的支持!

文明上网理性发言!

  • 还没有评论,沙发等你来抢