[公开漏洞]天津航空重置任意用户密码(账户安全关键敏感信息泄漏)

来源:WooYun 浏览:660次 时间:2014-06-23
做网站找雨过天晴工作室
天津航空重置任意用户密码(账户安全关键敏感信息泄漏) 相关厂商: 天津航空 漏洞作者:gongshw 提交时间:2014-05-09 12:28 公开时间:2014-06-23 12:28 漏洞类型:账户体系控制不严 危害等级:高 自评Rank:10 漏洞状态: 已交由第三方厂商(cncert国家互联网应急中心)处理 漏洞来源:http://www.wooyun.org Tags标签: 信息泄露 重置密码 天津航空 漏洞详情 披露状态:

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已确认所述情况,通过公开联系渠道向网站管理方天津航空有限责任公司通报处置。

最新状态:

暂无