漏洞url:
http://xxxxxx.com/xxxxxxx/StudentResetPasswordFirst.aspx
一个找回密码界面。
用户名处存在sql注入:
有一定过滤,但是可以绕过。
当条件为真的时候会出现用户:007074。在这里,只需要将手机号替换为自己的手机号,我们在前面是直接注释掉了的,所以后面无法对身份证、手机号等进行有效效验,所以会直接通过验证。
来到重置密码界面:
由于之前注释掉了手机号的效验,所以填任意手机号都可以直接通过,在发送短信这里是没有再次对手机号进行效验的,所以这里直接发短信即可。
发送短信这里也没有限制,所以存在短信轰炸漏洞:
输入验证码,然后重置密码就成功了。
去登录,发现这个号是已经毕业的学生,无法登录。此时也不知道其他账号,只知道当条件为真的时候出现的账号是007074,猜测是因为条件为真返回数据,但是只能返回一条,而007074是数据库的第一条数据,所以返回了它。Fuzz无法爆破账号,因为条件为真的时候只会返回007074这个账号,而条件不为真的时候会显示无法匹配学生信息。
骚姿势来了,通过其他注入语句得知数据库为mssql数据库:
那我们可以通过order by 来进行排序。
Ps:MSSQL没有LIMIT
通过排序后返回的账号不同,成功获得了其他用户账号。
玄学来了,多次发包会返回不同的账号,如下:
第一次排序获得账号:yanshi
再次发包:
获得账号:cshare
看到了吗?同样的payload可以随机获得不同的账号。嘿嘿
不知道是什么原因、通过order by desc,order by 2等等不同的排序可以获得不通过的账号。
通过获得的账号修改其密码,登录进去。
成功登录。
总结:
通过有限制Sql注入,导致逻辑漏洞致使无条件任意用户密码重置+短信轰炸。
推荐阅读:
点赞,转发,在看
原创投稿作者:csz
本文始发于微信公众号(HACK学习呀):实战 | 某大学注入+逻辑漏洞挖掘
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论