owasp top10 | 十大常见漏洞详解

A1 注入漏洞

在 2013、2017 的版本中都是第一名,可见此漏洞的引入是多么的容易,同时也证明此漏洞的危害有多么严重。
攻击方式
利用应用程序弱点,通过恶意字符将恶意代码写入数据库,获取敏感数据或进一步在服务器执行命令。
漏洞原因
未审计的数据输入框
使用网址直接传递变量
未过滤的特殊字符
SQL 错误回显
漏洞影响
获取敏感数据或进一步在服务器执行命令接管服务器
SQL 注入
其实注入有很多类型,常见的注入包括:SQL、OS 命令、ORM、LDAP和表达式语言或者 OGNL 注入,对于应用解释器来说这些概念都是相同的。对于最常见的SQL注入,后端开发人员经常会拼接 SQL 查询;在不经意间就引入了 SQL 注入漏洞。
一个例子
select * from users where pwd='输入字符'


-- 恶意代绕过 ' or 1=1 --'
select * from uses where pwd = '' or 1=1 --'
SQL 注入工具
作为最强大的 SQL 注入工具,这里要介绍下基于 python开发的 SQLmap,SQLmap 支持对 PostgreSql,MySQL,Access,MsSql Server 等数据库的自动化注入。是在检查SQL注入漏洞方面最得力的工具。
SQL 注入防护
关闭 SQL 错误回显
前端输入字符白名单验证(长度、类型等)
对输入的特殊字符使用转义处理
SQL 操作使用 PreParedStatement
SQL 服务运行于专门的账号,并且使用最小权限
限制 SQL 服务的远程访问,只开放给特定开发人员
代码审计,最有效的检测应用程序的注入风险的方法之一
使用成熟的 waf

A2 失效的身份认证

攻击方式
攻击者利用网站应用程序中的身份认证缺陷获取高权限并进行攻击应用服务
漏洞原因
应用程序身份认证系统认证缺陷
漏洞影响
盗用账号与身份
常见设计缺陷
修改利用网络协议数据包获取使用者账号密码
网站设计不良,可直接绕过验证页面
使用者忘记注销,而让攻击者有可趁之机
弱密码
弱密码攻击
身份认证非常容易受到弱密码攻击,常用的弱密码攻击方式有
常用密码攻击 - 使用泄露的密码字典攻击
使用公司名称缩写、域名、电话号码
全数字、英文的简单密码
账号与密码相同的
不同网站、电脑、APP 使用了相同的密码
漏洞防护
网站的登录页面就使用加密连接
网站应该具体良好的权限控制与管理
网站应该具备超时注销机制

A3 敏感数据泄露

攻击方式
常见的攻击方式主要是扫描应用程序获取到敏感数据
漏洞原因
应用维护或者开发人员无意间上传敏感数据,如 github 文件泄露
敏感数据文件的权限设置错误,如网站目录下的数据库备份文件泄露
网络协议、算法本身的弱点,如 telent、ftp、md5 等
漏洞影响
应用程序、网站被修改
个人资料、公司资料泄露,被用于售卖获利
漏洞防护
对于 github 泄露,定期对仓库扫描
对于应用网站目录定期扫描
使用强壮的网络协议与算法

A4 XML 外部实体漏洞

攻击方式
当应用程序解析 XML文件时包含了对外部实体的引用,攻击者传递恶意包含 XML 代码的文件,读取指定的服务器资源。
漏洞原因
XML 协议文档本身的设计特性,可以引入外部的资源;定义 XML 文件时使用的外部实体引入功能
漏洞影响
读取服务器敏感资料,如、 /etc/password
读取应用程序源码
漏洞防护
关闭 DTD (Data Type Definition)
禁止外部实体引入

A5 无效的访问控制

攻击方式
没有检查身份,直接导致攻击者绕过权限直接访问
漏洞原因
漏洞影响

绕过路径,如未读取的参数做检查,导致路径绕过读取到敏感文件
权限提升,如未对权限做检查,导致攻击者变更权限
垂直越权,攻击者可以从普通的用户权限提升到管理员的权限访问应用程序
水平越权,攻击者可以从普通用户A的权限提升到普通用户B的权限访问应用程序
漏洞防护
对参数的白名单过滤
对权限的控制管理重新设计与限制
限制下载文件的类型

A6 安全配置错误

攻击方式
攻击者利用错误配置攻击,获取敏感数据或者提升权限
漏洞原因
开发或者维护人员设置了错误的配置,如 python 开发中对于 Django 框架在生产环境启用了 Debug 模式
漏洞影响
可让攻击者获取到敏感数据
可让攻击者提升权限,如未修改应用程序配置的默认密码,未删除应用程序安装程序目录文件等

A7 跨站脚本攻击

攻击方式
攻击者使用恶意字符嵌入应用程序代码中并运行,盗取应用程序数据
常见攻击 payload
><script>alert(document.cookie)</script>='><script>alert(document.cookie)</script>"><script>alert(document.cookie)</script><script>alert(document.cookie)</script><script>alert (vulnerable)</script>%3Cscript%3Ealert('XSS')%3C/script%3E<script>alert('XSS')</script><img src="javascript:alert('XSS')"><img src=" http://888.888.com/999.png" οnerrοr="alert('XSS')"><div style="height:expression(alert('XSS'),1)"></div>(这个仅于IE7(含)之前有效)
漏洞原因
应用程序未对应用输入做过滤与检查,导致用户数据被当作代码执行。
漏洞影响
欺骗使用者点击嵌入了恶意网站的正常网站,获取使用得的敏感数据
盗取使用者 cookie,冒用使用者身份
漏洞防护
验证输入/接收的字符,过滤或者替换非法字符
使用白名单机制

A8 不安全的反序列化漏洞

攻击方式
攻击者利用应用程序反序列化功能,反序列化恶意对象攻击应用程序。
漏洞原因
应用程序在反序列化数据对象时,执行了攻击者传递的恶意数据对象
漏洞影响
最严重情况下,可导致远程代码执行 RCE
注入攻击
越权
漏洞防护
对数据对象签名,并作完整检查
数据对象中的数据做严格的类型检查,限制一部分恶意攻击
隔离反序列化操作环境

A9 使用含有已知漏洞的组件

攻击方式
利用应用程序技术栈中的框架、库、工具等的已知漏洞进行攻击,获取高权限或者敏感数据
漏洞原因
应用程序技术栈中使用的框架、库、工具爆出了漏洞,应用程序未能及时更新与修复
漏洞影响
敏感数据泄露
提升权限
远程代码执行
漏洞防护
及时更新、修复组件漏洞
移除不再使用的依赖组件

A10 日志记录和监控不足导致的风险

漏洞原因
对于日志记录的监控不足,造成攻击者攻击系统、应用、盗取数据等操作无法被发现和追查。
漏洞影响
无法判断安全事件的发生
无法判断和修复漏洞
导致再次被入侵
漏洞防护
启用日志监控、告警机制
启用异地监控,C/S架构的监制机制
尽可能的完整记录所有日志

 

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

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

相关文章

windows允许无密码远程设置

在 Windows 系统上启用无密码远程访问涉及一些风险&#xff0c;因为这可能会使您的系统更容易受到未经授权访问的攻击。然而&#xff0c;如果你了解这些风险并且仍然需要这样做&#xff0c;以下是一些步骤来配置 Windows 以允许无密码远程访问&#xff1a; 打开远程桌面: 首先&…

LeetCode 2723. 两个 Promise 对象相加

给定两个 promise 对象 promise1 和 promise2&#xff0c;返回一个新的 promise。promise1 和 promise2 都会被解析为一个数字。返回的 Promise 应该解析为这两个数字的和。 示例 1&#xff1a; 输入&#xff1a; promise1 new Promise(resolve > setTimeout(() > res…

解决hbuilderx打包网址成为5+app,点击返回按钮直接退出app的BUG

直接上代码 <!DOCTYPE html> <html><head><meta charset"UTF-8"><meta name"viewport" content"viewport-fitcover,widthdevice-width,initial-scale1,minimum-scale1,maximum-scale1,user-scalableno" /><ti…

深度学习知识点总结

关于bn层 mean,std 第i个元素就是第i个通道上全部batch张输出特征图所有元素的平均值和方差,所shape就是特征图shape 可学习参数 weight和bias分别对应 γ&#xff0c;β.有bn时cov可以不用bia 在训练过程中,mean和std是统计得到的,然后在迭代过程中动态累加,m*si-1(1-m)*si,m…

基于Java SSM框架实现班级同学录管理系统项目【项目源码】

基于java的SSM框架实现高校校园点餐系统演示 SSM框架 当今流行的“SSM组合框架”是Spring SpringMVC MyBatis的缩写&#xff0c;受到很多的追捧&#xff0c;“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架&#xff0c;通常更简单的数据源。Spring…

洁净室气流流型可视化验证试验 气流流型检测仪

了解和掌握洁净室气流流型的特点和规律是确保洁净室的性能和产品质量的重要基础。在选择气流流型时需要综合考虑各种因素&#xff0c;以达到最佳的空气净化效果。同时&#xff0c;需要定期进行气流流型的检测和验证&#xff0c;以及洁净室的清洁和维护工作&#xff0c;以确保其…

php 常量与变量

目录 1.php 基础语法 2.常量 3.变量 4.变量命名规则 5.单引号双引号的区别 1.php 基础语法 <?php header("Content-Type: text/html; charsetutf-8"); //utf-8编码&#xff0c;支持中文 //代码处 ?> 如果没配utf-8 ,中文就会乱码&#xff0c;如下 2.常量…

【温故而知新】JavaScript的BOM之Window对象

一、概念 BOM(Browser Object Model)是JavaScript中的一个重要对象模型,它提供了与浏览器窗口和导航等相关的属性和方法。BOM主要包括以下几个部分: Window 对象:代表浏览器窗口,是BOM的核心对象。它提供了许多属性和方法,用于控制浏览器窗口的行为和与浏览器交互。 L…

自动驾驶轨迹预测

目录 神经网络轨迹预测综述&#xff1a; 比较新的轨迹预测网络 Uber&#xff1a;LaneRCNN[5] Google&#xff1a;VectorNet[6] Huawei&#xff1a;HOME[7] Waymo&#xff1a;TNT[8] Aptive&#xff1a;Covernet[9] NEC&#xff1a;R2P2[10] 商汤&#xff1a;TPNet[11]…

深度探讨Java的Lambda表达式与函数式编程范式

目录 引言 1. Lambda表达式基础 2. 函数式接口 3. Lambda表达式的特性 3.1 闭包 3.2 方法引用 4. Stream API 5. 并发编程与Lambda表达式 结语 引言 随着Java 8的发布&#xff0c;Lambda表达式和函数式编程范式正式成为Java开发者工具箱中的一部分。这不仅改变了Java代…

浅谈安科瑞直流表在孟加拉某能源公司的应用

摘要&#xff1a;本文介绍了安科瑞直流电表在孟加拉某能源公司的应用。主要用于光伏直流柜内&#xff0c;配合分流器对汇流箱的输出电流电压等进行测量&#xff0c;并采集配电现场的开关信号&#xff0c;装置带有RS485接口可以把测量和采集的数据和设备状态上传。 Abstract: T…

【服务器数据恢复】Raid5热备盘同步失败导致lvm结构损坏的数据恢复案例

服务器数据恢复环境&#xff1a; 两组由4块磁盘组建的raid5磁盘阵列&#xff0c;两组raid5阵列划分为lun并组成了lvm结构&#xff0c;ext3文件系统。 服务器故障&#xff1a; 一组raid5阵列中的一块硬盘离线&#xff0c;热备盘自动上线并开始同步数据。在热备盘完成同步之前&am…

精进单元测试技能——Pytest断言的艺术

本篇文章主要是阐述Pytest在断言方面的应用。让大家能够了解和掌握Pytest针对断言设计了多种功能以适应在不同测试场景上使用。 了解断言的基础 在Pytest中&#xff0c;断言是通过 assert 语句来实现的。简单的断言通常用于验证预期值和实际值是否相等&#xff0c;例如&#xf…

Python从入门到网络爬虫(读写Excel详解)

前言 Python操作Excel的模块有很多&#xff0c;并且各有优劣&#xff0c;不同模块支持的操作和文件类型也有不同。最常用的Excel处理库有xlrd、xlwt、xlutils、xlwings、openpyxl、pandas&#xff0c;下面是各个模块的支持情况&#xff1a; 工具名称.xls.xlsx获取文件内容写入…

使用vscode开发小程序项目

使用vscode开发uni-app 这里的创建使用用vue3ts版本&#xff0c;如过是vue2&#xff0c;具体可参考官网命令 uni-app官网 首先创建uni-app npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project需要再vscode中下载uni-app插件&#xff0c;以方便开发 uni-create-view …

java常用应用程序编程接口(API)——String概述及使用案例

前言&#xff1a; 开始学到api的String&#xff0c;整理下心得。打好基础&#xff0c;daydayup! API&#xff1a; API是什么&#xff1f; API&#xff08;Application Programming Interface&#xff09;又名应用程序编程接口。是别人编好的程序的合集。 为什么要使用API&…

5分钟搭建开源运维监控工具Uptime Kuma并实现无公网IP远程访问

文章目录 **主要功能**一、前期准备本教程环境为&#xff1a;Centos7&#xff0c;可以跑Docker的系统都可以使用本教程安装。本教程使用Docker部署服务&#xff0c;如何安装Docker详见&#xff1a; 二、Docker部署Uptime Kuma三、实现公网查看网站监控四、使用固定公网地址访问…

数组中元素的插入和查找算法探究

数组的查找 线性查找 概念 线性查找也叫顺序查找&#xff0c;这是最基本的一种查找方法&#xff0c;从给定的值中进行搜索&#xff0c;从一端开始逐一检查每个元素&#xff0c;直到找到所需元素的过程。 元素序列的排列可以有序&#xff0c;也可以无序。 代码实现 public cl…

检查unity打包IOS包含dlopen的块

unity打包IOS包含dlopen 工程中含有以下命名空间:同时link.xml含有一下内容 工程中含有以下命名空间: System.Net.Security: sslStream.AuthenticateAsServer sslStream.AuthenticateAsClientSystem.Xml: XmlDocumentSystem.Net.WebSockets ClientWebSocket.ConnectAsyncSyste…

JVM,Java堆区、新生代、老年代,创建对象的内存分配,分代垃圾收集思想、堆区产生的错误

JVM堆区 堆&#xff08;Heap&#xff09;堆区的组成&#xff1a;新生代老年代堆空间的大小设置创建对象的内存分配堆区的分代垃圾收集思想堆区产生的错误 堆&#xff08;Heap&#xff09; ​ Heap堆区&#xff0c;用于存放对象实例和数组的内存区域 ​ Heap堆区&#xff0c;是…