• 由内存过期失效引起的密码爆破


    事件描述

    有一漏洞为某大型购书网的密码爆破重置。初一看没在意,因为今天是在看了各种爆破。后经提醒是业务主站的,漏洞存在的话实在是严重,我甚至能从我认识的人中找出几个来拿到他们的账号和购书记录、电子书笔记等。

    漏洞描述

    密码重置的手机验证码是四位的,保证了时间上足够爆破成功。

    但是网站本身是有次数限制的, burpsuite截取数据包,repeater三次后第四次repeater显示验证码失效,看起来似乎是次数限制,没法成功了(然而)。

    之后对验证码进行爆破,因为网站限制了频率,线程过高会503,所以线程设置为2。

    前三个一直显示密码错误,在爆破到第四个的时候,显示验证码过期,继续爆破,到了七千左右的时候,intruder卡住了,之后突然又通畅了,显示密码错误。

    由此将需要爆破的 0000-9999 一万个验证码重复两遍,也就是两万个叠加在一起爆破,在第二遍的时候基本就没有限制了,可以成功爆破,重置密码。

    原理推测

    如果重置密码的当前session 次数太多,送入风控系统中封锁一下,但是放在内存中不会一直放着,大概过一段时间就过期了。过期后也不会再因为爆破而进入池子封锁,就能顺利爆破了

    测试方法

    将一万个验证码重复成两三万,慢慢跑,压低线程突破频率现在,耐心让他跑到最后。

    最重要的是,分析返回码不同的原因,看看最后返回码会不会变回来。

    修复方法

    错误次数达标了,直接这个号封了半小时一小时

    -664

  • 相关阅读:
    Mybatis中的设计模式
    Mybatis的#{}和${}的区别是什么?
    ES的写入速度优化
    康师傅JVM:垃圾回收相关概念(十六)
    i++为什么不是原子操作?
    Zookeeper的watch机制
    LeetCode 1.两数之和
    ESP 8266 引脚图
    Arduino 将 String 转化为 int
    微擎修改 icon.jpg 后项目主页未变
  • 原文地址:https://www.cnblogs.com/huim/p/8215235.html
Copyright © 2020-2023  润新知