zoukankan      html  css  js  c++  java
  • [典型漏洞分享]YS的防暴力破解设计存在缺陷

    YS使用的防暴力破解机制存在缺陷,该缺陷可被用于暴力破解其它用户密码【高】

    问题描述:

             YS在用户登录页面设置了验证码机制,当用户输入密码错误次数达到3次时,再次登录需要验证码以防止攻击者进行暴力破解,但在需要验证码的情形下,当用户成功认证登录之后,该验证码机制将失效,此时攻击者可以无数次向服务器重放用于登录认证的http请求。

    测试步骤:

    1、  安装浏览器拦截代理工具burp,并启动拦截功能。

    2、  在用户名和密码栏填入有效的帐户名和无效的密码,登录失败3次直至出现验证码输入框,如图所示:

    clip_image002

    3、  在用户名和密码栏填入有效的帐户和密码,并点击登录,此时burp拦截到该用于登录的http请求,并将该http请求发送到burprepeater,如下图所示:

    clip_image004

    4、  关闭burphttp请求拦截功能,在另外的机器上使用正确账户并登录到YS

    5、  切换回到burprepeater标签,可看到以上拦截的用于登录的http请求,修改password字段修改为一个任意错误的值,点击“go”按钮进行重放10次,服务器并未返回要求用户输入验证码的响应(响应码为“1005”),也就是说攻击者可以在此状态下无限次对服务器发送该请求,而不受验证码的限制,而此时如果在burp上输入正确的口令时是可以登录的。如图所示:

    clip_image006

    clip_image008

    问题扩展:

             攻击场景:当攻击者尝试暴力破解弹出验证码后,将登录接口转入burp,在等待用户登录账户后即可展开真正的暴力破解。

    解决建议:

    1、  在所有需要认证的地方,无论在任何状态下(已登录或未登录),当用户发送超过3次携带错误密码的请求时,均要求输入验证码,或者对该帐户进行短时间的锁定。

    2、对所有需要输入口令的地方强制实施密码复杂度策略,提高暴力破解的难度

  • 相关阅读:
    Python 实现扫码二维码登录
    深入理解Python生成器(Generator)
    EasyUI DataGrid 结合Java 各种技巧大综合,你值得拥有。
    C#中读取XML错误解决: System.Xml.XmlException: “Element”是无效的 XmlNodeType。
    CSS3学习系列
    关于java中文乱码问题,我有话要说。
    表格的相关操作
    动态生成列
    开发随笔
    在ASP页面进行参数化 使用access数据库
  • 原文地址:https://www.cnblogs.com/fishou/p/4177590.html
Copyright © 2011-2022 走看看