Oracle注入

显错注入
Oracle需要严谨的查询语法,所以引入了一个叫dual虚表的东西。
例如:select 1,2,3 from dual
其次它弱化了库的概念可以以一个用户一个数据库去理解它
Dual是一个实表(也有人说它是虚表),如果你直接查询它,它只显示一个X,列名为DUMMY
那么要它有什么用呢?
它实际上是为了满足查询语句的结构而产生
比如你想查询你的用户名select user from Dual
调用系统函数:(获得随机值: select dbms_random.random from dual
还能做加减法: select 9+1 from dual
还有更多的功能,这里只是皮毛
select * from all_tables查询出所有的表
select * from user_tables查询出当前用户的表
select * from all_tab_columns查询出所有的字段
select * from user_tab_columns查询出当前用户的字段
select * from v$version查版本

rownum=1 (限制查询返回的总行数为一条)
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1
第二行是2,
依此类推,这个伪字段可以用于限制查询返回的总行数。
我们可以用rownum<3来要求他输出2条数据
这里我没搭建Oracle数据库,就不做显错的演示了
在这里插入图片描述

报错注入
and字段名<>字段值(一个条件,查询时排除符合条件的数据当字段名中字段值符合数据就排除符合这个条件的数据)
例: and TABLE_NAME<>‘DUAL’
查询时符合table_name字段中值为DUAL的整条数据都会被排除
CTXSYS.DRITHSX.SN(user,(select banner from v¥version where rownum=1)) -->这里注意一下语句里面应该是dollar符,但是跟下面语句的dollar符不能同时在文章中出现,同时出现会被转义成其它东西,所以这里用中文字符代替了一下

去查询关于主题的对应关键词,然后因为查询失败(应该是这个用户没有创建和查询的权限,默认情况没有创建,爆出未查询到的错误从而爆出查询的内容)
and 1=ctxsys.drithsx.sn(1,(select banner from sys.v_$version where rownum=1) -->查询数据库版本
在这里插入图片描述
这里<>与!= 的效果是一样的都是不等于

进靶场看看
在这里插入图片描述
在这里插入图片描述
查它的表看看
在这里插入图片描述
在进去admin表里面查字段
在这里插入图片描述
接着查除了UNAME以外的其它字段
在这里插入图片描述
根据靶场的提示,flag就在UPASS字段里,那我们直接进去看数据吧!
在这里插入图片描述
它好像有那个大病,老说我右边少了个括号,但我没发现它少哇,于是乎,不查了…

在这里插入图片描述

未完待续…

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值