一
前言
某次漏洞挖掘的过程中,碰到一个与以往挖掘的逻辑漏洞有些差别的漏洞,在此记录一下。
二
正文
漏洞点在忘记密码处。如图。
这里随便找了一个同学的学号进行下一步的操作。
这里正常验证的话,需要学号和身份证的信息,但是我们是没有身份证信息的,但是这里可以简单的抓包然后改包进行下一步。
响应包返回如下
看到这个响应包,相信有经验的师傅们都会会心一笑。这里尝试将响应包的failure改为success.
发现可以成功的带我们来到重置密码的界面。
这里还有一个拦路虎,手机验证码,且不说验证码能不能爆破的问题,仅当我点击发送验证的时候,页面的响应如下
这里看来还验证了上一步学号和身份证的验证结果,发送验证码在服务端看来是非法的。
不死心的我,尝试了将验证码置空,或者填了0000和9999之类的,最后干脆删掉了验证码字段,当然也都没有成功。
最后观察了一下提交密码重置后的响应包,如图。
这里当时看到这个null的时候,突然就灵光一闪。
会不会服务端根本没生成验证码(因为我点击发送验证码的时候显示了非法请求),从而导致验证码的值为null?
马上尝试了一下,发现了新世界!
请求包如下
再看看返回的响应包,成功了!
这和我以往碰到的单纯改响应包下一步验证的绕过稍稍有些不同,稍微根据响应包返回的信息,猜想了一下后端的逻辑,希望能给各位师傅一起分享一下漏洞挖掘的经验(新手上路大佬轻喷)
三
参考链接
文章来源:先知社区(irrik)
原文链接:https://xz.aliyun.com/t/8109
四
往期回顾
对某大学管理信息系统的一次渗透测试
Windows提权流程及手法,建议收藏