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

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

缺陷编号:wooyun-2014-059947

漏洞标题:天津航空重置任意用户密码(账户安全关键敏感信息泄漏)

相关厂商:天津航空

漏洞作者: gongshw

提交时间:2014-05-09 12:28

修复时间:2014-06-23 12:28

公开时间:2014-06-23 12:28

漏洞类型:账户体系控制不严

危害等级:高

自评Rank:10

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-05-09: 细节已通知厂商并且等待厂商处理中
2014-05-12: 厂商已经确认,细节仅向厂商公开
2014-05-22: 细节向核心白帽子及相关领域专家公开
2014-06-01: 细节向普通白帽子公开
2014-06-11: 细节向实习白帽子公开
2014-06-23: 细节向公众公开

简要描述:

天津航空网站重置密码存在设计漏洞,只要知道用户名,就可以重置用户密码,登录之后可以对查看订单信息,导致信息泄露。
PS:该航空公司已经出现信息泄漏导致的诈骗案例!

详细说明:

1、进入找回密码页面
2、输入任意用户名,例如123,点击下一步

QQ20140508-1@2x.png


3、这里要回答验证问题,可是网站并没有在服务器端验证输入,而是直接使用了如下代码

function secondStep() {
var input = document.getElementById("answer").value;
if (input == "") {
jqalert("请输入密码保护问题答案");
} else if (input == seanswer) {
changeTable("3");
} else {
jqalert("您输入的密码保护问题答案不正确");
}
}


3、也就是说,这一步完全形同虚设,seanswer这个全局变量直接存储了验证问题的答案。
4、进一步分析页面,发现重置密码是通过如下代码实现的:

function resetPwd() {
var url = '/frontend/users/modifyinfo/GetUser!resetPwd.action';
var params = {newPwd: document.getElementById('pwd1').value, userId: userId};
jQuery.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: params,
async: false,
success: processResetPwd
});
}


5、也就是说,可以不进行任何验证,直接重置用户密码。
6、骗子们显然已经开始利用这样的漏洞了吧。

QQ20140508-8@2x.png

漏洞证明:

1.png


QQ20140508-5@2x.png


QQ20140508-6@2x.png


登录成功

QQ20140508-7@2x.png

修复方案:

密保问题的验证需要在服务器端进行。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2014-05-12 18:05

厂商回复:

CNVD已确认所述情况,通过公开联系渠道向网站管理方天津航空有限责任公司通报处置。

最新状态:

暂无