Web安全—逻辑越权漏洞(BAC)

逻辑越权漏洞

漏洞分类:逻辑越权漏洞属于漏洞分类中的服务端漏洞,属于权限控制类漏洞
漏洞简介:
越权漏洞是比较常见的漏洞类型,通常分为两种类型,垂直和水平越权,简单可以理解为,在修改某个用作身份标识的参数后,用户A拥有了用户B对于应用的操作权限。
漏洞原理:通常用户访问一个应用的大致流程是:登陆—验证权限—数据库查询—数据返回,如果"验证权限"这个阶段出现验证权限不足或没有验证,那么就会导致越权,用户A可以操作其他用户的内容。
Web安全—逻辑越权漏洞(BAC)_第1张图片

越权漏洞分类:

水平越权(同级别越权):也叫做访问控制攻击。web应用程序在接受用户发送过来的操作请求时,没有判断这条请求的数据操作所属人,攻击者可修改某个ID之类的身份验证,从而使A用户具有操作B账号的权力。
Web安全—逻辑越权漏洞(BAC)_第2张图片

垂直越权(跨级别越权):也叫做权限提升攻击。使用低权限的账号,发送高权限账号才能有的请求,获得其高权限的操作。
Web安全—逻辑越权漏洞(BAC)_第3张图片

漏洞常见场景:
通常越权漏洞容易出现在权限页面(需要登陆的页面),增,删,改,查的地方,当用户对权限页面内的信息进行操作时,后台需要对用户的权限进行验证,看是否具备操作的权限,如果校验规则过于简单则容易出现越权漏洞。
漏洞利用(判断应用通过什么方法判断账号权限,例如数据表中的usertype值等):
前端显示,当根据用户的请求包判断用户权限,从而显示对应权限的用户代码界面,例如普通用户A只显示查看,不具备操作的选项(增,删)等
后端数据库会根据提交的参数对应数据表中的字段来判断属于那种权限的用户,如下:
Web安全—逻辑越权漏洞(BAC)_第4张图片
水平越权:修改对应身份验证的参数,如userid=1修改成userid=2来判断是否存在水平越权漏洞
垂直越权:获取高权限账号下的操作数据请求包,修改身份验证参数(cookie)等来判断是否存在垂直越权漏洞。
获取高权限账号请求数据包
1,高权限账号直接代理抓取或普通权限账号获取(需要存在功能)
2,开源自行搭建,抓取数据包
3,根据普通账号猜测
漏洞修复方法:
1,前后端同时对用户输入信息进行校验,双重验证机制
2,调用功能前先验证用户是否具备此功能的操作权限
3,直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊化处理
4,永远不要相信来自用户的输入,对可控参数进行过滤,验证和编码等。
总结:
逻辑越权漏洞就是应用对于不同用户之间的操作权限的请求数据包未做验证或验证不完整,导致用户A在修改用于身份验证的标志后,便拥有了同权限或高权限的操作权限。
相关文章:
水平越权访问与垂直越权访问漏洞
WEB漏洞-逻辑越权之水平垂直越权

你可能感兴趣的:(Web安全—漏洞学习,web安全,安全,网络)