OWASP top 10漏洞详解

一、写在前边

  临近毕业,最近在找实习单位,看到好多招聘要求熟悉owasp top 10 安全漏洞,于是在经过一番查资料,终于有了大致的了解,为了加深印象,特意通过博客记录一下,也希望为有同样需求的同学提供一个参考,不足之处还请各位指出。


二、介绍

  OWASP:开放式Web应用程序安全项目(Open Web Application Security Project),OWASP是一家国际性组织机构,并且是一个开放的、非盈利组织,它致力于协助政府、企业开发、升级各类应用程序以保证其可信任性。所有OWASP的工具、文档、研讨以及所有分会都对任何就应用安全领域感兴趣的人士自由开放。其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识,不过OWASP每四年发布一次,现在最新的OWASP是2017年的,在2021年会更新最新的OWASP top 10。


三、漏洞详解

1、注入

(1)注入的概念

 注入通常是指:将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生诸如SQL注入、OS注入和LDAP注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。

(2)注入的分类

 通常注入有sql注入和os(Operating System)注入

  • SQL注入:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。
    sql注入的防御
       1:对输入进行严格的转义和过滤。
       2:数据类型进行严格定义,数据长度进行严格规定。
       3:通过waf设备启用防止sql注入的策略。
       4:严格限制网站访问数据库的权限。

  • os注入:Web开发所使用的编程语言中,大多数都能通过Shell执行OS(操作系统)命令。通过Shell执行OS命令时,或者开发中用到的某个方法其内部利用了Shell时,就有可能出现OS命令被任意执行的情况。这种现象被称为OS命令注入。
    os注入的防御
       1:使用安全的函数对传递给OS命令参数进行转义。
       2:不将外界输入的字符串传递给命令行参数。
       3:选择不调用OS命令的实现方法。

不调用利用shell的功能,既能杜绝了OS命令注入漏 洞混入的可能性,又消除了调用OS命令的而系统开销,能够从多方面提高应用的性能。

2、敏感数据泄露

(1)介绍

 近年来,敏感数据泄露已经成为了一最常见、最具影响力的攻击,一般我们的敏感信息包括密码、财务数据、医疗数据等,由于web应用或者API未加密或不正确的保护敏感数据,这些数据极易遭到攻击者利用,攻击者可能使用这些数据来进行一些犯罪行为,因此,未加密的信息极易遭到破坏和利用,不久前就爆出过Facebook泄露了用户的大量信息,以及12306也多次泄露用户的信息。现在信息泄露已经成为了owasp top 10中排名前三的漏洞之一,可想而知敏感信息泄露现在已经成为十分严重的问题。

(2)防御

1:对系统处理、存储或传输的数据分类,并根据分类进行访问控制。
2:对重要数据进行加密存放,数据在传输过程中使用密文进行传输。
3:及时清理没有用的敏感数据,只能使用指定用户访问敏感数据。

3、失效的身份认证

(1)介绍

 通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者暂时或永久的冒充其他用户的身份。

身份认证:身份认证最常用于系统登录,形式一般为用户名加密码的登录方式,在安全性要求较高的情况下,还有验证码、客户端证书、Ukey等。
会话管理:HTTP利用会话机制来实现身份认证,HTTP身份认证的结果往往是获得一个令牌并放在cookie中,之后的身份识别只需读取授权令牌,如果授权令牌认证成功,那么就无需再次进行登录认证。

(2)防御

防御失效身份和会话管理的方法
1:区分公共区域和受限区域:站点的公共区域允许匿名用户访问,但是站点的受限区域只允许指定用户访问。
2:支持密码的有效期:向用户提供可以在一段时间后修改密码的功能。
3:能够禁用账户:在收到攻击后可以禁用账户来避免遭受进一步的损失。
4:要求用户使用强密码。
5:不要在网络上以纯文本方式传输用户名和密码:使用SSL对数据流进行加密,也可以对cookie进行加密。

4、跨站脚本(xss)

(1)介绍

 跨站脚本攻击XSS(Cross Site Scripting),为了不和层叠样式表CSS(Cascading Style Sheets)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击!

(2)分类

 XSS分为三类:反射型XSS、存储型XSS、DOM型XSS

(3)原理

 存储型XSS:存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie。
 反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。
 DOM型XSS:不经过后端,DOM-XSS漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,攻击者向服务器发送一个带有恶意JS代码的请求,服务器的响应不会以任何形式包含攻击者的脚本。当用户的浏览器处理这个响应时,DOM对象就会处理XSS代码,导致存在XSS漏洞。

(4)防御

1:存储型: 后台编写过滤器,对一些html标签和特殊的字符进行转义。
2:反射型:特殊字符的转义。
3:DOM型:检查是否包含一些特殊的函数可以造成危害的地方。
4:对于截取cookie的XSS的防御可以在cookie上添加HttpOnly。

5、外部实体(XXE)

(1)介绍

 XXE(XML External Entity Injection)外部实体注入漏洞,XML在引用外部实体是的时候,攻击者可以构造恶意的XML代码,以造成任意文件读取、命令执行甚至是中断服务器。

XML用于标识电子文件使其具有结构性的标识语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声名、DTD文档类型定义、文档元素。

(2)防御

1:使用开发语言提供的禁用外部实体的方法。
2:过滤用户提交的XML数据。

6、安全配置错误

(1)介绍

 安全配置错误是比较常见的漏洞,由于操作者的不当配置(默认配置,临时配置,开源云存储,http标头配置,以及包含敏感信息的详细错误),导致攻击者可以利用这些配置获取到更高的权限,安全配置错误可以发生在各个层面,包含平台、web服务器、应用服务器、数据库、架构和代码。

(2)防御

1:使用的服务不包含任何不必要的功能、组件、文档和示例,移除或不安装不适用的功能和框架。
2:及时检测系统服务版本,为已发现的漏洞打补丁。
3:在对文件等分配权限时,根据其工作需要采取最小权限原则的方法。
4:自动化安装部署。
5:实施漏洞扫描和安全审计。

7、失效的访问控制

(1)介绍

 访问控制:即保护资源不被非法访问和使用,目前应用最多的是基于角色的访问控制机制。失效的访问控制就是攻击者通过各种手段提升自己的权限,越过访问控制,使访问控制失效,这样攻击者就可以冒充用户、管理员或拥有特权的用户,或者创建、访问、更新或删除任何记录。

(2)防御

1:除公有资源外,其他资源默认情况下拒绝访问。
2:使用一次性的访问控制机制,并在整个应用程序中不断重用它们。
3:建立访问控制模型以强制执行所有权记录,而不是接受用户创建、读取、更新或删除的任何记录。
4:当用户注销后,服务器上的JWT令牌应失效。

8、不安全的反序列化

(1)介绍

 序列化:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输(一般是以二进制的形式保存)的形式的过程。
 反序列化: 与序列化的过程刚好相反。

(2)原理

 序列化即是把对象转变为字节流,存放在内存、文件数据库中,而反序列化即是把字节流转变为对象。在java中有一个ObjectOutputStream类的writeobject方法可以实现序列化,而ObjectInputStream类的Readobject方法可以实现反序列化。该漏洞的原因出自于如果应用对恶意构造的用户输入的数据进行反序列化,这样就会产生非预期的对象,从而有可能产生远程代码执行。或者应用中存在可以在反序列化过程中或者之后被改变行为的类,则攻击者可以通过改变应用逻辑或者实现远程代码执行攻击。我们将其称为对象和数据结构攻击。

(3)防御

1:最安全的方法是不接受来自不受信源的序列化对象,或使用只允许原始数据类型的序列化媒体。
2:反序列化之前,先进行严格的数据类型校验。由于校验规则容易被攻击者探索出来,进而容易被绕过,因此防御不能仅依赖这一个手段,但可以作为完整性校验防御方案的补充。
3:隔离运行那些在低特权环境中反序列化的代码。
4:对反序列化过程进行详尽的日志记录,监控反序列化过程,在发现疑似反序列化攻击时进行警报。

9、使用含有已知漏洞的组件

(1)介绍

 由于现在的服务器都需要使用很多的组件,组件(例如:库、框架和其他软件模块)运行和应用程序相同的权限。如果使用含有已知漏洞的组件,这样的攻击可以造成严重的数据丢失或服务器接管。使用含有已知漏洞的组件的应用程序和API,可能会破坏应用程序防御、造成各种攻击并产生严重影响。

(2)防御

1:识别正在使用的组件和版本,包括所有的依赖。

2:更新组件或引用的库文件到最新。

3:建立安全策略来管理组件的使用。

10、不足的日志记录和监控

(1)介绍

 不足的日志记录和监控,以及事件响应集成的丢失或无效,使得攻击者能够进一步攻击系统、保持持续性或转向更多系统,以及篡改、提取或销毁数据。大多数缺陷研究显示,缺陷被检测出的时间超过200天,并且通常通过外部检测方检测,而不是通过内部进程或监控检测。

日志记录:日志记录是一个系统的最重要的功能之一。日志记录包括登录成功记录、登录失败记录、访问控制记录等,用来记录服务器的各种信息。

(2)防御

1:确保所有登录、访问控制失败、输入验证失败能够被记录到日志中去,并保留足够的用户上下文信息,以识别可疑或恶意帐户,并为后期取证预留足够时间。
2:建立有效的监控和告警机制,使可疑活动在可接受的时间内被发现和应对。
3:完善日志系统,使其可以监控各种日志信息。
4:及时对日志系统进行备份,并保存足够长时间。

四、意义

 OWASP Top 10是一个高度提炼的输出,现实的意义在于帮助和指导开发者、安全测试人员、web应用安全管理团队,提高风险意识。其对于安全厂商的产品能力提升也有指导意义。对于web安全风险管理以及企业安全建设,建议企业对照列表(需注意,OWASP历年来一直强调“不要停滞于OWASP Top 10”)结合自身环境、梳理影响自身应用安全的主要风险因素,并采取有重点的保护防范措施,在人员、流程以及技术层面进行提升。

五、结语

经过对owasp top 10的简单认识,接下来可以通过复现部分漏洞来加深印象,这样也有助于大家更好的理解漏洞的原理,刚入门网安的小白一个,大家共勉!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/69201.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多家大企业受GoAnywhere 0day 漏洞攻击影响

聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 越来越多的企业开始证实遭 Fortra 公司 GoAnywhere 文件转移管理 (MFT) 软件0day 漏洞 (CVE-2023-0669) 的攻击。 该漏洞在今年2月初被公开披露,一周后该漏洞的利用和补丁也发布…

JavaEE-网络编程

网络编程 网络模型概述 计算机网络: 计算机网络是指将地理位置不同的计算机及其外部部件,通过通信线路连接起来,在网络编程协议下,实现不同计算机之间的信息共享以及信息交流的计算机系统。 网络编程的目的: 传播…

Python基础必备知识:同步异步阻塞非阻塞!

一、状态介绍 Python资源共享群:484031800 在了解其他概念之前,我们首先要了解进程的几个状态。在程序运行的过程中,由于被操作系统的调度算法控制,程序会进入几个状态:就绪,运行和阻塞。 就绪(Ready)状态…

献给程序员们的诗

作者:年素清 来源:年素清 诗人 & 码农 码农的工作很忙碌,码农的生活很枯燥,码农很苦! 同为忙农的我苦中作乐,为了能够形象地描述出码农的生活工作乃至方方面面,我试着篡改了几首经典古诗词。…

餐饮行业消费市场---顾客满意度调查

一.调查主题: 一只酸奶牛(小寨赛格店)顾客满意度调查 二.调查目的 调查近期到店消费顾客对本店各项服务的满意度,主要了解不同群体对于店铺服务方面的体验情况,并参考顾客提出的建议,找出不足之处&#…

流量控制:停止-等待协议与连续ARQ协议

停止-等待协议 可靠通信三大机制:序号确认反馈超时重传机制 . 接收方收到重复帧有以下原因: 重复帧是由于发送方重发定时器超时,重发定时器超时的原因: 设定时间段数据帧出现比特差错,或网络延迟大确认差错或网络延…

Hello CTP(四)——CTP交易API

一、CTP交易API简介 1、CTP交易API简介 CThostFtdcTraderApi交易API接口包含CThostFtdcTraderApi和CThostFtdcTraderSpi,通过CThostFtdcTraderApi向CTP发送操作请求,通过CThostFtdcTraderSpi接收CTP操作响应。 2、CTP API交易流程 (1&…

VoIP之RTP/RTCP协议

在VoIP领域中,一般使用RTP作为媒体的传输协议。RTP(real-time transport protocol)由rfc3550定义(其中RFC1889已经过期)。 RTP提供了一种适用于应用在端到端之间传输音频、视频等实时数据的网络传输方式。RTP没有资源预留机制,不确保实时服务…

TTDP、TRDP协议

1、TTDP即列车拓扑发现协议。该协议允许网络交换机在网络拓扑结构发生改变后自动与其他网络设备进行协商,并将根据新的列车车厢的指令为网络设备分配一个IP地址。 2、TRDP 列车实时数据协议规定了TRDP-PD过程数据和TRDP-MD消息数据两种主要的通信模式,两…

通讯协议汇总

UART UART(Universal Asynchronous Receiver/Transmitter)是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。 物理拓扑 帧结构/数据传输形式# 起始位:先发一个逻辑0,表示传输字符的开始&#xf…

十六、停止等待协议

文章目录 1、为什么要有停止等待协议2、研究停等协议的前提3、应用停等协议的两种情况3.1 无差错的情况3.2 有差错的情况3.2.1 数据帧丢失或检测到帧出错3.2.2 ACK丢失3.2.3 ACK迟到 4、停等协议的性能分析THE END 1、为什么要有停止等待协议 \qquad 除了比特出差错&#xff0c…

获取实时股票行情通达信接口

获取实时股票行情通达信接口

今天给大家带来搜题公众号搭建教程(附赠搜题接口 还支持语音图片搜题)

今天给大家带来搜题公众号搭建教程(附赠搜题接口 还支持语音搜题) 下面带大家搭建搜题公众号 首先我们需要的材料: 1.有自己的微信公众号(已经注册好的,直接登录自己公众号即可) 注册公众号教程&#xff1a…

google搜索技巧——程序员推荐

文章目录 前言谷歌搜索语法指令用引号来查询一个确切的单词或短语OR查询排除特定网站标题搜索将搜索结果限制到特定网站查看某个地区内的相关信息将结果限制为特定的文件格式 小结 前言 在昨天使用Google搜索一个异常问题的时候,不经意间发现有如下的提示 参考如上…

Google 几种常见的高级搜索技巧

1、完全匹配搜素:“使用双引号” 2、模糊匹配:使用*代替 3、排除搜素:使用-排除 4、在特定的网站内搜索:使用 site:来搜索 5、特定文件类型搜索:使用filetype: 来搜索 6、限定在url中进行搜索:i…

百度、谷歌等搜索引擎高效搜索方法 —— 更快速搜索到你想要内容

一、常用搜索方法 1、限定标题 intitle 又被称为去广告搜索法,intitle命令,即in title(在标题里)返回的的结果是网页的标题包含该关键词。一般情况下搜索的关键词都会在标题里出现,使用intitle命令一般是在特殊需求下…

巴比特 | 元宇宙每日必读:传苹果将在6月开发者大会上发布混合现实头显,售价约三千美元,分析师预计今年出货量约为20万至30万部...

摘要:据腾讯科技报道,知情人士透露称,苹果公司预计将在6月份举行的开发者大会上发布其备受期待的混合现实头显,然而这款产品依然处于试验阶段,强推不成熟产品上市有违苹果的传统和规则。许多投资者质疑:消费…

iOS之适配苹果Universal Links 和升级友盟的QQ和微信分享艰难之路

安逸的日子总是那么短暂,刚上完线,唏嘘人生是那么短暂而又漫长,刚准备进入安逸圈,结果晴天霹雳 这特么是啥 ,我没动啥代码哇,瞬间感觉蛋蛋有微微的疼痛,经过测试只有新系统(iOS13.5)的微信才会出现这个 这肯定是友盟整什么幺蛾子了,打开文档一看 瞬间明白了什么 ,我现在用的…

Android 版灵动岛插件上线;iPhone 15或将改名,并改用USB-C接口;​Swift 5.7 发布|极客头条

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&…

毕业论文季,你需要一个黑科技

1、风来了,两极分化严重 ChatGPT 是一种基于大型语言模型,由 OpenAI 开发,ChatGPT 的发展得益于深度学习算法的发展和硬件设备的提升。 ChatGPT深度学习模型Python语言机器学习和自然语言处理算法。 继00年的电商、15年的短视频之后&#…