迷糊的全局守卫

随着技术的发展,前后端分离越来越流行,因为这样的流程使得前后端各负其责, 前端和后端都做自己擅长的事情,不互相依赖,开发效率更快,而且分工比较均衡,会大大提高开发效率,但有些问题也显露了出来......

0x00 前言

随着技术的发展,前后端分离越来越流行,因为这样的流程使得前后端各负其责, 前端和后端都做自己擅长的事情,不互相依赖,开发效率更快,而且分工比较均衡,会大大提高开发效率,但有些问题也显露了出来......

image.png

0x01 案例 - 伪造Roles欺骗全局守卫导致越权

F12 发现了许多敏感的路由,便注册一个账号 开始进行测

进来后当然是习惯的拼接路径,来未授权 可是无果。后发现有两个相同的path

观察了一下,发现一个可以访问页面权限大,一个访问页面的权限小。然后看了看F12-NetWork,发现了问题

研究了一会,决定尝试把role="APPLICANT",修改成role="SCHOOL"看是否可以访问权限大的页面

越权成功!

0x02 补充 - 第一个案例引起的思考

最近在研究的时候发现上面案例的问题还是挺多网站存在的,然后自己总结 + 分析原因 后又发现新一类的问题的思路

看了上一个案例,再通过下面两张图相信大家已经知道了我的下一步

将role="student"修改为role="sa",直接放结果图

思考是因为我只修改了response,并没有实际的去修改返回的token,那么又是怎么 “越权” 的呢?

微信图片_20220804160543.png

发现这类问题通常伴随着鉴权不严格所导致的,观察了没有修改role的请求,发现没有token字段的存在

后看了看JS文件,发现了管理员是如何发起请求的

手动构造数据包,成功获取数据!所以如果以后我们从JS找到了一些接口,访问却提示无权限,那么我们就可以尝试在JS里管理员请求所带上的字段,再次尝试访问

0x03 案例 - 前端逻辑不完善导致绕过全局守卫未授权

F12 发现了许多敏感路径 注册一个账号 开始测试

然后尝试拼接实现未授权,拼接,虽然提示没有权限 + 跳转回home页面,但是他这一瞬间显示的总用户和总提交数引起了我的注意,感觉有戏

抓包访问,发现是有一处接口的功能是返回总用户数,看来他只做了前端的全局守卫看是否为管理员,后端并没有进行认真的鉴权

抓包进入,点击 “题目” ,后再放包,即可绕过跳转逻辑

未授权成功!

0x04 总结

到这里,前后端分离的一些问题也是显露了出来,前后端做的事情不协调,后端以为前端使用全局守卫已经很安全,就没有对接口进行严格的鉴权操作,导致了问题的出现

  • 发表于 2022-08-05 09:55:15
  • 阅读 ( 9291 )
  • 分类:渗透测试

7 条评论

name'
0x02 补充 - 第一个案例引起的思考 第五个图响应头里面的域名没打码。赶紧码上去,大师傅。
TUANOAN 回复 Egoista
复现的好处多多滴
Egoista 回复 TUANOAN
突然想起来,这些API和接口以及复现方法,是不是都得自己做过一遍才能理解思维和操作方法?好像自己做一遍也浪费不了多久时间对吧,只要做出来的程度并不需要精通对吧
请先 登录 后评论
请先 登录 后评论
TUANOAN
TUANOAN

3 篇文章

站长统计