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

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

缺陷编号:wooyun-2015-0105039

漏洞标题:OK盈行重置任意用户密码漏洞(非爆破)

相关厂商:okisbank.com

漏洞作者: 恋锋

提交时间:2015-04-01 11:03

修复时间:2015-05-17 10:34

公开时间:2015-05-17 10:34

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

OK盈行(www.okisbank.com)是由深圳市飞讯传媒有限公司投资并负责运营的互联网金融服务品牌。公司在2012年7月9日成立。
OK盈行专注提供互联网金融信息发布及网络借贷撮合交易服务。
致力于通过建立公正、透明、诚信、创新的财富管理平台,为大众提供融资便利以及财富增值机遇。OK盈行凭借成熟严谨的风险控制机制,为中小企业提供低成本融资服务的同时,也为大众提供低风险、高回报、多样化的投资渠道。
该系统存在设计缺陷,可重置任意用户密码(非爆破),请及时修复。

详细说明:

管理复现简单步骤:
1.先按步骤找回自己账号,手机接收验证码,输入验证码,到修改密码页面停住不动
2.在同一个浏览器找回另一个手机号的密码,接收验证码,但是我们不知道验证码,然后返回第一个账号修改密码的页面,修改密码即可修改要攻击的手机号的账号了。
管理修改了漏洞作者案例中的手机号登录成功的截图:

1.png


洞主复杂复现步骤(每次都这么复杂):
1、通过手机号找回密码时,可绕过短信验证码校验,具体流程如下:
2、首先使用已知账号完成正常找回密码流程,记录校验正确短信码后返回的响应包

HTTP/1.1 200 OK
Server: nginx
Date: Tue, 31 Mar 2015 10:28:26 GMT
Content-Type: text/html;charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Content-Length: 10684
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>OK盈行-找回密码</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="keywords" content="OK盈行、p2p网贷、网上贷款、p2p贷款、网络贷款、网贷平台、网络借贷、网络理财、投资理财、p2p投资理财平台">
<meta name="description" content="OK盈行是国内领先的严谨型p2p理财融资平台,以抵押模式为主,100%本息保障,为小额贷款、短期贷款、信用贷款、抵押贷款等需求的借款人和有网上投资理财需求的出借人搭建一个安全、透明、公平、高效的平台。">
<meta name="baidu-site-verification" content="vEWUGhtzX7" /><link rel="stylesheet" type="text/css" href="/css/common.css" />
<link rel="stylesheet" type="text/css" href="/css/new_style.css" />
<link rel="stylesheet" type="text/css" href="/css/index.css" /></head>
<body>
<div style="position:fixed; background:#fff; z-index:9999;width:100%;height:768px; overflow:hidden; display:block;" name="dyym" id='83fd083c-c8d6-4aa1-abb0-ad207c02da4e'>
</div>
<input type="hidden" id="_dyid" value="83fd083c-c8d6-4aa1-abb0-ad207c02da4e" >
<script type="text/javascript" src="/js/header.js" charset="UTF-8" language="JavaScript"></script>
<div class="top clearfix">
<div class="top_bar">
<div class="lft">
<ul>
<li class="tit1">400-096-0039</li>
<li class="tit2"><a href="http://www.okisbank.com/xszy/zxkf.html">在线客服</a></li>
<li >&nbsp;&nbsp;&nbsp;<a target="_blank" href="http://shang.qq.com/wpa/qunwpa?idkey=6a80c20c9dacf5686e3b65d0210106cf3a3a2c7537e38a1758d95e5721f57e0c"><img border="0" src="/images/group-1.png" alt="OK盈行会员中心1 号群" title="OK盈行会员中心1 号群"></a></li>
<li >&nbsp;&nbsp;&nbsp;<a target="_blank" href="http://shang.qq.com/wpa/qunwpa?idkey=55b15de6f078ddbb6d34b8d61baabccd45ab951bda9b41e5904a295470ef0d29"><img border="0" src="/images/group-2.png" alt="OK盈行会员中心2号群" title="OK盈行会员中心2号群"></a></li>
</ul>
</div>
<div class="rig">
<a href="http://www.okisbank.com" style="color: #19a4ed;">首页</a>
<a href="http://www.okisbank.com/user/" style="color: #f76900;">我的OK盈行</a>
<a href="http://www.okisbank.com/xszy/">投资攻略</a>
</div>
</div>
</div>
<div style="background:#fff;height:89px;width: 100%;">
<div class="header" style="height:89px;">
<div class="logo fl">
<a href="http://www.okisbank.com"><img src="/images/logo.png" title="OK盈行" /></a>
</div>
<ul class="menu">
<li><a href="http://www.okisbank.com/financing/index.htm" class="tablink">我要理财</a>
<ul>
<li><a href="http://www.okisbank.com/financing/yxlc/">理财体验专区</a></li>
<li><a href="http://www.okisbank.com/financing/sbtz/">散标投资列表</a></li>
<li><a href="http://www.okisbank.com/financing/zqzr/">债权转让列表</a></li>
<li><a href="http://www.okisbank.com/financing/hmd/">还款黑名单</a></li>
</ul></li>
<li><a class="hide" href="http://www.okisbank.com/credit/index.htm">我要借款</a>
<ul>
<li><a href="http://www.okisbank.com/credit/xjd/index.htm">薪金贷</a></li>
<li><a href="http://www.okisbank.com/credit/syd/index.htm">生意贷</a></li>
<li><a href="http://www.okisbank.com/credit/dkyx.html">借款咨询</a></li>
</ul></li>
</ul>
<div class="index_login fr">
<a href="http://www.okisbank.com/register.html">注册</a><a href="http://www.okisbank.com/user/login.html">登录</a>
</div>
</div>
</div>
<div class="clear"></div>
<div class="contain clearfix">
<div class="contain_main">
<div class="login">
<div class="pub_title">找回密码</div>
<div class="secret clearfix">
<div class="f24 tc">重置密码</div>
<form action="/password/reset.htm" class="form1" method="post">
<div class="secrebd mt30 ml30 f14 clearfix">
<!-- <div class="scell clearfix pb15">
<div class="sbt">
<span class="red pr10">*</span>校验码:
</div>
<div class="sinfo">
<input name="code" type="text" class="stext fl required isint min-length-6 max-length-6" />
<p class="clear"></p>
<p tip></p>
<p errortip class="error_tip">密码格式输入有误</p>
<span class="fl"></span>
</div>
</div>
-->
<div class="scell clearfix pb15">
<div class="sbt">
<span class="red pr10">*</span>新密码:
</div>
<div class="sinfo">
<input name="password" type="password" class="stext required password-a min-length-6 max-length-16" />
<p tip>请输入6-16个字符,区分大小写</p>
<p errortip class="" style="display: none"></p>
</div>
</div>
<div class="scell clearfix pb15">
<div class="sbt">
<span class="red pr10">*</span>确认密码:
</div>
<div class="sinfo">
<input name="repassword" type="password" class="stext required password-b min-length-6 max-length-16" />
<p tip>请再次输入密码</p>
<p errortip class="" style="display: none"></p>
</div>
</div>
<div class="d_btn">
<input class="btn btn01 sumbitForme" type="submit" fromname="form1" value="提 交" />
</div>
<div class="efont clearfix">若您无法使用上述方法找回,请联系客服400-096-0039</div>
</div>
</form>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/js/jquery/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
<!--//
{var a = window.opener||window.parent;while(a.parent!=a){a = a.parent;}if(a.location.host!='www.okisbank.com'){a.location.href='http://www.okisbank.com';}}
$(function(){$("#nav").click(function(e){var src = e?e.target:event.srcElement;if(src.tagName == "H3"){var next = src.nextElementSibling || src.nextSibling;next.style.display = (next.style.display =="block")?"none":"block";}});});
function setTab(name,cursel,n){for(var i=1;i<=n;i++){var menu=document.getElementById(name+i);var con=document.getElementById("con_"+name+"_"+i);menu.className=i==cursel?"hover":"";con.style.display=i==cursel?"block":"none";}}
//-->
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-52664122-1', 'auto');
ga('send', 'pageview');
</script>
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 967088036;
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/967088036/?value=0&amp;guid=ON&amp;script=0"/>
</div>
</noscript><div class="clear"></div>
<div class="foot clearfix">
<div class="foot_content">
<div class="footer_top clearfix">
<div class="fl navmenu">
<a href="http://www.okisbank.com/gywm/gsjj.html">关于OK盈行</a> |
<a href="http://www.okisbank.com/gywm/aqbz.html">安全保障</a> |
<a href="http://www.okisbank.com/zxdt/mtbd.html">最新动态</a> |
<a href="http://www.okisbank.com/xszy/">投资攻略</a> |
<a href="http://www.okisbank.com/gywm/lxwm.html">联系我们</a> |
<a target="_blank" href="http://www.okisbank.com/map.htm">网站地图</a>
</div>
<div class="fx fr">
<span>关注我们:</span> <a target="_blank" href="http://t.qq.com/okisbank888?preview"><span class="foot_item item01"></span></a><a href="http://weibo.com/u/5181740702" target="_blank"><span class="foot_item item02"></span></a><a target="_blank" href="http://1685959691.qzone.qq.com/?ptlang=2052"><span class="foot_item item03"></span></a></div>
</div>
<div class="footer_m clearfix">
<div class="lft">
<ul>
<li><span class="ui_foot s_item01"></span>30倍活期存款收益</li>
<li><span class="ui_foot s_item02"></span>100元即可加入</li>
<li><span class="ui_foot s_item03"></span>100%本息担保</li>
</ul>
</div>
<div class="rig">
<span class="f12">客服热线(工作时间9:00 - 18:00)</span><br />
<span class="f24">400-096-0039</span><br />
<span class="a"></span>
</div>
<!-- <div class="rig" style="margin-right:50px;"><span class="f12">官方QQ群</span><br/><span class="f24">164073188</span><br/><span class="a"></span><p></p></div> -->
</div>
<div class="footer_b">
<div class="fl copyright">
<span class="s_logo"><a href="http://www.okisbank.com">OK盈行</a></span> | 我的投资银行© 2014-2015 www.okisbank.com All Rights Reserved | 备案号:粤ICP备12063644号-3</div>
<div class="right approve">
<script type="text/javascript">
var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F0fed600eaace02a001f9ebf0a244f274' type='text/javascript'%3E%3C/script%3E"));
</script>
<a href="http://pinggu.zx110.org" class="ui_term ui_term01" target="_blank"></a>
<a href="http://net.china.com.cn" class="ui_term ui_term02" target="_blank"></a>
<a id="___szfw_logo___"href="https://search.szfw.org/cert/l/CX20141225006152006255" target="_blank" class="ui_term ui_term03"></a>
<script type='text/javascript'>(function(){document.getElementById('___szfw_logo___').oncontextmenu = function(){return false;}})();</script>
<script type="text/javascript">
var _mvq = _mvq || [];
_mvq.push(['$setAccount', 'm-29304-0']);
_mvq.push(['$logConversion']);
(function() {
var mvl = document.createElement('script');
mvl.type = 'text/javascript'; mvl.async = true;
mvl.src = ('https:' == document.location.protocol ? 'https://static-ssl.mediav.com/mvl.js' : 'http://static.mediav.com/mvl.js');
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(mvl, s);
})();
</script>
</div>
</div>
</div>
</div><script type="text/javascript"
src="/js/validation.js"></script>
</body>
</html>


3、使用任意手机号重新进行一次找回密码操作,输入任意短信码(此处为123456),提交请求

1.jpg


4、该请求返回如下响应

2.png


5、使用前面记录的响应包替换此处

3.png


6、释放响应后,成功跳入重置密码页面

4.jpg


7、此处可成功设置新密码,使用该新密码可成功登录

5.jpg

漏洞证明:

参见详细说明

修复方案:

完善认证机制,不仅仅在前端进行验证,服务端校验同样重要

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2015-04-02 10:33

厂商回复:

感谢漏洞提交者。

最新状态:

暂无