远丰集团旗下CMS疑有官方后门

起始

这个后门是在去年的某次渗透测试中发现的,但是因为时间点比较敏感,客户也未修复,就还未披露。

他们在中央的网站都留了后门,银行的也留,影响了一大批人,真是官方刺激!

其中包括官网上如下的网站:

实际上这些只是很少的网站,更多的是官网未写明但是依然使用的小客户。同时因为它涉及的是金融,所以影响较大。本来是不打算说出去的,但是客户早就已经修复了,同时似乎也说了出去,导致一些国有网站也修复了。现在影响力不大了,就打算发出来。

实际上这依然是0day,因为我没有提交给任何漏洞平台。之所以不提交是我认为这可能只是一个官方设计好的“功能”,至于是不是后门,各位看官看完之后自己分析,我就不多嘴了。

分析

后门文件地址:/lib/smarty/plugins/function.php

这是一个很简单的加密,单纯的base64加密。这里我给出我解密好且修改了格式的文件下载链接:

这里我们直接看我解密好的代码:

我们可以看到,第一个红框是一个简单的判断,判断$codelock_file是否等于空,否则就直接结束。如果直接访问这个文件,毫无疑问会断在这里。但是我们先假设这个地方能过。继续看下面的红框里面的代码。

第二个红框的代码是用extract$_REQUEST导入了当前的变量表。这代表接下来除了二次赋值的地方,所有的变量都是可控的。第3个红框则是用fopen打开了一个文件,它的两个参数$codelock_filed$codelock_enc都是可以利用之前的extract控制的。

接下来第4个红框则是开始了写文件,写入的内容是$codelock_masterdata,我们依然可以控制它。

这代表我们可以利用这个文件去写一个后门。

那么我们回到一开始的问题,在extract前面的第一个红框,那里我们控制不了$codelock_file,程序显然会结束在这,那么接下来的都是无法实现的。

聪明的朋友肯定想到了,既然有这个后门,必然有调用的地方。

我们继续搜索,找到了这个文件\lib/smarty/plugins/modifier.config.php

我们找到了调用的地方,在这里给$codelock_file赋值,并且接下来include了这个文件。

我们可以构造exp如下:

即可在当前目录下写入文件XiaoZe.php.

效果如图:

成功拿下shell。

总结

这是后门吗?这个问题给交给各位看官们自己想,我处于不惹麻烦的角度,就不多bb了。就提出一些我认为的一些疑点。

1.这为什么不猜测为是黑客故意留下的后门呢?

结合解密之后的疑似后门的文件剩下的代码来看,各种变量的赋值。我个人认为是厂商开发出来对付盗版的方法。不属于黑客入侵后留下的后门。

2.这是什么版本的?在哪可以下载到完整版本?

这是人家的商业cms,不是开源的,要是我直接发出来怕不是就律师函警告了。但是可以给大家一个参考地址:[http://down.admin5.com/php/98938.html]

3.为什么我在官方的好几个客户案例上利用这个漏洞失败了,不是你说的 0day 吗?

对,这是0day,我一直没有提交,因为考虑到可能是正常的业务需求是吧?至于为什么没有利用成功呢,是因为这个问题是我在去年做项目的时候发现的。当时的客户是某大网站,成功利用这个后门打下来了。官网上的所有演示站点都可以秒,但是处于影响过大和客户还未修复的考虑,就一直没有说出来。最后客户修复了,但是这个问题传给了开发商,然后就所谓的“修复”了。

4.那不就是没有卵用的么?你说这么多不就是说了废话?修复的漏洞还是0day?

当然不是这样的,我们随便找几个个官方上面写的成功案例:

等等,都可以看到这个页面:

后门依然是存在的,但是为什么无法利用呢?

还记得我上面说了,官方修复了么?

那为什么官方修复了,这个后门没有删呢?

很简单啊,因为这个“后门”它们自己还要用啊,所谓的“修复”就是把利用的接口也就是modifier.config.php这个文件改了个名而已。

5.那利用接口改成什么名字了呢?

这我就没办法透露了,只能让各位自己去寻找了。毕竟这个cms还是商场,光是他官网的客户案例里面就有不少很大的网站了。说实话,要是官方不改名,我都还不敢写这篇文章,要不然怕不是又是律师函警告。

6.那说白了我们还不是用不了这个漏洞!辣鸡!

话不是这么说滴,虽然官方给他们的大客户们都改了接口名,但是很多盗版“客户”就没有改名了,这依然是0day,特别是各种微信商场,基本都是用这个框架,简直是各种屠杀呢~

7.那这到底是不是官方留的后门?

这个问题我在最后着重强调,我肯定不知道这是不是后门,我认为这肯定是正常的业务逻辑对吧?上面写的只是我的个人猜想,最后是不是后门,还要给各位看官自己鉴别了。

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-03-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏finleyMa

求一波star 又一个react仿大众点评小项目

跟着这个视频做的 React高级实战 打造大众点评 WebApp 这个视频的源代码大家在github上搜 “react 大众” 就能找到。

16120
来自专栏FreeBuf

Windows系统的JScript组件被曝存在一个0day RCE

近期,Telspace Systems公司的安全研究专家Dmitri Kaslov在Windows操作系统的JScript组件中发现了一个严重的安全漏洞,而这个...

11100
来自专栏沃趣科技

ASM 翻译系列第六弹:高级知识 如何映射asmlib管理的盘到它对应的设备名

原作者:Bane Radulovic 译者: 赵恩东 审核: 魏兴华 DBGeeK社群联合出品 当使用ASMLIB 来管理ASM 磁盘时,设备的路径...

40840
来自专栏安恒信息

干货 | Intel CPU漏洞分析与安恒信息产品影响解读

综述 近日,Intel CPU中曝出Meltdown(熔断)和Spectre(幽灵)两大新型漏洞,包括Intel、AMD、ARM等主流CPU在内,几乎...

330110
来自专栏王亚昌的专栏

linux平台下server运维问题分析与定位

    结合我工作中碰到的运维问题,总结一下linux下server常见的运维问题以及定位方式。这里的server主要指自主开发的逻辑server,web sr...

15910
来自专栏杨建荣的学习笔记

你的备库做好准备了吗(r7笔记第78天)

这篇文章计划了一段时间,本来想写篇心情文字,还是留到周末再放飞心情吧。 今天的内容是关于数据库的备库的思考,当然我们可以自己问自己,我们的备库准备工作做好了吗?...

38370
来自专栏JAVA高级架构

大型网站技术架构

早期的网站为了节省成本一般会设计成集中式系统,应用程序、数据库等都部署在一台服务器上。 但随着业务的快速度发展,逐渐出现瓶颈,按一定原则**(应用拆分、服务拆分...

39960
来自专栏逸鹏说道

TypeLoadException: 找不到 Windows 运行时类型“Xaml.Controls.Binding

奇怪的问题,我以为是我不小心添加了什么标签导致的,后来发现。。。坑爹,把项目名字改一下,然后移除掉,接着再加载一下就可以了。。。。。。。崩溃了,,,,事实证明=...

25540
来自专栏CSDN技术头条

【问底】徐汉彬:亿级Web系统搭建——单机到分布式集群

大规模流量的网站架构,从来都是慢慢“成长”而来。而这个过程中,会遇到很多问题,在不断解决问题的过程中,Web系统变得越来越大。并且,新的挑战又往往出现在旧的解决...

272100
来自专栏Java后端技术栈

大型网站技术架构总结一二

早期的网站为了节省成本一般会设计成集中式系统,应用程序、数据库等都部署在一台服务器上。 但随着业务的快速度发展,逐渐出现瓶颈,按一定原则**(应用拆分、服务拆分...

15220

扫码关注云+社区

领取腾讯云代金券