OWASP Top 10 2021(1.Broken Access Control未授权的访问控制)

上图为OWASP Top 10 2021

OWASP更新了来自2021的漏洞榜单

Top1从Injection(注入)变成了Broken Access Control(未授权的访问控制)

接下来展开说说Broken Access Control

Broken Access Control我把它翻译成未授权的访问控制或者你直接理解成未授权访问也行

大量的Bug Hunter报告发现了此类漏洞很自然的它上升至了Top1

什么是未授权访问控制?

访问控制强制执行策略,使用户不能在其预期权限之外采取行动。故障通常会导致未经授权的信息泄露、修改或破坏所有数据,或在用户范围之外执行业务功能。常见的访问控制漏洞包括:

通过修改 URL、内部应用程序状态或 HTML 页面,或仅使用自定义 API 攻击工具来绕过访问控制检查

允许将主键更改为他人的用户记录,允许查看或编辑他人的帐户。

特权提升。以用户身份而不登录,或以用户身份登录时充当管理员。

元数据操作,例如重放或篡改 JSON Web 令牌 (JWT) 访问控制令牌或 cookie 或被操纵以提升权限的隐藏字段,或滥用 JWT 失效

CORS 错误配置允许未经授权的 API 访问。

强制以未经身份验证的用户身份浏览经过身份验证的页面或以标准用户身份浏览特权页面。访问 API 时缺少对 POST、PUT 和 DELETE 的访问控制。

用本不属于你的权限来做其他事为逻辑漏洞的一种这儿进行了细分

用代码举一个简单的例子

这里的内容不适合小白需要有一定的开发知识 开发中有一种情况我们需要展示用户的一些敏感数据,基于常规楼机我们会选择用户的唯一标识 也就是用户的id来获取用户的相关信息 如果当前登陆ID用户只能访问为自己ID的相关信息

但是如果用户恶意修改来自GET参数ID的数值又没进行相关的访问控制这时便会造成一个未授权的访问控制

原本属于admin uid为1的用户信息被test uid为2的用户读取到,造成信息泄露 上面我只举例了一种可能出现在代码逻辑当中的未授权的访问控制,能造成为授权访问控制漏洞点的方向很多。篇幅关系不一一举例用一例较为流行常见和易懂的例子来进行简单讲解 后面我会把owasp top都进行一个讲解。最后用一个靶场实现漏洞的全部复盘。敬请期待

关于漏洞修复。未授权的访问控制修复无他。验证相关权限 参考目前较为流行的验证方式 JWT(Json web token)核心非对称加密算法