前言:
先简单说一下后台未授权漏洞的挖掘方式,一般有下面几个思路:
1)看网站相关js代码寻找api,构造进行访问,如果不存在鉴权可以直接访问,那么就存在漏洞;
2)有账号能登录进后台,然后把一些能获取敏感数据的url,复制到另外一个浏览器直接打开,如果可以正常访问那么存在漏洞;
3)一些一闪而过的后台页面,果断使用burpsuite拦截包,将鉴权的数据包drop掉,剩下的包正常放过去,如果能进行后台,同时功能点还能正常使用,那么存在漏洞。
正文:
这次案例的未授权,类似于第三点也是一个一闪而过的功能点,但不是在后台,而是在主页。同时由于数据包中的id值可以修改,导致可以越权到教师账号使用该功能点,同时获取该教师的敏感信息。总的来说是一个比较有意思的漏洞,细节如下:
1.首先是通过下载该网站提供的操作手册,知道了账号默认密码,然后爆破出了一个学生账号,进行登录。登录成功后,在备课授课页面,有一个“创建课程”的按钮一闪而过,如下所示:
2.当时就觉得有点奇怪,但随后就想到了会不会存在未授权访问呢,虽然这是前台,并不是后台。但不妨一试,带着这个疑问,重新加载页面,burp直接拦截包,一个一个看,果然发现了猫腻。
3.在众多数据包中,有如下一个数据包,该数据包中有一个setLogin,随后跟了一个用户ID,如下所示:
4.立马猜出来setLogin和设置身份凭证有关,至于为什么在登陆的情况下,还有这种奇怪的逻辑设计,就不知道了。随后将id修改为某教师的id,看看能否越权:
5.放包过去,出现了一个jsonType=GetUserInfo,当时觉得这个数据包可能是获取用户信息的,进行重放。哇,直接出来了信息,如下所示:
6.身份信息都出来了,说明setLogin那里是成功越权了的。然后将剩下的包全部放过去,切回页面一看,成功了来到该教师操作界面:
7.随后验证是否能操作,新创建一个课程,点击发布,Bingo,成功创建,高危到手:
总结:
这个案例总结两个点,一是一闪而过的未授权访问其实不仅仅存在于后台,主页、主站其实也可能存在;二是关于越权漏洞,更加坚定了哪怕一个站99%的功能点不存在越权,那么1%的依然可能存在。这个站当时被其他厂商、被同事测过好多遍,我测的时候,测了整整一天,测了上百个功能点,没发现一个越权。但是最后在这个一闪而过的犄角旮旯找到了这个越权,所以漏洞这东西真的说不准。
就像王老师当初跟我说的,很多大师傅挖的越权,还不是平平无奇的修改id就越了,但是在于别人是怎么能找到这个点的,这里面有经验是肯定的,但决定因素还是在于非常人的细心,只有比别人更细,才能挖出别人挖不到的洞。
最后,如果师傅们能有收获,希望能顺手点个赞,不枉这么费劲的码字了,么么哒~