OWASP TOP 10漏洞是指由Open Web Application Security Project(OWASP)发布的十大最严重、
最普遍的Web应用程序安全漏洞。这些漏洞在当今的Web应用程序中非常普遍,而且具有很高的危害性。
因此被视为web应用程序安全领域必须认真防范和修复的关键问题。而且大家去应聘安全测试岗位或
有安全技能要求的软件测试岗位,熟悉OWASP TOP 10漏洞是必备要求。以下对于OWASP TOP 10 逐一介绍。
01 访问控制失效
访问控制失效漏洞是指由于程序开发时的缺陷,导致限制未生效,从而产生了失效的访问控制漏洞。攻击者可以
利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的账户、查看敏感文件、修改其他用户的数据、
更改访问权限等。
图:某酒店系统越权删除修改用户信息漏洞
02 加密机制失效
加密机制失效指的是在Web应用程序中,由于加密措施的不当或缺失,导致敏感数据在传输或存储过程中被泄露或遭受篡改的风险增加。这种漏洞通常与加密算法的选择、密钥管理、协议使用等方面的问题相关。
图:某深圳公司,员工将邮箱密码等敏感上传github,导致泄露
03 注入
注入漏洞(Injection)指的是攻击者通过向应用程序输入恶意数据,从而实现对应用程序的攻击和控制。这类漏洞主要是由于应用程序没有正确地验证和过滤用户输入的数据,导致恶意代码得以执行。从而进一步数据泄露、数据篡改、系统被控。
图:某银行某站存在注入漏洞,导致站点账号密码数据泄露
04 不安全设计
不安全设计(Insecure Design) 指的是在应用程序设计阶段就存在的安全缺陷,这些缺陷可能导致应用程序容易受到攻击。不安全设计通常与应用程序的架构、功能、数据处理和交互方式等方面有关。包括关键身份验证、访问控制、业务逻辑等。
图:某网站存在的支付业务漏洞,可通过篡改金融,1元购买保险。
05 安全配置错误
安全配置错误通常是由于不安全的默认配置、不完整的临时配置、开源云存储、错误的HTTP标头配置以及包含敏感信息的详细错误信息所造成的。因此,我们不仅需要对所有操作系统、框架、库和应用程序等进行安全配置,而且必须及时修补和升级它们。
图:某通分站服务配置不当可getshell
06 自带缺陷和过时的组件
自带缺陷和过时的组件是指Web应用程序中使用的第三方库、框架、插件或其他软件组件存在已知的安全漏洞,或者这些组件的版本过于陈旧,不再接收安全更新或修补程序。若被攻击者利用,可能会造成严重的数据丢失和服务器接管。同时,使用含有已知漏洞的组件的应用程序和API可能会破坏应用程序防御、造成各种攻击并产生严重影响。
图:某宝典使用WebView组件,该组件存在任意代码执行漏洞
07 身份识别和身份验证错误
通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者利用其他开发缺陷来暂时性或永久性冒充其他用户的身份。
在开发web应用程序时,开发人员往往只关注Web应用程序所需的功能,所以常常会建立自定义的认证和会话方案。但是要正确的实现这些方案却是很难的。结果就在退出、密码管理、超时、密码找回、账户更新等方面存在漏洞。
图:*某*系统,密码使用弱口令,容易被爆破
08 软件和数据完整性故障
软件和数据完整性故障与不能防止完整性违规的代码和基础设施有关。一个例子是应用程序依赖来自不受信任的来源、存储库和内容交付网络(CDN)的插件、库或模块。不安全的CI/CD管道可能会导致未经授权的访问、恶意代码或系统受损。最后,许多应用程序现在包括自动更新功能,其中更新在没有充分完整性验证的情况下被下载并应用于以前受信任的应用程序。攻击者可能会上传自己的更新以分发并在所有安装上运行。另一个例子是对象或数据被编码或序列化为攻击者可以看到和修改的结构,容易受到不安全的反序列化。
图:某证券系统存在反序列化命令执行漏洞
09 不足的日志记录和监控
“安全日志和监控故障”是指当安全日志和监控机制未能正确实施或配置时,导致无法有效检测和响应安全事件的风险。这类漏洞可能导致组织无法及时发现和应对潜在的安全威胁。
图:网络日志的重要性
10 服务端请求伪造
服务端请求伪造(Server-Side Request Forgery,SSRF)大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址过过滤和限制。攻击者利用此漏洞可诱使服务器向内部系统或不受信任的系统发起请求,从而可能泄露敏感信息或执行未授权的操作。
图:某博SSRF漏洞