竹笋

注册

 

发新话题 回复该主题

Oracle数据库安全思考之xml反序列 [复制链接]

1#

No.1

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。

雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

No.2

前言

在测试过程中,碰到oracle数据库,只发现存在一个低权限用户dm,由于权限不足无法进一步获取关键数据,同时无法进一步获取系统权限。

主机场景:

运行服务器:centos6.5数据库版本:OracleDatabase12cEnterpriseEditionRelease12.2.0.1.0-64bitProduction

低权限用户ESTER

能够访问SQLPLUS终端,也可以使用PL/SQL工具连接。

XML反序列化

XML反序列化,可以描述一个JavaObject,以及用来构建Object时所需要调用的方法和相关参数。在Oracle中,使用XMLDecoder类重新组装XML序列化后的对象,而在组装过程中所调用的对象方法,没有被OracleJVM限制权限。因此,可以使用XML反序列化构建一个FileWriter对象,并调用其write方法,就可以实现文件写入操作。

No.3

Java存储过程

Oracle企业版在数据库中嵌入了Java虚拟机,Oracle数据库通过Java存储过程支持Java的本机执行,存储过程是发布到SQL并存储在数据库中以供一般使用的Java方法。调用存储过程

在互通性上面,Oracle数据库中的Java完全符合Java语言规范(JLS),并提供了通用的,面向对象的编程语言的所有优点。另外,与PL/SQL一样,Java提供对Oracle数据的完全访问权限。结果,任何用PL/SQL编写的过程也可以用Java编写。

No4

通过SQL终端查询java版本

createfunctionget_java_property(propinvarchar2)returnvarchar2islanguagejavanamejava.name.System.getProperty(java.lang.String)returnjava.lang.String;

No.5

JVM的基本保护

SETscanoff

createorreplaceand

分享 转发
TOP
发新话题 回复该主题