越权漏洞
水平越权:同一权限用户间的跨越
垂直越权:同一用户不同权限间的跨越
漏洞原理
不同的用户的权限等级在数据库中,就是用一个值表示的,例如mem-level为0表示管理员用户,为1表示普通用户。水平越权主要是参数问题,如www.xxx.com/u/user.php?user_id=008,后面的参数user_id就是可能出现该漏洞的地方,水平一般可以通过黑盒测试出来。垂直越权,我看到的分两种,一种就是修改数据包代表权限等级的值,还有一种就是由于代码本身的不严谨(普通用户也有操作管理员用户的功能代码,只是在页面中不显示,这里就需要白盒了)。
漏洞实践
水平越权
这里我用墨者上的一个靶场举例(真实环境下还是有的)
解题步骤:
1.登录测试用户test/test,F12查看到有一个带有card-id参数的url数据包,且返回的是test用户的数据。
2.将card_id的参数值改成所查目标的值(查看目标马春生的图片就能看到所对应的值),进行访问
3.将返回的数据中的密码进行解密,登录,即可获取到key
垂直越权
使用靶场一个是pikachu的垂直越权,二是minicms,这里就不做演示了。
https://www.cnblogs.com/zhaihuijie/p/12659930.html
https://xz.aliyun.com/t/5333
漏洞拓展
两个检测越权漏洞的工具
- burpsuite上的Authz插件
- 自动项目-中通安全Secscan-authcheck,链接https://github.com/ztosec/secscan-authcheck