ecshop /api/client/api.php、/api/client/includes/lib_api.php SQL Injection Vul

catalog

1. 漏洞描述
2. 漏洞触发条件
3. 漏洞影响范围
4. 漏洞代码分析
5. 防御方法
6. 攻防思考

 

1. 漏洞描述

ECShop存在一个盲注漏洞,问题存在于/api/client/api.php文件中,提交特制的恶意POST请求可进行SQL注入攻击,可获得敏感信息或操作数据库

http://sebug.net/vuldb/ssvid-21007


2. 漏洞触发条件

1. /api/client/api.php存在未过滤漏洞
2. 服务器magic_quote_gpc = off 
//magic_quote_gpc特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除,即默认情况下,magic_quote_gpc = Off

0x1: POC

http://localhost/ecshop2.7.2/api/client/api.php?Action=UserLogin
POST: UserId=%27%20or%20user_id=1%23

Relevant Link:

http://php.net/manual/zh/info.configuration.php


3. 漏洞影响范围
4. 漏洞代码分析

/api/client/api.php

<?php

define('IN_ECS', true);

include_once './includes/init.php';

//分发处理POST数据
dispatch($_POST);
?>

/api/client/includes/lib_api.php

function dispatch($post)
{
    // 分发器数组
    $func_arr = array('GetDomain', 'UserLogin', 'AddCategory', 'AddBrand', 'AddGoods', 'GetCategory', 'GetBrand', 'GetGoods', 'DeleteBrand', 'DeleteCategory', 'DeleteGoods', 'EditBrand', 'EditCategory', 'EditGoods');
    //当$_POST['Action'] == 'UserLogin'的时候调用API_UserLogin
    if(in_array($post['Action'], $func_arr) && function_exists('API_'.$post['Action']))
    {
        return call_user_func('API_'.$post['Action'], $post);
    }
    else
    {
        API_Error();
    }
}

/api/client/includes/lib_api.php

function API_UserLogin($post)
{
    $post['username'] = isset($post['UserId']) ? trim($post['UserId']) : '';
    $post['password'] = isset($post['Password']) ? strtolower(trim($post['Password'])) : '';

    /* 检查密码是否正确 */
    //$post['username']未进行过滤,造成盲注漏洞,参数是直接从原始$_POST获取的,未进行任何预处理,不受内核过滤影响
    $sql = "SELECT user_id, user_name, password, action_list, last_login".
    " FROM " . $GLOBALS['ecs']->table('admin_user') .
    " WHERE user_name = '" . $post['username']. "'";

    $row = $GLOBALS['db']->getRow($sql);
    ..

Relevant Link:

http://www.wooyun.org/bugs/wooyun-2010-02969


5. 防御方法

/api/client/includes/lib_api.php

function API_UserLogin($post)
{
    /* SQL注入过滤 */
    if (get_magic_quotes_gpc()) 
    {     
        $post['UserId'] = $post['UserId']     
    } 
    else 
    {     
        $post['UserId'] = addslashes($post['UserId']);     
    }
    /* */
    $post['username'] = isset($post['UserId']) ? trim($post['UserId']) : '';
    ..

Relevant Link:

http://www.topit.cn/ecshop-tutorial/ecshop_mangzhu_bug_for_ecshop_v2.7.2-195.html


6. 攻防思考

Copyright (c) 2015 LittleHann All rights reserved

 

更多相关文章
  • catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考   1. 漏洞描述 在进行输入变量本地模拟注册的时候,没有进行有效的GPC模拟过滤处理,导出key键注入 Relevant Link: http://bbs.ecshop.co
  • catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考   1. 漏洞描述 ECSHOP商城系统Search.php页面过滤不严导致SQL注入漏洞
  • catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考   1. 漏洞描述 ECSHOP的配送地址页面网页没有验证地区参数的有效性,存在sql注入漏洞,攻击者可利用火狐tamper data等插件修改提交到配送地址页面的post数据 ...
  • catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考   1. 漏洞描述 ECSHOP支付插件存在SQL注入漏洞,此漏洞存在于/includes/modules/payment/alipay.php文件中,该文件是ECshop的支 ...
  • catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考   1. 漏洞描述 Relevant Link: http://sebug.net/vuld
  • catalog 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考   1. 漏洞描述 通过该漏洞可以注入恶意代码到评论标题里,网站管理员在后台管理用户评论时触发恶意代码,直接危及到网站服务器安全 Relevant Link: http://s
  • WPF技术触屏上的应用系列(二): 嵌入百度地图、API调用及结合本地数据库在地图上进行自定义标点的实现
    原文: WPF技术触屏上的应用系列(二): 嵌入百度地图.API调用及结合本地数据库在地图上进行自定义标点的实现         去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体机.要求有很炫的展示效果,要有一定的视觉冲击力,可触控操 ...
  • 1.SUN官方网html版下载地址:java_ee_sdk-5_03-javadocs.zip http://java.sun.com/javaee/reference/index.jsp API Specifications Java EE 5 API Specifications Java EE ...
一周排行
  • 纯源码编译安装LAMP,linux,httpd,php,mysql源码编译安装 教程目标:使用源码编译安装的LAMP,运行php网页基础代码 日 期:2015年08月19日 联系邮箱:[email protected]
  • 在终端执行:wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-.noarch.rpm ls查看是否下载下来,然后执行 r
  • LeetCode題解(python):021Merge Two Sorted Lists
    题目来源: https://leetcode.com/problems/merge-two
  •      ID Origin Title 二分+dp 22 / 89 Problem A UVALive 5983 MAGRID 枚举 19 / 44 Problem B UVALive 5984 Save the ...
  • 


    		    Java2Html使用詳解
    Java2Html使用详解 在写Blog的时候,常常需要粘贴Java源代码,但是从IDE中
  • SafeNet HASP SRM SaaS Pass 软件授权解决方案是专门服务于 SaaS 模式的软件,可有效防止软件用户将自己的登录信息共享给他人使用,从而幫助 SaaS 供应商最大化自己的产品收入. Saas ...
  • 一.maxscript直接执行python命令 python.Execute<python command/expression> python.Execute后面跟的是要执行的python命令,命令用双 ...
  • #Exploit for [email protected] [email protected] 2015.07.23 from pwn import *   #init context(arch = 'amd64', os = ' ...
  • 


    		    索尼VCC/CR系列筆記本攝像頭安裝方法
    前段时间朋友的索尼笔记本使用ghost系统安装xp系统后,摄像头驱动已经安装,但摄像头无法
  • 1.条件测试(test,[]) #! /bin/bash echo "请输入登陆的用户名:" read name1 if test "$name1" = "Jack& ...