漏洞概要
关注数(24 )
关注此漏洞
漏洞标题:中国国旅修改任意用户密码/秒改
提交时间:2015-06-16 09:15
修复时间:2015-06-16 18:01
公开时间:2015-06-16 18:01
漏洞类型:网络设计缺陷/逻辑错误
危害等级:高
自评Rank:15
漏洞状态:厂商已经修复
Tags标签:
无
漏洞详情 披露状态:
2015-06-16: 细节已通知厂商并且等待厂商处理中 2015-06-16: 厂商已经确认,细节仅向厂商公开 2015-06-16: 厂商已经修复漏洞并主动公开,细节向公众公开
简要描述: 第一次提交几天没有审核,最后给个未通过,好无语还以为是重复提交呢,结果原因是过程不详细,感觉挺详细的啊,那就再来一遍吧,看在写两次的份上给高分rank吧(过程很详细)!!!
详细说明: 先用一个用户走一遍正确的流程,提取正确响应码。
HTTP/1.1 200 OK Server: CITS Date: Mon, 15 Jun 2015 17:39:39 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding Content-Language: zh-CN X-Powered-By: Servlet/2.5 JSP/2.1 Content-Length: 4947 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>éç½®å¯ç </title> <meta name="description" content="ä¼åä¸å¿_éç½®å¯ç "> <meta name="keywords" content="ä¼åä¸å¿_éç½®å¯ç "> <link href="http://file.cits.cn/online/images/cits_logo.ico" rel="icon" type="image/x-icon"/> <link href="http://file1.cits.cn/online/images/cits_logo.ico" rel="shortcut icon" type="image/x-icon"/> <link href="http://file1.cits.cn/css/b2c/common/??layout.css?v=1.0.1" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="http://file.cits.cn/js/b2c/jquery/??jquery-1.11.2.min.js,jquery.SuperSlide.2.1.js,jquery.jqtransform.js,jquery.DOMWindow.js,jquery.cookie.js,jquery.autocomplete.js,jquery.artDialog.js,jquery.lazyload.min.js?v=1.0.1"></script> <meta name="location" content="province=æ²³å;city=ç³å®¶åº;coord=114.518502,38.052292"> <script>var _hmt =_hmt ||[];(function() {var hm =document.createElement("script");hm.src ="//hm.baidu.com/hm.js?e7bdd9d92a22943295c3a60a605361b3";var s =document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm,s);})();</script> </head> <body> <div class="row m-t-0 bg_gray_1 top_style" id="headerTop" style="display: none;"> <div class="cav_1200"> <div class="atxt" id="memberStatus"></div> </div> </div> <input type="hidden" id="loginID" value=""> <div class="headout"> <div class="headtop"> <a href="http://sjz.cits.cn"> <img src="http://file1.cits.cn/images/b2c/logo_1.png" alt="å½æ
å¨çº¿" width="86" height="72"/> </a> <a href="http://sjz.cits.cn"> <img src="http://file1.cits.cn/images/b2c/logo_2.png" alt="å½æ
å¨çº¿" width="135" height="69" /> </a> </div> </div> <script type="text/javascript">$.post("/member/status.html",function(data) {if (data.indexOf("ç»å½") < 0) {$('#headerTop').show();$("#memberStatus").html(data);} });</script> <form id="form1" method="post"> <div class="login_con" align="center"> <div class="popoutUserS"> <h2 align="left">éç½®å¯ç </h2> <div class="popboxUserS"> <table class="tablebd"> <tr> <td align="right">æ°å¯ç </td> <td align="left"><input type="password" name="password" id="password1" class="input_text" autocomplete="off" onblur="passwordCheck1()" onfocus="$('#password1Message').text('');" /></td> <td width="40%"><font color="red" id="password1Message"></font></td> </tr> <tr> <td align="right">确认å¯ç </td> <td align="left"><input type="password" name="password2" id="password2" class="input_text" onfocus="$('#password2Message').text('');" onblur="passwordCheck2()" /></td> <td width="30%"><font color="red" id="password2Message"></font></td> </tr> <tr> <td colspan="3" align="center"><input type="button" onclick="doSubmitForPswReset()" class="inpt_search" value="ç¡®å®" /></td> </tr> </table> </div> </div> </div> <input type="hidden" id="password1Check" /> <input type="hidden" id="password2Check" /> <input type="hidden" name="submitType" id="submitType" /> </form> <div class="footbox"> <div class="foottop"> èç³»æ们ï¼<a href="javascript:void(0)">service@cits.com.cn</a> | å¨è¯¢ç线ï¼<span>400-600-8888</span> </div> <div class="footbot"> Copyright © 2007-2014 ä¸å½å½é
æ
è¡ç¤¾æ»ç¤¾æéå
¬å¸<br />京ICPè¯020312å· | 京å
¬ç½å®å¤11010102000810å· </div> </div> <script type="text/javascript" src="http://file.cits.cn/js/b2c/common/??js.js,tabs.js,addMyFavorite.js,behaviorTrack.js,biaodan.js,common.js,device.min.js,iframeTools.js,headerNew.js?v=1.0.2"></script> <script type="text/javascript" src="http://file1.cits.cn/js/b2c/json/keywords.js"></script> <script type="text/javascript">try {addBehaviorTrack("","MEMBER","","","","","10f664c54232491fa6e2ca53fab7225f");} catch (err) {} </script> <div style="DISPLAY: none"> <script type="text/javascript">var cnzz_protocol =(("https:" ==document.location.protocol) ?" https://" :" http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1254452230'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "s4.cnzz.com/z_stat.php%3Fid%3D1254452230' type='text/javascript'%3E%3C/script%3E"));</script> <script type='text/javascript'>(function() {var s =document.createElement('script');s.type ='text/javascript';s.async =true;s.src =(location.protocol =='https:' ?'https://ssl.' :'http://static.') + 'gridsumdissector.com/js/Clients/GWD-002591-0C1D54/gs.js';var firstScript =document.getElementsByTagName('script')[0];firstScript.parentNode.insertBefore(s,firstScript);})();</script> </div> <script type='text/javascript'>window.BWEUM||(BWEUM={});BWEUM.info ={"stand":true,"agentType":"browser","agent":"tpm.oneapm.com/static/js/bw-send-411.4.1.js","beaconUrl":"tpm.oneapm.com/beacon","licenseKey":"AQ~aJeUVvRnYZe3J","applicationID":7526};</script><script type="text/javascript" src="//tpm.oneapm.com/static/js/bw-loader-411.4.1.js"></script> <script type="text/javascript" src="http://file.cits.cn/js/b2c/channel/member.js"></script> <input type="hidden" id="pageName" value="memberResetPassword" /> </body> </html>
到了修改密码的页面,code里的可以看到没有token,因此任意用户修改为正确的响应码就能修改任意用户密码。
漏洞证明: 用另一用户测试修改密码。
输入的验证码肯定是错误(除非走了狗屎运),把false修改成true。
放行后会看到返回的响应包系统异常,把code里正确的响应包替换掉放行,就能修改密码。
最后一步登录验证!
修复方案: 添加token验证,完善服务端验证,看在两天次的份上给高rank吧,深夜挖洞不易啊。
版权声明:转载请注明来源 路人甲 @乌云
漏洞回应 厂商回应: 危害等级:高
漏洞Rank:15
确认时间:2015-06-16 13:48
厂商回复: 非常感谢您的报告,问题已处理,十分感谢您对中国国旅的支持。
最新状态: 2015-06-16:已修复
漏洞评价:
评论
2015-06-16 19:35 |
这只猪 ( 路人 | Rank:5 漏洞数:2 | 南无阿弥陀佛!)
2015-06-16 20:44 |
zhxs ( 实习白帽子 | Rank:32 漏洞数:19 | Jyhack-TeaM:http://bbs.jyhack.com/)
2015-06-16 22:57 |
Observer ( 实习白帽子 | Rank:35 漏洞数:8 | 我在夕阳下奔跑,那是我逝去的青春)
@这只猪 @zhxs action里的do intercept --> response this request
2015-06-17 12:18 |
Ztz ( 普通白帽子 | Rank:152 漏洞数:40 | 自由职业)
@zhxs @这只猪 intercept规则里面设置reponse body cotains "false",改成true后forward
2015-06-17 19:02 |
zhxs ( 实习白帽子 | Rank:32 漏洞数:19 | Jyhack-TeaM:http://bbs.jyhack.com/)
@Ztz 亲 亲吻为何我么有找到、的地方、找遍了都么有
2015-06-17 19:18 |
qhwlpg ( 普通白帽子 | Rank:226 漏洞数:54 | 潜心代码审计。)
2015-06-17 22:09 |
Ztz ( 普通白帽子 | Rank:152 漏洞数:40 | 自由职业)
@zhxs 一级标签Proxy -> 二级标签Options -> 找到Intercept Server Responses -> 勾上Intercept responses based on the following rules 和 automatically updates Content-length haerder,并取消选择所有复选框,单击左边add -> 逻辑选And,拦截条件选Body,匹配条件选Matches,关键词填false
2015-06-18 08:59 |
这只猪 ( 路人 | Rank:5 漏洞数:2 | 南无阿弥陀佛!)
2015-06-19 17:37 |
进击的zjx ( 普通白帽子 | Rank:295 漏洞数:61 | 工作需要,暂别一段时间)
2015-06-24 12:55 |
zhxs ( 实习白帽子 | Rank:32 漏洞数:19 | Jyhack-TeaM:http://bbs.jyhack.com/)
2015-06-24 14:00 |
flyfish ( 路人 | Rank:10 漏洞数:1 | 安全爱好者。)
2015-07-17 13:18 |
Seven.Sea ( 实习白帽子 | Rank:76 漏洞数:24 | 唯有安全与美食不可辜负。)
2015-07-28 22:08 |
Coeus ( 路人 | Rank:4 漏洞数:2 | 入门级小白,承接原子弹抛光/打腊、拆洗导...)