一、确定测试站点
资产的收集依旧是按照弱口令与注册进站的思路进行寻找(具体思路可参考上篇文章,含有完整的收集思路与个人信息搜集方法)。最后确定了该站点,密码依旧存在弱口令:
于是利用默认密码成功登录该站点:
该站的小洞还是挺多的,这里只挑选部分记录
二、水平越权
进入之后,我首先来到个人信息模块,尝试是否可以越权,毕竟这里有个人信息,如果能越权就是中危。
从历史包中找到该接口的数据包:
通过分析,该接口是通过id鉴权的,我们观察这个id并不是常见的数字,常用的遍历方法无法成功越权到别人的信息,所以该参数是有一定规律的。
这时,我的思路是寻找其他接口,是否有未授权接口查到所有人的id,或者泄露了别人的id,这样再利用个人信息的接口,就可以越权了。
于是我测试了该站的一些功能,最后公告、通知一栏获得了发布人的id和userid:
利用该userid(用id换无法越权,但是用userid可以越权),最后也是成功在个人信息接口成功越权到该发布人的所有信息,成功实现水平越权。
这个里可以看到他人的身份信息了:
三、垂直越权
由于我搜集到的是某位老师的账号,所以其中有对学生进行管理的后台,如下:
这里我利用该信息成功弱口令登录了某位学生的账号,这样我们就有了一高一低两个权限的账号,可以进行垂直越权的测试。
测试垂直越权一般就是用低权限的账号去访问高权限的功能接口,若成功则成功垂直越权;或者使用高权限的账号,但是cookie要换成低权限的cookie,如果仍然可以成功访问高权限账号的功能接口,则也可以算垂直越权,如果直接不用cookie都能访问那就是未授权访问了,大家可以利用该思路进行测试。
这里,我首先登录低权限账号,获得了数据包中的cookie,将之替换到了高权限账户中,成功访问了学生管理后台的接口,正当我以为成功垂直越权时,我又将cookie删了,依然成功返回了内容,如下所示
这时我注意到了JWT,也就是数据包中的Authorization字段,我把它也删了,返回包直接出错了,也就是该系统是通过JWT进行鉴权的,而不是cookie。
所以,我用低权限的JWT替换了高权限账号的JWT,成功返回了学生管理接口的数据,包括该班级所有学生的信息:
高权限的JWT访问该接口:
高低权限的JWT均可访问展示学生信息的接口,证明确实存在垂直越权。
无偿领取网络安全优质学习资料与干货教程
申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。