越权漏洞
概述
越权访问(Broken Access Control,简称 BAC)是 Web 应用程序中一种常见的漏洞,由于其存在范围广、危害大,被 OWASP 列为 Web 应用十大安全隐患的第二名
该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定,一旦权限验证不充分,就易致越权漏洞
越权漏洞的分类
水平越权(平行越权)
水平越权:指相同权限下不同的用户可以互相访问
登录普通账号,修改查询的 id 或者用户

水平越权代码分析

username 传入在此之前没有任何验证,传入参数拼接到数据库查询了。没有进行验证权限验证
垂直越权
垂直越权是不同级别之间或不同角色之间的越权,一般是低权限用户往高权限越权
垂直越权漏洞利用
准备两个不同权限的账号 分别登录同一个网站,查看低权限的缺少高权限那些模块,抓取高权限的的模块 请求参数,再切换低权限用户再进行提交、
管理员 admin 123456 普通用户 pikachu 000000
管理员权限

普通权限


把 admin cookie 替换成 pikachu 的 cookie

把原来 admin 的 cookie 替换成 pikachu 用户的 cookie

越权成功,将会添加一个 moonsec 用户
垂直越权代码分析
登录账号和密码,在数据库中,返回 level 如果等于 1 跳转管理员页面
如果等于 2 就进行用户页面

在 op2_admin_edit.php 源码中,只是判断是否登录,并没有对用户权限进行验证,只要是登录就能往下操作,这个页面的添加账号信息。所以登录的任何用户只要提交参数即可创建用户
越权漏洞修复方案
越权漏洞修复方案
1、基础安全架构,完善用户权限体系。要知道哪些数据对于哪些用户,哪些数据不应该由哪些用户操作;
2、鉴权,服务端对请求的数据和当前用户身份做校验;
3、不要直接使用对象的实名或关键字。
4、对于可控参数进行严格的检查与过滤!
更新: 2025-05-05 13:53:10
原文: https://www.yuque.com/yuhui.net/network/mrog5mx705x4is87

评论(0)
暂无评论