术语解读:数据库攻击与防御常见词汇

术语解读:数据库攻击与防御常见词汇

1 渗透脚本

黑客渗透时使用的攻击脚本,结构为:脚本名称、脚本功能详细描述、脚本危害程度、漏洞攻击代码程序等部分。

 

2 Black Tuesday

微软每个月第二周的星期二发布补丁(包含 MSSQL),这一天被称为 Black Tuesday。很多黑客会通宵达旦去研究微软发布的补丁,通过补丁对比寻找微软修复的漏洞。由于客户不一定能马上及时更新微软的最新补丁,所以黑客可能会利用这些从补丁中寻找到的漏洞对目标软件进行攻击

 

3 exploit

黑客用于对软件进行攻击的一段含有恶意代码的输入。它可能是一段攻击性的网络数据包,也可能是一段带有攻击性的畸形串。它是黑客用于发动缓冲区溢出攻击的具体代码。

 

4 shellcode

Shellcode 实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限。exploit 中的一部分,是缓冲区溢出攻击中植入进程的代码。当缓冲区溢出成功劫持到函数返回地址之后,则进入 shellcode 的流程,执行 shellcode 部分的代码。

 

5 缓冲区溢出

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

缓冲区溢出,简单的说就是计算机对接收的输入数据没有进行有效的检测(理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符),向缓冲区内填充数据时超过了缓冲区本身的容量,而导致数据溢出到被分配空间之外的内存空间,使得溢出的数据覆盖了其他内存空间的数据。

 

6 栈溢出

栈溢出就是缓冲区溢出的一种。 由于缓冲区溢出而使得有用的存储单元被改写,往往会引发不可预料的后果。缓冲区溢出的一种主要是通过利用截取函数返回值来进行栈溢出。方式主要分为 2 种,1.通过缓冲区溢出改变函数逻辑流程。2 通过缓冲区溢出改变函数返回地址。其中比较常见的为第二种。

 

7 堆溢出

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

 

8 DWORD SHOOT

这种技术是缓冲区堆溢出的主要核心技术,由于堆中地址不是固定的是动态分配的所以需要通过散射的方式向内存堆中任意位置写入 exploit,进而劫持进程,运行 shellcode,已到达黑客对软件控制的目标。

 

9 静态数据区溢出

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

 

10 整数溢出

缓冲区溢出的一种主要由于整数在内存里面保存在一个固定长度(在本章中使用 32 位)的空间内,它能存储的最大值就是固定的,当尝试去存储一个数,而这个数又大于这个固定的最大值时,将会导致整数溢出。例如 A , B 两个数都是 32 位长,首先赋值给 A 一个 32 位整数的最大值,B 被赋值为 1。然后让 A 和 B 相加,然后存储结果到第 3 个无符号 32 位的整数 C,代码如下:

A = 0xFFFFFFFF;

B = 0x00000001;

C = A + B;

很显然,A 的值是:11111111 11111111 11111111 11111111;

B 的值是:00000000 00000000 00000000 00000001;

两者相加,得到结果为:00000000 00000000 00000000 00000000。因此,C 中的值是 0,发生了整数溢出。 当 C 是用来描述缓冲区大小或数组索引的时候,就可能被黑客利用,用来改变程序逻辑,绕过一些防御机制,已达到入侵的目的。

 

11 格式化串漏洞

格式化串漏洞最显著的例子,就是在*printf()系列函数中按照一定的格式对数据进行输出,可以输出到标准输出,即 printf(),也可以输出到文件句柄,字符串等,对应的函数有fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf 等。能被黑客利用的地方也就出在这一系列的*printf()函数中,黑客主要是利用 printf()系列函数有三条特殊的性质,首先第一个可以被利用的性质是:*printf()系列函数的参数的个数是不固定的。2.利用*printf()的一个特殊的格式符%n,我们就向内存中写入 exploit。3.利用附加格式符控制跳转地址的值。

 

12 夺取操作系统权限

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

 

13 SHE

Windows 早期的异常处理机制。活跃于 Windows SP3 以前(包含 SP3)的版本。后被VEH 取代默认异常处理机制地位。SHE 是一个单向链表,每当操作系统发生异常的时候,系统会检测进程的 PEB 结构,当 PEB 符合要求的时候,系统将会遍历 SHE 异常链表,SHE 异常处理函数会得到执行。

 

14 VEH

VEH windows XP SP3 后出现的新的异常处理机制,优先级高于 SHE。VES 是一个双向链表,每当操作系统发生异常的时候,系统会检测进程的PEB结构中的EnvironmentUpdateCount元素,当 PEB.EnvironmentUpdateCount 符合要求的时候,系统将会遍历 VEH 异常链表,VEH异常处理函数会得到执行。

 

15 UEF

系统默认异常处理函数,VEH/SHE 最后一环。当发生异常处理后一旦中间所以异常处理机制都无法处理的时候,最终会跳入系统异常处理。系统异常处理会采取强制关闭软件,并且跳出弹窗发出异常信息。

 

16 Heap Spray

一种加强 shellcode 稳定运行的方法。Heap Spray 是在 shellcode 的前面加上大量的 slidecode(滑板指令),组成一个注入代码段。然后向系统申请大量内存,并且反复用注入代码段来填充。这样就使得进程的地址空间被大量的注入代码所占据。然后结合其他的漏洞攻击技术控制程序流,使得程序执行到堆上,最终将导致 shellcode 的执行。

 

17 GS 安全编译选项

微软在 VS 2005 后提供的一种安全机制,GS 编译选项可以检查堆栈中是否有溢出。检查的方法是在函数栈的返回地址的前面加入一个随机生成的 cookie 验证串。如果函数栈遭到缓冲区溢出,改变了函数返回值,那在改变函数返回值之前一定会改变 cookie 串。在调用返回地址之前对随机的 cookie 进行检查发现被修改,则不执行返回地址,直接跳入异常处理。

 

18 security cookie

是一个在栈中的随机 cookie 串,用于检验栈是否被溢出。它属于微软在 VS2005 后提供的一种安全机制,GS 编译选项中的一部分。

 

19 heap cookie

是一个在堆中的随机 cookie 串,用于检验堆是否被溢出。它属于微软在 VS2005 后提供的一种安全机制,GS 编译选项中的一部分。

 

20 web SQL 注入攻击

SQL 命令注入漏洞源于 PHP、asp 等脚本语言对用户输入数据解析的缺陷。SQL 注入攻击是黑客对数据库进行攻击的常用手段之一。缺乏对用户输入数据的合法性进行判断,使应用程序存在安全隐患。最终导致黑客可以通过 WEB 应用获取后台数据库中的敏感信息。

 

21 SQL 盲注

当黑客向 web 应用发送注入点测试语句的时候,WEN 应用把后台的数据库报错信息隐藏掉后,黑客通过响应时间等因素来判断后台数据库类型,此处是否为注入点的一种技术。

 

22 内联 SQL 注入

sql 注入的一种,他的特点是在原有 SQL 语句中加入一些黑客需要查询的内容。虽然注入一些黑客要执行的 SQL 代码后,但原来的 SQL 语句依然会执行。

 

23 终止式 SQL 注入

sql 注入的一种,他的特点是在原有 SQL 语句中加入一些黑客需要查询的内容。利用注释符彻底改变原 SQL 语句的含义,使整个 SQL 语句返回的结果完全被黑客所用。

 

24 XSS 攻击

XSS 是一种经常出现在 web 应用中的计算机安全漏洞,它允许恶意 web 用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括 HTML 代码和客户端脚本。攻击者利用 XSS 漏洞旁路掉访问控制——例如同源策略(same origin policy).现在跨站脚本攻击是 web应用新型的“缓冲区溢出攻击“,而 JavaScript 是新型的“ShellCode”。当然这种攻击手段攻击者的目标不再是是 WEB 应用,而是通过 web 应用来入侵其他客户端使用者。

 

25 游标注入

游标注入是指利用游标进行 sql 注入。游标分为 3 类,其中游标注入使用的是显式游标。发生游标注入有 3 种场景:1.缺乏异常处理,挂起的游标被低权限用户恶意利用 2. oracle 游标漏洞提权 3. oracle 游标设计本身的安全隐患。

 

26 数据库层 SQL 注入

数据库系统级的函数、系统级的包和一些安全缺陷,进行的通过 SQL 语句中的畸形字符串或者其他方式,进行越权或提权操作。往往最终可以把一个低权限账号提升到 DBA 权限。

 

27 代码注入

在已有的 SQL 语句中插入新的 SQL 语句,一般需要数据库支持多条语句一起执行。

 

28 函数调用注入

针对数据库中某函数的参数已有的漏洞进行 SQL 串的注入。

 

29 针对 SQL 操作的注入

依靠对 WHERE 子句的修改使 SQL 语句返回不同的结果集。

 

30 弱口令

通常认为容易被别人猜测到或被破解工具破解的口令均为弱口令,其中很大一部分是数据库默认口令。

 

31 缺省密码

缺省密码是指数据库在创建过程中会产生默认用户名和默认密码。数据库提示用户修改密码,但用户未进行修改,产生缺省密码漏洞。例如:mssql 中管理员用户 sa/sa。

 

32 拒绝服务攻击

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

 

33 越权攻击

数据库中用户根据权限划分,一些用户本身并不具备某些操作权限。黑客获得了这个数据库用户后通过一些畸形的 sql 语法串,对含有漏洞的函数进行注入。导致低权限用户获得高权限用户才有的操作权限,执行原本自身权限无法执行的语句,获取敏感数据。

 

34 权限提升攻击

数据库中用户根据权限划分,一些用户本身并不具备某些操作权限。黑客获取该数据库用户后通过一些畸形的 sql 语法串,对含有漏洞的函数进行注入。导致低权限用户获得高权限用户才有的操作权限,执行提权语句,获取敏感数据。

 

35 社会工程攻击

是一种利用社会工程学来进行的攻击。常见的短信诈骗、电话诈骗都属于社会工程学攻击范畴。

 

36 暴力破解

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

 

© 版权声明
THE END
你的支持是我们在网空安全路上的驱动力!
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容