逻辑越权漏洞
简介:
越权访问(Broken Access Control,简称BAC)是Web应用程序中一种常见的漏洞,由于其存在范围广、危害大,被OWASP列为Web应用十大安全隐患的第二名。
该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限才能访问到的页面或数据。
在实际的代码审计中,这种漏洞往往很难通过工具进行自动化监测,因此在实际应用中危害很大。
目前有两种漏洞类型:“水平和垂直”
- 水平漏洞:通过访问普通用户,进而访问其他同等级的用户,获取其电脑信息
- 垂直漏洞:同过访问普通用户,进而访问管理员用户,对管理员账户信息进行泄露
附图:
漏洞产生原理:
- 1、代码逻辑:代码接受前台传输的数据,选择性的显示用户对应权限的页面内容,并没有真实的对用户对应的权限进行严格的规定
- 2、数据库:不同权限的用户都存在在数据库的一个表中
#越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定
修复方案及建议:
1.前后端同时对用户输入信息进行校验,双重验证机制
2.调用功能前验证用户是否有权限调用相关功能
3.执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
4.直接对象引用的加密资源 ID,防止攻击者枚举 ID,敏感数据特殊化处理
5.永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤
具体利用演示:参考博客https://blog.csdn.net/weixin_45441315/article/details/119848189