深信服应用层安全培训-Web渗透测试系列-X-O课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《深信服应用层安全培训-Web渗透测试系列-X-O课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深信 应用 安全 培训 Web 渗透 测试 系列 课件
- 资源描述:
-
1、Web渗透测试系列_X_Oracle注入1.Oracle基础2.渗透测试框架3.常规注入4.盲注入5.注入绕过6.PL/SQL注入7.总结培训提纲Oracle基础Oracle数据库实例与数据库标识Oracle数据库包含两个方面,即Oracle数据库和Oracle实例,用户通过Oracle实例来访问Oracle数据库。数据库是作为整体看待的数据集合,通常在安装Oracle软件的最后阶段创建,用数据库名加以标识,数据库名在创建数据库时确认,且保存在控制文件中。实例是存取和控制数据库的软件机制。它由系统全局区(System Global Area)和Oracle进程两部分组成,和数据库名一样,实例也
2、要唯一标识,并且在安装Oracle软件时确认。虽然数据库名与实例名可以设置为相同的,但最好取不同标识符。Oracle数据库文件Oracle数据库有参数文件(.ora)、控制文件(.ctl)、数据文件(.dbf)、日志文件(.log)。当Oracle数据库启动时,根据初始化参数文件找到控制文件,再由控制文件操作数据和日志文件。Oracle数据库在建立和运行中,都需要读取一个初始化参数文件,它是一个文本文件,每个数据库至少有一个初始化参数文件,一般命名为init.ora。Oracle数据库物理结构Oracle数据库的物理结构是面向操作系统的,它描述数据库中的数据的存储方式。在物理上Oracle数据
3、库文件包括数据文件、日志文件和控制文件。数据库中的数据,逻辑上存放在表空间里,但物理上确是存放在数据文件里的,每一个数据文件只与一个数据库相联系,数据库文件一旦建立,就不能改变大小,一个表空间可以包含一个或多个数据文件。日志文件用于记录数据库所做的全部变更,以便在系统发生故障时进行恢复,每一个数据库至少有两个日志文件。控制文件是一个较少的二进制文件,控制文件一旦被破坏,则无法对数据进行操作。Oracle数据库逻辑结构数据库的逻辑结构是面向用户的,数据库的逻辑结构包含表空间、段、范围、数据块和模式对象。从逻辑上看,一个数据库由一个或多个表空间组成,表空间可以理解为一个或多个数据文件的逻辑集合;表
4、空间的逻辑存储对象是段,如用于表和索引的永久段,用于临时表数据和排序的临时段,用于事物回滚的回滚段;段由一组范围组成;一组范围由一组连续的数据块组成;一个数据块对应磁盘上一个或多个物理块。Oracle的权限管理Oracle的权限可以分为系统权限与对象权限。系统权限规定用户使用数据库的权限,系统权限是对用户而言的;对象权限规定对其他用户的表或视图的存取权限,是针对表或视图而言的。Oracle的角色管理Oracle通常通过DBA、RESOURCE、CONNECT三种角色来管理系统权限。DBA角色拥有系统最高权限,被赋予DBA角色的用户才可以创建数据库结构,被赋予RESOURCE角色的用户只可以创建
5、实体对象而不可以创建数据库结构,被赋予CONNECT角色的用户只可以登录Oracle而不可以创建实体对象和创建数据库结构。我们应该对普通用户赋予CONNECT,RESOURCE角色,对于dba管理用户赋予CONNECT,RESOURCE,DBA角色。Oracle的用户管理Oracle数据库是个多用户系统。为了保证数据库系统的安全,Oracle数据库管理系统配置了良好的安全机制。每一个Oracle数据库都有个用户表,它记载着每一个用户的有关信息,一旦用户进入系统,Oracle系统会通过这张表来检查用户的合法性。Oracle系统通过合理分配用户的权限来管理用户,通常Oracle将用户分为三类,即D
6、BA、RESOURCE和CONNECT三类角色,使不同用户的权限各不相同。Oracle的数据字典数据字典是Oracle存放有关数据库信息的地方,是用来描述数据的,比如一个表的创建者的信息,创建时间信息,所属表空间信息,用户访问权限信息等等。Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时数据字典不会发生改变,例如用户创建的表。动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。静态数据字典主要是由表和视图组成,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典的视图分为三类,它
7、们分别由三个前缀组成:user_*、all_*、dba_*。Oracle集合并查询Oracle集合查询中的并查询(union select)在SQL注入过程中常用来提取数据。Union是并的意思,它可以连接两条或多条select语句的查询结果。Oracle使用union必须要满足两个限定条件:一个就是两个查询返回的列数必须相同,即匹配列;另一个就是两个select语句返回的数据所对应的列必须类型相同或至少是兼容的,即匹配数据类型。渗透测试框架框架概述利用Web应用程序存在的Oracle SQL注入漏洞,攻击者可以做很多事情,其中最直接也是最普遍的就是提取数据,除此之外还可以提升权限、读写文件、
8、执行系统命令等,直到攻击者可以完全控制服务器。显而易见的是攻击者要想利用Oracle 注入漏洞完全控制服务器不是一蹴而就的,是需要经过寻找、探测、利用等过程,而这个过程就是指导我们安全渗透测试人员测试Oracle SQL注入漏洞的框架。框架图解框架说明渗透测试框架图解说明Oracle SQL注入渗透测试分两大模块,左边模块是注入漏洞的探测阶段,在该模块的主要任务是覆盖应用程序所有的可测试点并对测试点进行探测,确定每一个可测试点是否是一个可注入点,发现可注入点后,再探测清楚数据库的基本信息,为右边的漏洞利用提供依据,左边模块从左到右是一个探测流程。右边模块是在左边模块探测的基础上发起的实际的攻击
9、,每一个攻击都为完成不同的目的,各自独立。从框架图中,可以清楚的了解SQL注入漏洞的探测阶段才是渗透过程的重点,无论对于攻击者还是对于渗透测试人员都是如此,发现了漏洞才能利用漏洞。常规注入收集应用程序可测试点应用程序可测试点指的是Web应用程序页面中用户可控数据的入口点。用户通过入口点输入的数据,如果没有经过验证过滤而被用于操作数据库,就有可能存在SQL注入漏洞。所以在收集可测试点的过程中,应尽量确保覆盖范围,不遗漏每一个可测试点。常见的可测试点有url查询字符串参数、post表单数据、cookie数据,post表单数据往往还包含一些隐藏字段。当然可测试点远不止这几种,http请求报文头中的任
10、何消息报头的值都可以作为可测试点,如Referer消息报头等,但通常情况下我们只需要考虑常见的那三种可测试点即可(因为请求消息报头一般不会被应用程序用于操作数据库)。确定可测试点是可注入点确定可测试点是否是可注入点,是SQL注入渗透测试最重要的一个环节。确定的依据主要有两种,一种是依据用户输入数据是否会导致应用程序出现SQL语法错误,另一种是依据用户输入数据执行结果的差异性。依据SQL语法错误判定通常指的就是单引号测试,依据SQL语句执行的差异判定最经典就是“and 1=1”与“and 1=2”测试。数据库类型探测发现了SQL注入漏洞相当于找到了切入点,对于攻击者没有任何意义,对于渗透测试人员
展开阅读全文