起始
这个后门是在去年的某次渗透测试中发现的,但是因为时间点比较敏感,客户也未修复,就还未披露。
他们在中央的网站都留了后门,银行的也留,影响了一大批人,真是官方刺激!
其中包括官网上如下的网站:
实际上这些只是很少的网站,更多的是官网未写明但是依然使用的小客户。同时因为它涉及的是金融,所以影响较大。本来是不打算说出去的,但是客户早就已经修复了,同时似乎也说了出去,导致一些国有网站也修复了。现在影响力不大了,就打算发出来。
实际上这依然是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了。就提出一些我认为的一些疑点。
结合解密之后的疑似后门的文件剩下的代码来看,各种变量的赋值。我个人认为是厂商开发出来对付盗版的方法。不属于黑客入侵后留下的后门。
这是人家的商业cms,不是开源的,要是我直接发出来怕不是就律师函警告了。但是可以给大家一个参考地址:[http://down.admin5.com/php/98938.html]
对,这是0day,我一直没有提交,因为考虑到可能是正常的业务需求是吧?至于为什么没有利用成功呢,是因为这个问题是我在去年做项目的时候发现的。当时的客户是某大网站,成功利用这个后门打下来了。官网上的所有演示站点都可以秒,但是处于影响过大和客户还未修复的考虑,就一直没有说出来。最后客户修复了,但是这个问题传给了开发商,然后就所谓的“修复”了。
当然不是这样的,我们随便找几个个官方上面写的成功案例:
等等,都可以看到这个页面:
后门依然是存在的,但是为什么无法利用呢?
还记得我上面说了,官方修复了么?
那为什么官方修复了,这个后门没有删呢?
很简单啊,因为这个“后门”它们自己还要用啊,所谓的“修复”就是把利用的接口也就是modifier.config.php
这个文件改了个名而已。
这我就没办法透露了,只能让各位自己去寻找了。毕竟这个cms还是商场,光是他官网的客户案例里面就有不少很大的网站了。说实话,要是官方不改名,我都还不敢写这篇文章,要不然怕不是又是律师函警告。
话不是这么说滴,虽然官方给他们的大客户们都改了接口名,但是很多盗版“客户”就没有改名了,这依然是0day,特别是各种微信商场,基本都是用这个框架,简直是各种屠杀呢~
这个问题我在最后着重强调,我肯定不知道这是不是后门,我认为这肯定是正常的业务逻辑对吧?上面写的只是我的个人猜想,最后是不是后门,还要给各位看官自己鉴别了。