国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本
首頁
|
新聞
|
娛樂
|
游戲
|
科普
|
文學(xué)
|
編程
|
系統(tǒng)
|
數(shù)據(jù)庫
|
建站
|
學(xué)院
|
產(chǎn)品
|
網(wǎng)管
|
維修
|
辦公
|
熱點
首頁
>
數(shù)據(jù)庫
>
Oracle
> 正文
ORACLE LATERAL-SQL-INJECTION 個人見解
2020-07-26 14:36:03
字體:
大
中
小
來源:
轉(zhuǎn)載
供稿:網(wǎng)友
如果直接執(zhí)行SQL語句或者參數(shù)綁定則不用擔(dān)心太多,
如以下ORACLE存儲過程
create or replace procedure kjdatepoc(date d)
as
begin
insert into kjdatetable values(d);
commit;
end;
根本不需要擔(dān)心遭受到SQL新型注入攻擊,那么在什么地方會發(fā)生DATE 以及 NUMBER的注入攻擊呢?。恳话愣际遣捎昧藙討B(tài)SQL而又不采用參數(shù)綁定的語句。
例如工程師經(jīng)常用的DBMS_SQL或者EXECUTE IMMEDIATE
看以下存儲過程
create or replace procedure kjdatepoc(date d)
as
begin
execute immediate ‘insert into kjdatetable values('|| d ||')';
commit;
end;
那么遇到以上的存儲過程或者函數(shù)等,也通過修改SESSION中的NLS_DATE_FORMAT中的值達(dá)到SQL注射的目的,
老外的PAPER講解得非常詳細(xì)了 ,我在這里也不廢話。
惟獨對于 NUMBER類型的注射沒有多作講解 只是簡單演示了可以輸出單引號!
看以下語句
ALTER SESSION SET NLS_NUMERIC_CHARACTERS=”'.';
SELECT to_number(1000.10001,'999999D99999′)||” FROM DUAL;
輸出一下結(jié)果
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;
內(nèi)部對varchar類型進(jìn)行替換了!我們可以進(jìn)行測試
begin
numinjpoc(1000,”' 主站蜘蛛池模板:
湘潭县
|
铜梁县
|
赣榆县
|
天镇县
|
轮台县
|
安顺市
|
阳曲县
|
凤山市
|
平湖市
|
南阳市
|
崇礼县
|
遂昌县
|
浦县
|
黑水县
|
屯昌县
|
平乡县
|
武定县
|
桂东县
|
绥芬河市
|
昆山市
|
江华
|
广汉市
|
洪泽县
|
息烽县
|
松原市
|
水富县
|
龙山县
|
若尔盖县
|
资溪县
|
托里县
|
霍州市
|
福贡县
|
曲靖市
|
津市市
|
蒙山县
|
淮南市
|
永丰县
|
砚山县
|
富宁县
|
东乡县
|
阿鲁科尔沁旗
|