2021 OWASP TOP 10 2021年常见web安全漏洞TOP10排行

什么是OWASP Top 10

OWASP,全称“开放式Web应用程序安全项目”是一个非营利性的组织,2003年该组织首次出版了“Top 10”,也就是10项最严重的Web应用程序安全风险列表。

Top 10 总结了Web应用程序最可能、最常见、最危险的十大安全漏洞。

OWASP Top 10中公布的漏洞,是最容易被黑客利用的,它也成为开发、测试及相关技术人员必须学会的知识。不少互联网公司的相关岗位面试中,OWASP Top 10是最常被提及的。

了解OWASP Top 10,可以有效避免自己的Web应用程序被黑客轻易攻破。

除了OWASP Top 10,OWASP创建了许多项目,例如容器安全十大风险、十大隐私风险、API安全Top 10、十大移动应用恶意行为等等,但风头均没有盖过OWASP Top 10。

欢迎参阅最新一期OWASP Top 10!

2021年版OWASP Top 10的编制比以往更受数据驱动,但又并非盲目地受数据驱动。我们从公开收集的数据中选定了8个类别,又从Top 10社区调查结果中选择了2个高级别的类别,组成了10个类别。我们这样做是为了一个根本原因,通过查看收集到的数据来回顾过去。因为应用安全研究人员寻找新的漏洞和测试它们的新方法需要时间,将这些测试集成到工具和流程中也需要时间。当我们能够可靠地大规模测试弱点时,可能已经过去了很长时间。为了平衡这种观点,我们使用社区调查来向一线应用程序安全和开发专家征求意见,询问他们认为数据可能尚未体现出来的、极其重要的弱点。

A01:2021-失效的访问控制

Broken Access Control

从第5位上升成为Web应用程序安全风险最严重的类别;提供的数据表明,平均3.81%的测试应用程序具有一个或多个CWE,且此类风险中CWE总发生漏洞应用数超过31.8万次。在应用程序中出现的34个匹配为“失效的访问控制”的CWE次数比任何其他类别都多。

A02:2021-加密机制失效

Cryptographic Failures

排名上升一位。其以前被称为“A3:2017-敏感信息泄漏(Sensitive Data Exposure)”。敏感信息泄漏是常见的症状,而非根本原因。更新后的名称侧重于与密码学相关的风险,即之前已经隐含的根本原因。此类风险通常会导致敏感数据泄露或系统被攻破。

A03:2021-注入

Injection

排名下滑两位。94%的应用程序进行了某种形式的注入风险测试,发生安全事件的最大率为19%,平均率为3.37%,匹配到此类别的33个CWE共发生27.4万次,是出现第二多的风险类别。原“A07:2017-跨站脚本(XSS)”在2021年版中被纳入此风险类别。

A04:2021-不安全设计

Insecure Design

2021年版的一个新类别,其重点关注与设计缺陷相关的风险。如果我们真的想让整个行业“安全左移” ,我们需要更多的威胁建模、安全设计模式和原则,以及参考架构。不安全设计是无法通过完美的编码来修复的;因为根据定义,所需的安全控制从来没有被创建出来以抵御特定的安全攻击。

A05:2021-安全配置错误

Security Misconfiguration

排名上升一位。90%的应用程序都进行了某种形式的配置错误测试,平均发生率为4.5%,超过20.8万次的CWE匹配到此风险类别。随着可高度配置的软件越来越多,这一类别的风险也开始上升。原“A04:2017-XML External Entities(XXE) XML外部实体”在2021年版中被纳入此风险类别。

A06:2021-自带缺陷和过时的组件

Vulnerable and Outdated Components

排名上升三位。在社区调查中排名第2。同时,通过数据分析也有足够的数据进入前10名,是我们难以测试和评估风险的已知问题。它是唯一一个没有发生CVE漏洞的风险类别。因此,默认此类别的利用和影响权重值为5.0。原类别命名为“A09:2017-Using Components with Known Vulnerabilities 使用含有已知漏洞的组件”。

A07:2021-身份识别和身份验证错误

Identification and Authentication Failures

排名下滑五位。原标题“A02:2017-Broken Authentication失效的身份认证”。现在包括了更多与识别错误相关的CWE。这个类别仍然是Top 10的组成部分,但随着标准化框架使用的增加,此类风险有减少的趋势。

A08:2021-软件和数据完整性故障

Software and Data Integrity Failures

2021年版的一个新类别,其重点是:在没有验证完整性的情况下做出与软件更新、关键数据和CI/CD管道相关的假设。此类别共有10个匹配的CWE类别,并且拥有最高的平均加权影响值。原“A08:2017-Insecure Deserialization不安全的反序列化”现在是本大类的一部分。

A09:2021-安全日志和监控故障

Security Logging and Monitoring Failures

排名上升一位。来源于社区调查(排名第3)。原名为“A10:2017-Insufficient Logging & Monitoring 不足的日志记录和监控”。此类别现扩大范围,包括了更多类型的、难以测试的故障。此类别在 CVE/CVSS 数据中没有得到很好的体现。但是,此类故障会直接影响可见性、事件告警和取证。

A10:2021-服务端请求伪造

Server-Side Request Forgery

2021年版的一个新类别,来源于社区调查(排名第1)。数据显示发生率相对较低,测试覆盖率高于平均水平,并且利用和影响潜力的评级高于平均水平。加入此类别风险是说明:即使目前通过数据没有体现,但是安全社区成员告诉我们,这也是一个很重要的风险。

排名第一 失效的访问控制(越权漏洞)

在我的理解中所谓的失效访问控制就是越权漏洞,也就是当开发者的逻辑出现问题时出现的逻辑问题。

越权漏洞是发生在网站,APP功能里的,比如用户登录,操作,提现,修改个人资料,发送私信,上传图片,撤单,下单,充值,找回密码等等,那么可以简单的理解为,绕过授权对一些需要验证当前身份,权限的功能进行访问并操作,

举例来讲:在网站APP里的找回密码功能,正常是按照手机号来进行找回密码,那么如果存在越权漏洞,就可以修改数据包,利用其它手机号获取短信,来重置任意手机号的账户密码。

发生漏洞的根本原因是对需要认证的页面存在漏洞,没有做安全校验,导致可以进行绕过,大部分的存在于网站端,以及APP端里,像PHP开发的,以及JAVA开发,VUE.JS开发的服务端口都存在着该漏洞,小权限的用户可以使用高权限的管理操作,这就是越权漏洞。

越权漏洞又分为水平越权,垂直越权,

水平越权

水平越权漏洞是可以操作同一个层次的账号权限之间进行操作,以及访问到一些账号敏感信息,比如可以修改任意账号的资料,包括查看会员的手机号,姓名,充值记录,撤单记录,提现记录,注单记录等等,也可以造成使用水平越权来执行其他用户的功能,比如删除银行卡,修改手机号,密保答案等等。

水平越权常见于业务系统中,对用户信息或者订单信息进行增删改查操作时,由于用户编号或者订单编号有规律可循(有序递增,订单编号常发现以日期开头后面再接几位有序增长的数字,类似20200520xxxx1,20200520xxxx2),测试人员通过burpsuite的 intruder对目标参数进行遍历测试即可

垂直越权

垂直越权漏洞可以使用低权限的账号来执行高权限账号的操作,比如可以操作管理员的账号功能。

当我们利用总不能用记的身份凭证来执行管理员的功能时,如果管理者没有很好的权限管理就会出现这种情况。多见于接口功能上,因为这样的访问点并不能很容易的被用户发现,当我们通过某些攻击手段获取了一个管理员的功能接口时,我们把身份认证的cookie(也有可能是其他字段或内容)替换为普通用户的就有可能实现攻击了,一般是利用BP中的Repeater来实现。

越权漏洞的探测

通常情况下,一个 Web 程序功能流程是登录 - 提交请求 - 验证权限 - 数据库查询 - 返回结果。如果验证权限不足,便会导致越权。常见的程序都会认为通过登录后即可验证用户的身份,从而不会做下一步验证,最后导致越权。

1. 通过隐藏 URL

实现控制访问有些程序的管理员的管理页面只有管理员才显示,普通用户看不到,利用 URL 实现访问控制,但 URL 泄露或被恶意攻击者猜到后,这会导致越权攻击。

2. 直接对象引用

这种通过修改一下参数就可以产生水平越权,例如查看用户信息页面 URL 后加上自己的 id 便可查看,当修改为他人的 ID 号时会返回他人的信息,便产生了水平越权。

3. 多阶段功能

多阶段功能是一个功能有多个阶段的实现。例如修改密码,可能第一步是验证用户身份信息,号码验证码类的。当验证成功后,跳到第二步,输入新密码,很多程序会在这一步不再验证用户身份,导致恶意攻击者抓包直接修改参数值,导致可修改任意用户密码。

4. 静态文件

很多网站的下载功能,一些被下载的静态文件,例如 pdf、word、xls 等,可能只有付费用户或会员可下载,但当这些文件的 URL 地址泄露后,导致任何人可下载,如果知道 URL 命名规则,则会便利服务器的收费文档进行批量下载。

5. 平台配置错误

一些程序会通过控件来限制用户的访问,例如后台地址,普通用户不属于管理员组,则不能访问。但当配置平台或配置控件错误时,就会出现越权访问。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章