码迷,mamicode.com
首页 > 其他好文 > 详细

YS忘记密码机制存在缺陷,可导致任意用户口令被修改【高】

时间:2014-12-23 13:54:43      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

记录了安全测试过程中发现的一些典型的安全问题

YS忘记密码机制存在缺陷,可导致任意用户口令被修改【高】

问题描述:

         YS网站提供用户密码修改功能,当用户忘记密码时可通过该功能找回密码,但该修改密码的流程存在如下问题:

1、  手机验证码过短(只有4位且为纯数字),很容易被暴力破解。

2、  只单纯通过手机验证码来判断用户的真伪,在输入手机验证码后直接在页面上进行密码修改,而不是采用更安全的多重认证的方式。

测试步骤:

1、  安装burp并启动http请求拦截功能。

2、  打开YS首页,选择“修改密码”,如图:

技术分享

3、  在修改密码对话框中输入一个要修改密码的用户名,如下图所示:

技术分享

4、  点击“下一步”,弹出输入手机验证码的对话框,任意输入一个错误的验证码,并提交,burp将抓到用于向用户手机发送验证码的http请求,同时将该请求发送到burprepeater,待后面进行重放,如图:

技术分享

技术分享

5、  使用burprepeater功能对该http进行多次重放,每次均修改checkcode的值,由于checkcode4位纯数字,范围为1-9999,故使用自动化的方式(比如burpintruder功能)可进行暴力破解,进而获得用户的checkcode,如下图所示:

技术分享

6、  在手机验证码的对话框中重新输入暴力破解出来的正确的checkcode,即可在当前页面上对用户的密码进行修改!

技术分享

技术分享

技术分享

问题扩展:

         结合自动化方法,攻击者即可修改YS任意用户的密码。

解决建议:

1、  用户提交手机验证码的请求不需要带上手机号和用户名等信息,可以直接通过cookie从数据库查询,避免被恶意篡改。

2、  为手机验证码提供放暴力破解机制,即如果尝试3次提交手机验证码错误,则立马让该手机验证码失效,此外,正常情况下,手机验证码最初有效期为半个小时。

3、  当用户密码被修改时或者用户异地登录时应给予登录或手机提醒。

YS忘记密码机制存在缺陷,可导致任意用户口令被修改【高】

标签:

原文地址:http://www.cnblogs.com/fishou/p/4179893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!