言:
为什么要写这个呢?
求越权漏洞具体场景或定义补充~~~~欢迎拍砖
因为我在阿里负责越权漏洞治理,目标针对白盒领域,黑盒领域希望提升扫描能力建设。
为了合理的区分哪些场景可以兜的住,哪些场景可以做到扫描能力覆盖,提升工作效率,降低人力投入成本。
里面的部分细节分类,非标准化内容,需要各位大佬给予补充,希望微信沟通。
如果有换工作意向的,同样欢迎勾搭~
我个人调研了CWE/OWASP等内容,发现官方只有越权这个分类,但是细节中,并没有细化场景。
越权漏洞绝对是业务逻辑漏洞,但是鉴于【凡有要求,必有检出】的要求,我们需要做这块的能力建设。
注意:
如:http 请求入口、websocket 入口 就不用补充了
请求方式:HTTPMethod 7种不用补充了
入参内容:json/xml/form表单,http request header上数据就不用补充了
更多考虑,服务端的问题
越权漏洞大分类:
【PS】 为何要区分有用户场景和无用户场景,因为越权问题是基于URL来进行研判的,非应用维度。 我们需要区分出: 哪些URL是客户场景发起的请求,导致的越权问题。 哪些URL是服务器端发起的请求这个请求中没有用户身份。 需要分开针对增,删改,查不同的定义。 增:常规是数据库中无数据,进行数据增加。另一种是有关联关系绑定场景,需要判断关联数据是否为当前用户。 删改:理论上,删改一定要有用户身份或进行权限校验。不能直接通过某资源ID进行数据删改导致稳定性问题 「注意:」增删改如果是黑盒通过流量进行触发,会对生产环境造成脏数据影响,并且影响线上业务稳定性。 查:需要区分业务场景:区分信息对外公开、部分公开、非公开。 除公开数据外,部分公开或非公开都需要进行权限验证。
未授权访问
客户端发起的请求,服务器端没有任何的验证。
导致了数据增、数据删改、数据查导致敏感信息透出的场景。
标签值:未授权访问
水平越权
区分为2个业务场景
- 有用户场景
-
- 无用户身份标识,无权限归属判断(通过传入uid,rid进行查询)
-
-
- 注:批量rid时,需要对所有的rid进行校验。
- 多个资源ID,rid1&rid2,&rid3 才可以获取到具体数据场景
- 标签值:水平越权-有客户-无身份无鉴权
-
-
- 有用户身份标识,无资源归属判断(安全的uid,不安全的rid)
-
-
- 注:批量rid时,需要对所有的rid进行校验。
- 多个资源ID,rid1&rid2,&rid3 才可以获取到具体数据场景
- 操作其他人的rid时,业务逻辑中将该rid设置为当前登录用户的信息。
- 标签值:水平越权-有客户-有身份无鉴权
-
-
- 无用户身份标识,有资源归属判断(不安全的uid)
-
-
- 注:批量rid时,需要对所有的rid进行校验。
- 多个资源ID,rid1&rid2,&rid3 才可以获取到具体数据场景
- 操作其他人的rid时,业务逻辑中将该rid设置为当前登录用户的信息。
- 标签值:水平越权-有客户-无身份有鉴权
-
-
- RBAC场景中,权限归属在数据库中,无法覆盖
-
-
- 标签值:水平越权-有客户-RBAC存库场景
-
-
- 业务强相关逻辑,导致的水平越权。如:Oauth授权认证问题。
-
-
- 标签值:水平越权-有客户-业务强相关逻辑漏洞如OAuth认证绕过场景
-
- 无用户场景(工具类发起的请求)
-
- 回调接口(无用户身份,但是可以进行数据增删改查)
-
-
- 标签值:水平越权-无客户-ServertoServer(S2S)工具类callback场景缺失加签验签
-
-
- 特殊业务工具类场景,直接发起请求,进行数据增删改查
-
-
- 标签值:水平越权-无客户-加签被绕过导致权限控制失效
-
垂直越权
角色不同导致的垂直越权
- 硬编码导致的垂直越权漏洞:
-
- 如:google.com/manager/getUserInfo?uid=mzh&isadmin=codemzh
- 标签值:垂直越权-无客户-后端硬编码问题
- 前端无入口,通过拼接URL后,可以直接访问。导致了越权
-
- 标签值:垂直越权-有客户-后端缺失用户角色身份未鉴权
- RBAC场景中,在Cookie中,种下 roleId=1;导致超管权限信息泄露。
-
- 标签值:垂直越权-有客户-RBAC场景弱管理
无法兜底的场景:
- 非常见代码场景,扫描能力无法覆盖。如Blockly场景:https://baike.baidu.com/item/Blockly/4809222
-
- 标签值:无法兜底的场景-特殊语言问题
- 动态代理场景,白盒,黑盒扫描器无法覆盖。
-
- 标签值:无法兜底的场景-流量无法覆盖
- 如:
-
- google.com/doit?appname=getUserInfo
- google.com/doit?appname=editUserInfo
- 很多多级业务连带场景下,算作业务逻辑问题。非常规的越权漏洞,无法覆盖。
-
- 标签值:无法兜底的场景-业务逻辑漏洞
- 业务URL上,通过 ../ 绕过身份访问控制场景(这种权限控制绕过扛不住啊...)
-
- 标签值:无法兜底的场景-突破ACL访问控制
越权标签数据:
- 未授权访问
- 水平越权-有客户-无身份无鉴权
- 水平越权-有客户-有身份无鉴权
- 水平越权-有客户-无身份有鉴权
- 水平越权-有客户-RBAC存库场景
- 水平越权-有客户-业务强相关逻辑漏洞如OAuth认证绕过场景
- 水平越权-无客户-ServertoServer(S2S)工具类callback场景缺失加签验签
- 水平越权-无客户-加签被绕过导致权限控制失效
- 垂直越权-无客户-后端硬编码问题
- 垂直越权-有客户-后端缺失用户角色身份未鉴权
- 垂直越权-有客户-RBAC场景弱管理
- 无法兜底的场景-特殊语言问题
- 无法兜底的场景-流量无法覆盖
- 无法兜底的场景-业务逻辑漏洞
- 无法兜底的场景-突破ACL访问控制
朋友圈帮忙补充的内容:
https://github.com/ldbfpiaoran/springboot-acl-bypass service间调用 基于path区分是否鉴权
https://github.com/MIMAZHAN/PVD-HACK 基于burp history,进行参数修改的,越权检测
http://security.vipkid.com.cn/notice/17/ VIPKID基于数据流的越权漏洞检测
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论