更多全球网络安全资讯尽在邑安全
www.eansec.com
Oracle注入学习
最近学习过程中碰到了有使用oracle数据库的站,但是最后没有拿下来 太菜了ORZ
所以学习了一下oracle注入,oracle其他的洞还在学习中ing...
Oracle数据库
Oracle安装
先来了解一下oracle数据库:
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。
oracle数据库
把数据库
(Database)可以看成是一个大仓库,然后仓库里面又很分了很多的库房
(Schema),一个Schema就是一个库房,那么库房里面自然就有很多货架
(Table),
那么货架上就可以放很多你想存储的东西,有行有列,所以货架(Table)就是数据存储的基本单位。每个库房(Schema)都会有一个管理人员
(User),这个关系是对应的,每个User只管理自己相应Schema里面的数据,如果你想要其他Schema里面的数据,就看管理这个Schema的User给不给你权限了,或者说看上一级领导
(DBA)有没有给你这个权限,可能有的User管理着好几个Schema。如果你是仓库的老板
,那么仓库里面的所有东西都是你的,你想存储什么或丢掉什么都是老板话算,还可以给下层的人分配不同的权限,比如仓库的不同主管,有的主管可能只读,有的主管有读写权限,这个就要涉及到仓库不同的角色
(Role),角色是一个权限的集合,不同的角色有不同的权限去管理这个数据库。
一些基本概念
1)SID(Site ID):一个由字母和数字组成的系统标识符用来做实例的唯一性的区别,包含了至少一个应用程序的实例和数据存储设备
2)实例(Instance):由一个实例数字(或是一个引导ID:SYS.V_$DATABASE.ACTIVATION#)表示,包含了一个操作系统程序的集合和与存储设备进行交谈的内部结构
ORACLE实例 = 进程 + 进程所使用的内存(SGA)
进程:负责接受和处理客户端传来的数据,如 Windows 下由 oracle.exe 进程负责分发和处理请求
SGA:全称为
System Global Area
(系统全局区域)。实际上是内存中的一片共享区域,其中包含实例配置、数据缓存、操作日志、SQL命令、用户信息等信息,由后台进程进行共享
3)数据库:一般指物理存储的文件,Oracle 数据库除了基本的数据文件,还有控制文件
和 Redo 日志
(重做文件 + 控制文件 + 数据文件 + 临时文件),这些文件一般存储在$ORACLE_HOME\oradata...路径下,后缀名后DBF
关于实例
和数据库
之间的关系
简而言之,实例是临时性的,数据库是永久性的,一个数据库可以对应多个实例,而一个实例只能对应一个数据库
Oracle数据结构
逻辑结构:表空间-->段-->区-->块
物理结构:
Oracle关系型数据库管理系统从逻辑上把数据保存在表空间内
,在物理上以数据文件的形式存储。表空间可以包含多种类型的内存区块
,例如数据区块(Data Segment)、索引区块(Index Segment)等等。区块相应的由一个或多个扩展(extent)组成
表空间
(Tablespace):数据文件就是由多个表空间组成的,这些数据文件和相关文件形成一个完整的数据库(以下的DBF后缀就是数据库默认创建的表空间)
SYSTEM表空间:包含了
数据字典
以及(默认的)索引