购物网站 黑客无限充值

安全阵线

本期主角 ShopXP网上购物系统

问题所在 SQL注入

主要危害 无限充值、挂马攻击

调研时间 2009.10.8~2009.11.3

ShopXP是一款流行的网上购物系统,用户通过它可以快速搭建一个在线购物网站,在谷歌中以“ShopXP”为关键字进行搜索共可找到约117000个网页。最近,我们电脑报安全团队的成员发现ShopXP有一个严重的SQL注入漏洞,黑客通过该漏洞可以轻易得到网站管理员的账号和密码,进入网站后台后可随意修改商品的价格,甚至为自己新建的账号无限充值。

我是zerobox的木子李,喜好研究安全漏洞。最近一位朋友邀请我检测他公司网站的安全性,盛情难却之下就答应了。我在网站的购物系统发现了一个重要问题,打听得知购物系统是用ShopXP搭建的。

我下载了整套ShopXP网上购物系统,对它的代码进行了分析,在xpCatalog_xpDesc.asp文件中发现了变量过滤不严的漏洞,该漏洞可以用来实施SQL注入攻击。成功注入后,就可以拿到ShopXP的管理员账号和密码。

对后台功能进行深入研究后,我发现该漏洞的危害非常严重,黑客不但可以通过漏洞进行挂马,还可以在后台任意修改商品的数量、价格等敏感数据,甚至还可以给指定账号无限充值!

防注入没能防住漏洞

ShopXP网上购物系统的问题出在xpCatalog_xpDesc.asp这个文件中,其代码中并没有对shopxpbe_id进行整形判断,从而形成注入漏洞。但是即使发现问题存在,想就这样注入也是不可能的。

经过分析,发现ShopXP网上购物系统使用了网络上较为流行的枫叶防注入程序,以此来防范黑客的SQL注入攻击。但是ShopXP网上购物系统在使用防注入程序时,却有问题存在,关键是这句:Fy_

Url=Request.ServerVariables("QUERY_S

TRING"),Request.ServerVariables,这样得到的数据是不会进行URL解码,这样我们就可以将URL进行编码从而绕过防注入程序。

购物网站中偷偷充值

第一步:打开谷歌搜索页面,输入关键字“inurl:xpCatalog_xpDesc.asp?action_key_order=big”进行搜索(图1),符合条件的网站有很多,我们随便打开一个网站进行测试,在其域名后添加如下URL:xpCatalog_xpDesc.asp?action_key_order=big&shopxpbe_%69d=79,其中%69就是经过URL编码后的“i”,这样做的目的是绕过系统的防注入程序。

44-f07-01.jpg

需要注意的是,如果添加URL后回车出现“产品数据正在收集当中……”这样的反馈信息,说明网站做了特殊处理,该漏洞无法被利用。如果出现出售的商品,那么网站的漏洞就可以被成功利用。

第二步:注入的工作可以交给注入工具来做,例如明小子和啊D注入工具等。这里我们以明小子注入工具为例,运行后点击“SQL注入猜解检测”按钮,将注入URL填入“注入点”文本框中,例如http://www.***.com /xpCatalog_xpDesc.asp?action_key_order=big&shopxpbe_%69d=79,点击“开始检测”按钮,如果存在SQL注入漏洞,程序会提示“恭喜,该URL可以注入!数据库类型:Access数据库”(图2)。

44-f07-02.jpg

第三步:由于ShopXP系统的数据库名,不在明小子注入工具默认检测的数据库名中,因此需要手动添加,点击“数据库”下方的“添加”按钮,填入ShopXP系统的数据库名shopxp_admin。

选中添加的“shopxp_admin”数据库名,点击“猜解表名”按钮,这时在“列名”处会出现“列名:admin和password”,选中“admin”,点击“猜解内容”按钮,工具会开始猜解内容,得到管理员账号admin。用同样方法可以猜解得到管理员密码(图3),本例中密码为edf9d879f8723a12,这是一串经过MD5加密后的密文,我们需要对它进行破解。

44-f07-03.jpg

打开MD5在线破解网站www.cmd5.com,输入密文,点击“MD5加密或解密”按钮,就可以得到破解后的密码原文84611769(图4)。

44-f07-04.jpg

第四步:有了管理员的账号和密码,就可以登录网站后台了,在网店域名后台添加:admin_shopxp,回车后即可打开网站的后台登录页面,输入管理员账号和密码登录。在后台,依次点击“商品管理”→“所有商品管理”,在这里我们就能任意修改商品的价格了(图5)。

44-f07-05.jpg

如果黑客想给某位会员充值,可以进入“会员管理”→“商城会员管理”,选择需要充值的会员,然后在“预存款”中输入需要充值的金额即可,如果商品的数额不大,网站管理员是很难发现的(图6)。

44-f07-06.jpg

小提示:除了修改网站会员的金额外,黑客还可以在网站上进行挂马,在后台进入“备份数据库”选项,通过经典的“数据库备份还原ASP木马”就可以获取网站的权限,这样就可以在网站上轻而易举地挂马了。

深度分析

网上购物系统和别的网站系统不同,普通网站系统被入侵,损失的是会员数据以及被挂马等,但网上购物网站被入侵了,除了上述危害外,还可能导致金钱损失,所以网上购物系统的安全性就更加重要了。

我们只需通过简单的几个步骤就拿到ShopXP系统的管理员权限,其安全性令人不满意。此类网站需要加强数据防注入的能力,实现方法为:把xpCatalog_xpDesc.asp获取name的语句改为For Each SubmitName In Request.QueryString,这样就可以防止注入了。

另外,在研究ShopXP后台的过程中,我们没有找到相应的操作记录统计功能,例如我们给会员进行充值,程序并没有将它形成一份详细的操作报告,这样不仅不利于网站的安全,同时也不利于销售额的统计。建议ShopXP的程序员能增加这一功能。