oracle注入

发布时间 2023-06-29 16:29:02作者: 街头巷尾1

基础知识

Oracle是一款使用较为广泛的关系型数据库,在SQL注入中他与mysql语法最大的区别就是,使用select查询时需要指定表名才能进行查询。很多时候我们在进行注入时,刚开始是不知道其表名的,所以我们得想一个办法来解决这个问题:就是使用oracle中的dual虚拟表,他是默认存在的,他里面永远都有一条记录,可以用他来完成select查询语句完整。

oracle中有存在一些内置表:

  dba_tables:系统里所有表信息,需要DBA权限才能查询

  all_tables:当前用户有权限的表信息

  user_tables:当前用户名下的表信息

  DBA_ALL_TABLES:DBA用户所拥有的或有访问权限的对象和表

  ALL_ALL_TABLES:某一个用户拥有的或有访问权限的对象和表

  USER_ALL_TABLES:某一用户所拥有的对象和表

  所能看到信息多少的排序:

    dba_tables-->all_tables-->user_tables

权限和用户

  DBA:拥有全部权限,系统最高权限,只有DBA才可以创建数据库结构

  RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构

  CONNECT:拥有CONNECT权限的用户只可以登录Oracle,不可以创建实体,不可以穿件数据库结构

常用查询语句

当前用户权限     select * from session_roles
当前数据库版本   select banner from sys.v_$version where rownum=1
服务器操作系统   select member from v$logfile where rownum=1
服务器suid      select instance_name from v$instance
当前连接用户     select SYS_CONTEXT ('USERENV','CURRENT_USER') from dual
当前用户         select user from dual