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

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

缺陷编号:wooyun-2016-0196014

漏洞标题:深信服应用交付报表系统某处命令执行

相关厂商:深信服

漏洞作者: 路人甲

提交时间:2016-04-13 22:10

修复时间:2016-06-02 08:10

公开时间:2016-06-02 08:10

漏洞类型:命令执行

危害等级:高

自评Rank:16

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-04-13: 细节已通知厂商并且等待厂商处理中
2016-04-18: 厂商已经确认,细节仅向厂商公开
2016-04-28: 细节向核心白帽子及相关领域专家公开
2016-05-08: 细节向普通白帽子公开
2016-05-18: 细节向实习白帽子公开
2016-06-02: 细节向公众公开

简要描述:

RT

详细说明:

仅仅影响4.5以下,漏洞存在于report\script\login.php

$user_urlcoded = $_REQUEST['userID'];
$pswd_urlcoded = $_REQUEST['userPsw'];
$addr_urlcoded = urlencode($_SERVER['REMOTE_ADDR']);
$userName = urldecode($_REQUEST['userID']);
//这里都使用urldecode了,为啥不用其他的替换呢
$log_type = $_REQUEST['log_type'];
if(strlen($user_urlcoded)!=0 && strlen($pswd_urlcoded)!=0)
{
$errorMsg = exec("/usr/sbin/webui/cgi-bin/login.cgi login_check " . $user_urlcoded ." ". $pswd_urlcoded . " " .$addr_urlcoded);
//直接就执行了
if ($errorMsg == "0")
{
$_SESSION["user_name"] = $userName;
// 获取当前用户权限
get_user_permission($user_urlcoded);
// 检查是否拥有权限
if(!$_SESSION['rep_login'])
{
$errorMsg = "提示:对不起,您没有权限登录报表";
}
else if($_SESSION['rep_view'] == "0")
{
$errorMsg = "提示:对不起,您没有权限查看报表";
}
// 设定超时
$_SESSION['request_time'] = time();
$_SESSION['max_time'] = 600;
$session_file = simplexml_load_file('/etc/sinfor/ad/sys/sys_adminif.conf');
foreach($session_file->property as $property)
{
if($property['name']=="rep_timeout")
{
$_SESSION['max_time'] = intval($property);
}
}
}
}


$_SERVER['REMOTE_ADDR']被url编码了.只是剩下了userPsw跟userID可以执行了.

1.png

userPsw的执行

1.png

漏洞证明:

userID的命令执行

1.png

userPsw的命令执行

1.png

附上几个案例

http://oat.aweb.com.cn:85/report/script/login.php
http://223.203.217.104:85/report/script/login.php

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2016-04-18 08:02

厂商回复:

感谢白帽子提交的问题。经确认,该问题确实存在,该问题只存在于AD3.9-AD4.5中的部分版本设备中,4.5以上版本已经将此问题修复(目前版本为6.4)。由于该设备并未进行版本升级,导致问题遗留,目前客服同事正在进行跟踪核对,协助老版本用户修复漏洞。
感谢白帽子为我们指出问题,请白帽子私信留下联系方式,我们将为您寄送礼物以示答谢!

最新状态:

暂无