Web 安全:OWASP TOP10 漏洞介绍

web,owasp,top10 · 浏览次数 : 8

小编点评

OWASP TOP 10漏洞是指由Open Web Application Security Project(OWASP)发布的十大最严重、最普遍的Web应用程序安全漏洞。这些漏洞在当今的Web应用程序中非常普遍,而且具有很高的危害性。因此被视为web应用程序安全领域必须认真防范和修复的关键问题。以下是OWASP TOP 10漏洞的逐一介绍: 01 访问控制失效 02 加密机制失效 03 注入 04 不安全设计 05 安全配置错误 06 自带缺陷和过时的组件 07 身份识别和身份验证错误 08 软件和数据完整性故障 09 不足的日志记录和监控 10 服务端请求伪造

正文

 

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漏洞

 

 

 

与Web 安全:OWASP TOP10 漏洞介绍相似的内容:

Web 安全:OWASP TOP10 漏洞介绍

OWASP TOP 10漏洞是指由Open Web Application Security Project(OWASP)发布的十大最严重、 最普遍的Web应用程序安全漏洞。这些漏洞在当今的Web应用程序中非常普遍,而且具有很高的危害性。 因此被视为web应用程序安全领域必须认真防范和修复的关键问题

详解Web应用安全系列(8)不足的日志记录和监控

在Web安全领域,不足的日志记录和监控是一个重要的安全隐患,它可能导致攻击者能够更隐蔽地进行攻击,同时增加了攻击被检测和响应的难度。以下是对Web攻击中不足的日志记录和监控漏洞的详细介绍。 一、日志记录不足的问题 日志缺失或不完整 关键操作未记录:如用户登录、敏感数据访问、系统管理员操作等关键操作未

详解Web应用安全系列(4)失效的访问控制

在Web安全中,失效的访问控制(也称为权限控制失效或越权访问)是指用户在不具备相应权限的情况下访问了受限制的资源或执行了不允许的操作。这通常是由于Web应用系统未能建立合理的权限控制机制,或者权限控制机制失效所导致的。 危害 数据泄漏:攻击者可能通过越权访问获取敏感数据,如用户个人信息、财务数据、家

聚焦Web前端安全:最新揭秘漏洞防御方法

在 Web 安全中,服务端一直扮演着十分重要的角色。然而前端的问题也不容小觑,它也会导致信息泄露等诸如此类的问题。在这篇文章中,我们将向读者介绍如何防范Web前端中的各种漏洞。

请收下这 10 个安全相关的开源项目

开源为我们的开发带来了极大便利,但这些便利也伴随着一些安全隐患。每当项目引入一个库、框架、服务时,随之而来的安全风险也不可忽视。 所以,当开源吞噬世界的时候,代码安全就更得重视了。今天 HelloGitHub 就给大家带来了 10 款关于安全主题的开源项目,涵盖了编码安全、Web 安全、工具三个方面

极简工作流「GitHub 热点速览」

原以为 LLM 很难,但其实可以很简单,比如 Flowise 拖拽拖拽就能出来一个 LLM 流程,非常简单你的 LLM 就可以 run 起来了。同样的 web-check 也能极快速地帮你解决 Web 安全那些事,什么 DNS、Cookie 的安全问题不在话下,非常简单,一个仪表盘就看得一清二楚。

详解Web应用安全系列(5)敏感数据泄露漏洞

在最近几年,这是最常见的,最具影响力的攻击。这个领域最常见的漏洞是不对敏感数据进行加密。在数据加密过程中,常见的问题是不安全的密钥生成和管理以及使用弱密码算法,弱协议和弱密码。特别是使用弱的哈希算法来保护密码。在服务端,检测数据传输过程中的数据弱点很容易,但检测存储数据的弱点却非常困难。 敏感数据泄

详解Web应用安全系列(3)失效的身份认证

大多数身份和访问管理系统的设计和实现,普遍存在身份认证失效的问题。会话管理是身份验证和访问控制的基础,并且存在于所有有状态的应用程序中。攻击者可以使用指南手册来检测失效的身份认证,但通常会关注密码转储,字典攻击,或者在类似于钓鱼或社会工程攻击之后,发现失效的身份认证。 确认用户的身份,身份验证和会话

详解Web应用安全系列(2)注入漏洞之XSS攻击

上一篇介绍了SQL注入漏洞,今天我们来介绍另一个注入漏洞,即XSS跨站脚本攻击。XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web应用中常见的漏洞。指攻击者在网页中嵌入客户端脚本(一般是JavaScript),当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到

详解Web应用安全系列(1)注入漏洞之SQL注入

注入漏洞通常是指在可输入参数的地方,通过构造恶意代码,进而威胁应用安全和数据库安全。常见的注入漏洞包括:SQL注入和XSS跨站脚本攻击。 这篇文章我们主要讲SQL注入,SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加