记一次奇葩重置密码的逻辑漏洞
第一次写,写的差,各位大师傅就不要骂我啦~~~
漏洞成因
在忘记密码的验证过程中,出现了比较奇葩的逻辑缺陷。当验证码不正确的时候,没有正常返回,继续循环判断验证码是否正确,而是直接向下执行。从而导致了该漏洞的产生...
因为这个漏洞比较奇葩,故记之...
首先看看盲猜的逻辑验证图

流程
0x01 发现目标


遇见这种网站的思路:
1.爆破 2.寻手册找--弱口令 3.测逻辑,测注入....
0x02 发现问题
我这里直奔主题,逻辑漏洞
我们先看看忘记密码处的页面的相关问题


发现,可以先进行判断用户名是否存在...
看到这觉得多半没啥希望,最多可以判断用户是否存在...没什么意义.
哪知,小手又点了一个下一步....验证码输入错误,但是这个请求有点慢,似乎是执行了什么....瞅瞅..
(因为我写文章的时候依旧搞清楚这个原理,所以验证码直接写了四个xxxx)

好家伙,好家伙,我直呼好家伙~~~~
先进邮箱看看这个连接


如果能知道它的超级管理员的用户名,就应该是可以的把,那么怎么去找呢
当我看着屏幕思考的时候,突然发现,忘记密码处不是有一个通过姓名进行验证的吗?再结合它发送的重置密码的链接 不就可以顺利拿到管理员账户
常见无非就是管理员名称无非就是: 系统管理员 超级管理员 管理员....
先让他去判断

####重置走起


本想通过这一步拿到管理员的账户名称 比如说admin root manager 但似乎有点那啥...

其实走到这一步,我们很可能陷入 固定思维,其实用户名登录也存在使用汉字进行登录,只是我们没有常常遇见罢了...就潜意识认为账户一般是字母+数字....
而这个案例就是典型的用汉字就可以了,当然你找到管理员的具体账户名也是可以的
###马上就是见证奇迹的时候


总结:
这个奇葩的逻辑漏洞需要注意几点
- 首先,后端虽然对管理员的邮箱进行校验,但是验证码的逻辑出现问题,其他逻辑再好也是白搭...因为首先都是校验验证码的逻辑,只是常常遇见的验证码没校验,一般是爆破.
2.对于登陆的账户名并不一定是字母+数字,也有可能是汉字。汉字的文化博大精深~
3.个人觉得,其实逻辑漏洞说简单点就是要见路不走........