您当前的位置:首页 > 电脑百科 > 安全防护 > 数据安全

数据库漏洞安全防护技巧

时间:2019-06-19 15:01:40  来源:  作者:

数据库漏洞的存在有多种方式,由于每一个现实的场景由多维组合而成,因此数据库漏洞对应也可以从不同角度归类划分。这种分类将更有利于我们掌握对每种漏洞的防护技术。

数据库安全实验室主要从以下九个角度对数据库漏洞进行分类介绍:‍‍‍‍

‍‍1.从漏洞作用范围划分

‍‍‍‍远程漏洞:攻击者可以利用并直接通过网络发起对数据库攻击的漏洞。这类漏洞危害极大,攻击者能随心所欲的通过此漏洞危害网络上可辨识的数据库。此类漏洞为黑客利用漏洞的主力。

‍‍‍‍‍‍本地攻击:攻击者必须在本机拥有访问权限的前提下才能发起攻击的漏洞。比较典型有本地权限提升漏洞,这类漏洞在数据库中广泛存在,能让普通用户获得最高管理员权限。‍‍

‍‍‍‍2. 从漏洞危害等级划分

‍‍‍‍漏洞危害等级主要按照CVE的评分来划分,分为三个档次:0-3(LOW);4-6(MEDIUM)、7-10(HIGH)。 洞的危害等级划分是根据一个漏洞对数据库造成什么影响来划分的。对数据库的响的机密性、安全性、可用性影响越大威胁等级越高,反之危险等级越低。举例说明:

CVE-2006-1705危险等级是低。它对数据库系统文件无任何影响,可能会导致数据库某些配置文件被修改,对数据库运行无任何影响。

CVE-2006-1871危险等级是中。它只是很可能造成某些信息泄露,有可能导致数据库某些配置文件被修改,可能导致数据库性能下降或小几率出现断链接。

CVE-2006-3702危险等级是高。它可以导致所有数据库系统文件泄露,数据库完全被破坏,可能导致数据库彻底宕机。

‍‍3. 从受影响系统划分

‍‍‍‍现有的操作系统多种多样,并且每种系统对应多个版本。操作系统主要分为以下五类:dos 系统、windows 系统、unix 系统、linux 系统和其他操作系统。由于漏洞注入点地址和操作系统具体版本有着直接的关系,所以需要按照操作系统的具体版本来划分。以oracle为例,由于不同的操作系统对缓冲区溢出的防守机制不同,导致这类漏洞基本不存在跨平台的可能。‍‍

‍‍4.从漏洞的危害范围划分

‍‍‍‍‍‍漏洞危害是指漏洞被利用后造成的各种危害。本文的危害是指对数据库的直接危害或利用数据库对其他系统造成的危害。这些危害可以分为三类:

‍‍‍‍‍‍危害数据库自身,这类漏洞主要是对数据库自身进行攻击。这类漏洞在下文中的“5. 从黑客入侵数据库的技术划分”一节中有详细讲解。

‍‍‍‍危害数据库所在服务器,这类漏洞通过数据库对服务器进行攻击。其中手段可分为:通过pl/SQL运行OS命令、通过JAVA运行OS命令、直接通过任务调度程序运行OS命令、使用ALTER SYSTEM运行OS命令,在oracle的某些版本中可以利用oracle编译本地pl/SQL应用程序的方式来运行OS命令。

‍‍危害数据库所在系统的文件系统,这类漏洞通过数据库对服务器上的文件系统做攻击。其中手段可分为:使用 UTL_FILE包访问文件系统、用JAVA访问文件系统、利用操作系统环境变量访问文件系统。

危害数据库所在网络上的其他平台,这类漏洞通过数据库对网络上的其他数据库和服务进行入侵。

‍‍5. 从黑客入侵数据库技术划分

‍‍‍‍‍‍5.1 SQL注入

‍‍‍‍‍‍SQL本文说所的SQLSQL注入不是web端的,而是针对数据库自身的SQLSQL注入漏洞。两者差异很大。 pl/SQL注入的思想非常简单,

‍‍‍‍在正常的sql语句中通过嵌入、注释、转义符等手段加入针对数据库漏洞或数据库设置缺陷的畸形字符串或其他畸形输入。通过单次或多次这种畸形输入逐步获取数据库中更高权限,最终获取数据库中敏感信息或直接夺取数据库DBA权限。进而可能对数据库所在的网络环境和本地服务器造成危害。

‍‍手段具体分为:

代码注入。代码注入攻击多在支持多条SQL语句执行的数据中存在。它是通过黑客在正常语句中加入恶意EXECUTE命令完成攻击的。

函数调用注入。函数调用注入是代码注入的变体,但确是整个SQL注入的核心。它利用数据库存在漏洞将恶意语句注入其中。具体手法分为:

注入select /delete/insert/update语句

注入函数

注入匿名pl/SQL块

游标注入

利用触发器

lateral提权技术

‍‍‍‍‍‍‍‍其中每种技术中还有细分,例如lateral提权技术中最著名的是CREATE ANT TRIGGER 权限提DBA、CREATE ANT VIEW 权限提DBA、EXECUTE ANY PROCEDURE权限提DBA、CREATE PROCEDUER 权限提DBA。

‍‍‍‍‍‍‍‍‍‍缓冲区溢出注入。‍‍‍‍这个缓冲区溢出和下文的缓冲区溢出不是一种。这种缓冲区溢出是数据库系统函数中某些参数被传入了超过参数长度限制的值,而引发的缓冲区溢出。

‍‍针对SQL操作的注入。‍‍最常见的是利用where子句修改SQL语句返回不同的结果集,来达到获取数据库敏感信息的目的。

‍‍‍‍5.2 缓冲区溢出

‍‍‍‍‍‍缓冲区溢出:这里所说的缓冲区溢出是指源缓冲区的数据向小于自身位数的缓冲区复制数据时,超越目标缓冲区的位数边界,并且数据库未对存入数据进行边界判断,最终导致目标缓冲区爆满。目标缓冲区内存改变程序控制流、夺取操作系统、禁止访问等多种结果。缓冲区溢出主要可以分成四种:静态数据溢出、栈溢出、堆溢出和格式化串。

‍‍‍‍‍‍‍‍手段具体分为:

‍‍‍‍‍‍ 栈溢出 。‍‍‍‍缓冲区溢出的一种主要是通过利用截取函数返回值来进行栈溢出。方式主要分为两种,一种是通过缓冲区溢出改变函数逻辑流程;另一种方式是通过缓冲区溢出改变函数返回地址。其中比较常见的为第二种。

‍‍‍‍ 堆溢出 。‍‍‍‍缓冲区溢出的一种,利用原理类似栈溢出,但由于堆中地址是动态分配的,无法准确定位,所以黑客要利用堆溢出需要通过Dword SHOOT技术来对堆进行扫描,获取堆溢出中可利用的地址。

‍‍‍‍静态数据区溢出。‍‍‍‍静态数据区域存放连续的全局变量和未初始化的静态变量,缓冲区在这发生溢出称为静态数据区溢出。

‍‍‍‍ 格式化串 。‍‍‍‍格式化串漏洞最显著的例子,就是在*printf()系列函数中按照一定的格式对数据进行输出。黑客主要是利用printf()系列函数有三条特殊的性质,首先,第一个可以被利用的性质是:*printf()系列函数的参数的个数是不固定的。其次,利用*printf()的一个特殊的格式符%n,黑客就向内存中写入exploit。再次,利用附加格式符控制跳转地址的值。

‍‍‍‍5.3 其他

‍‍‍‍ 弱口令 。通常指容易被别人猜测到或被破解工具破解的口令均为弱口令,其中很大一部分是数据库默认口令,其中有一部分是因为缺省密码产生的。

‍‍‍‍撞库。通过已收集到的在其他服务中注册的用户名和密码,对目标数据库进行访问尝试。由于很多人习惯用相同密码和账号,因此成功登陆到目标数据库的可能性大大提高,达成盗取大量敏感信息的目的。‍‍‍‍

暴力破解。通过数据字典(密码库)对数据库的用户名进行碰撞,最终碰出可以用于访问数据库的用户和密码组合。‍‍‍‍

6. 从数据库漏洞成因划分

‍‍‍‍输入验证错误。‍‍‍‍‍‍‍‍‍‍‍‍这种错误主要来源于字符串、包等输入值缺乏正确合理的验证,从而导致畸形的输入值进入数据库系统函数中,对数据库造成不可预计的后果。

‍‍‍‍‍‍‍‍‍‍‍‍ 边界条件错误 。‍‍‍‍由于数据库属于大型复杂的软件,软件内部函数调用过于复杂,有时会出现对某个传入值的边界,不同地方限制不同,可能对数据库造成不良影响。

‍‍‍‍ 缓冲区溢出错误 。‍‍‍‍由于数据库中某些函数中的参数值缺乏边界限制和检查,从而暴露出的数据库漏洞。

‍‍‍‍ 访问验证错误 。‍‍‍‍访问验证错误主要在数据库的网络监听上,黑客通过发送欺诈数据包,来骗取数据库重要信息。

‍‍‍‍ 意外条件错误 。‍‍‍‍由于数据库中逻辑比较复杂,某些很少被触发的逻辑分支由于软件周期等原因,未被及时发现而导致的数据库漏洞。

‍‍‍‍ 其他错误 。‍‍‍‍‍‍除了以上五类原因错误导致的数据库漏洞,大部分其他错误是由于用户在使用数据库时,未能按照数据库官方要求进行操作和配置,或者是数据库本身的设计缺陷所引发的漏洞。‍‍‍‍

‍‍7. 从漏洞利用的结果划分

‍‍‍‍ 越权访问 。访问原本不可访问的数据,包括读和写。这一条通常是攻击者的核心目的,而且可造成非常严重的灾难(如银行数据被人可写)。

‍‍‍‍ 提权 。通过越权等方式,对一个低权限用户提升权限,一步一步直到提升为DBA权限。利用提权后的账号窃取数据库中核心数据。

‍‍‍‍ 拒绝服务 。攻击者强制目标数据库停止提供服务,是黑客常用的攻击手段之一。其中数据库端口进行的消耗性攻击只是拒绝服务攻击的一小部分,凡是使数据库服务被暂停甚至所处主机死机,都属于拒绝服务攻击。

‍‍‍‍‍‍ 夺取操作系统 。当黑客通过网络对数据库进行攻击,利用缓冲区漏洞的攻击会通过劫持被入侵函数中的栈中的函数返回值,来夺取‍‍‍‍‍‍函数控制,跳转到黑客编写的shellcode。当shellcode打开CMD(windows)即可通过数据库账号来操控操作系统,从而夺取整个操作系统的过程。

‍‍‍‍ 认证绕过 。通常利用认证系统‍‍‍‍‍‍的漏洞不用受权就能进入系统。通常认证绕过都是为权限提升或直接的数据访问服务的。‍‍

‍‍‍‍8. 从数据库‍‍存漏洞的位置划分

‍‍‍‍由于不同数据库类似功能的名称不同本文依oracle为例说明:按照漏洞位置可以分为TNS(监听)漏洞 、Aurora GIOP server漏洞、XDB组件漏洞、DBMS_CDC_IMPDP漏洞、LT组件漏洞、DBMS_CDC_SUBSCRIBE漏洞、DBMS_CDC_ISUBSCRIBE漏洞、MDSYS.SDO_GEOM_TRIG_INSI漏洞、SYS.CDC_DROP_CTABLE_BEFORE漏洞、DBMS_SCHRDULER漏洞、UTL_FILE漏洞、Data Redaction漏洞、审计漏洞等。‍‍

‍‍‍‍9. 从漏洞产生的时序上划分

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 已发现很久的漏洞 。数据库厂商已经发布补丁或修补方法,很多人已经知晓。这类漏洞通常很多人已经进行了修改,宏观上看,危‍‍‍‍‍‍害较小。

‍‍‍‍‍‍刚发现的漏洞。数据库厂‍‍‍‍商刚发布补丁或修补方法,知道的人还不多。相对于上一种漏洞其危害性较大,如果此时出现了蠕虫或傻‍‍瓜化的利用程序,那么会‍‍‍‍‍‍‍‍导致大批数据库受到攻击。这也是一般黑客最多利用的漏洞。‍‍‍‍‍‍‍‍‍‍‍‍‍‍

‍‍‍‍0day漏洞。还没有公开的漏洞,在私下交易中的。这类漏洞通常是最危险的,往往是有组织黑客所采用的。



Tags:数据库   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
安装环境Linux服务器:Centos 6 64位Oracle服务器:Oracle11gR2 64位 系统要求说明:内存必须高于1G的物理内存;交换空间,一般为内存的2倍(1G的内存可以设置swap 分区为3G大小);硬...【详细内容】
2021-12-27  Tags: 数据库  点击:(2)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的HasorDB 是一个全功能数据库访问工具,提供对象映射、丰...【详细内容】
2021-12-22  Tags: 数据库  点击:(5)  评论:(0)  加入收藏
作者丨Rafal Grzegorczyk译者丨陈骏策划丨孙淑娟【51CTO.com原创稿件】您是否还在手动对数据库执行各种脚本?您是否还在浪费时间去验证数据库脚本的正确性?您是否还需要将...【详细内容】
2021-12-22  Tags: 数据库  点击:(4)  评论:(0)  加入收藏
读取SQLite数据库,就是读取一个路径\\192.168.100.**\position\db.sqlite下的文件<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/...【详细内容】
2021-12-16  Tags: 数据库  点击:(21)  评论:(0)  加入收藏
测试的目的和原因,公司有很多程序员,每个程序员对数据库和表结构都有自己的理解。而且每个程序员的理解往往是以效率考虑。既然都是为了效率考虑,那么我就来测试一下究竟哪种使...【详细内容】
2021-12-08  Tags: 数据库  点击:(14)  评论:(0)  加入收藏
当你们考虑项目并发的时候,我在部署环境,当你们在纠结使用ArrayList还是LinkedArrayList的时候,我还是在部署环境。所以啊,技术不止境,我在部环境。今天这篇文章缕一下在同一台服...【详细内容】
2021-12-08  Tags: 数据库  点击:(17)  评论:(0)  加入收藏
概述DBConvert Studio 是一款强大的跨数据库迁移和同步软件,可在不同数据库格式之间转换数据库结构和数据。它将成熟、稳定、久经考验的 DBConvert 和 DBSync 核心与改进的现...【详细内容】
2021-11-17  Tags: 数据库  点击:(26)  评论:(0)  加入收藏
说明Web应用程序,MySQL数据库,数据库中有三张表:health_patient(病人表)、health_patient_account(病人账户表)、 health_patient_medical_history(病例表),视图需求是,页面分页展示病...【详细内容】
2021-11-05  Tags: 数据库  点击:(32)  评论:(0)  加入收藏
1. 介绍1.1 介绍今天开始我们来学习Java操作MySQL数据库的技巧,Java操作MySQL是借助JdbcTemplate这个对象来实现的。JdbcTemplate是一个多数据库集中解决方案,而我们今天只讲...【详细内容】
2021-11-05  Tags: 数据库  点击:(30)  评论:(0)  加入收藏
互联网时代,不论是个人还是组织,都将数据视为一项重要的资产。为了便于存储、管理,企业常常会为各项数据建立一个数据库,如果没有做好安全风险防护,一旦数据库被攻占,企业将迎来很...【详细内容】
2021-10-28  Tags: 数据库  点击:(50)  评论:(0)  加入收藏
▌简易百科推荐
众所周知,Windows系统流氓软件众多,其中不乏出身大厂的产品。这些带有流氓性质的软件,很多都会偷偷扫描系统数据,读取用户文件,造成电脑卡顿拖慢不说,还严重侵害了个人隐私,造成巨...【详细内容】
2021-12-06  趣玩APPS    Tags:流氓软件   点击:(16)  评论:(0)  加入收藏
前言目标是一大学,在一次挖洞过程中遇到个sql注入,尝试进一步利用扩大危害,漏洞已报送平台进行了修复私信我获取网络安全学习资料 1.2000多本网络安全系列电子书 2.网络安全标...【详细内容】
2021-11-26  IT野涵    Tags:sql注入   点击:(21)  评论:(0)  加入收藏
互联网时代,不论是个人还是组织,都将数据视为一项重要的资产。为了便于存储、管理,企业常常会为各项数据建立一个数据库,如果没有做好安全风险防护,一旦数据库被攻占,企业将迎来很...【详细内容】
2021-10-28  快快网络   企鹅号  Tags:数据库   点击:(50)  评论:(0)  加入收藏
前言(可能思路狭隘,有缺有错,师傅们多带带)【查看资料】Author: 0ne本篇文章数据来源于18+省市级别HVV,90+单位失陷报告。(一部分是笔者的参与,一部分是薅的公司其他师傅的报告...【详细内容】
2021-10-28  IT野涵    Tags:缺口   点击:(46)  评论:(0)  加入收藏
本人也是小白一枚,大佬请绕过,这个其实是六月份的时候做的,那时候想多点实战经验,就直接用谷歌搜索找了一些网站,这个是其中一个1、目标网站 2、发现有WAF防护 3、判断存在注入...【详细内容】
2021-10-19    博客园  Tags:SQL注入   点击:(52)  评论:(0)  加入收藏
一 前言本文将针对开发过程中依旧经常出现的SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案...【详细内容】
2021-09-17  woaker    Tags:SQL注入漏洞   点击:(67)  评论:(0)  加入收藏
前言本人ctf选手一名,在最近做练习时遇到了一些sql注入的题目,但是sql注入一直是我的弱项之一,所以写一篇总结记录一下最近学到的一些sql注入漏洞的利用。可回显注入联合注入在...【详细内容】
2021-08-26  合天网安实验室    Tags:sql注入   点击:(60)  评论:(0)  加入收藏
“放纵自己的欲望是最大的祸害,窥探别人的隐私是最大的罪恶,不知自己的过失是最大的病痛”。 上文咱们知道了目前互联网的数据安全存在隐患,数据安全的问题,每天都在发生,只不过...【详细内容】
2021-08-13  小陶子矿工    Tags:IPFS   点击:(79)  评论:(0)  加入收藏
前言最近挖edusrc的时候遇到有注入点但是有waf绕不过,头疼。 可以看到还是phpstudy建站的,太熟悉了这个,不知道这个什么waf各位师傅知道的可以评论一下,所以写这篇文章是供各位...【详细内容】
2021-08-13  IT影子    Tags:sql注入   点击:(66)  评论:(0)  加入收藏
1. 使用 Burpsuite: 1. Capture the request using burpsuite. 2. Send the request to burp scanner. 3. Proceed with active scan. 4. Once the scan is finished, l...【详细内容】
2021-08-04  李志宽    Tags:SQL注入   点击:(74)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条