SQLServer注入技巧

www88xbocom17176934555發表於2021-03-17

一、SA許可權執行命令,如何更快捷的獲取結果?

有顯示位

顯示位

其實這裡的關鍵並不是有無顯示位。exec master..xp_cmdshell ‘systeminfo’生成的資料寫進一張表的時候,會產生很多行。而我們要做的就是如何很多行透過顯示位、或者報錯語句一次性爆出來,這裡的關鍵就是多行合一。

方法①

圖片

解析:

這裡6-9句的意思是申明一個@result的臨時變數;

設定初始值為’~’;將test_1中的資料資料依次取出來,迭代條件是output>’ ‘,並組合成新的字串,字串之間用空格隔開最後複製給@result;然後將@result設定一個別名,然後插入test_2中。

最後報錯回顯

PS:

mssql英文字母比較大小不區分大小寫

mssql字串比較大小和C語言中的str_cmp()一樣的道理

方法②(注入點測試成功、測試平臺SQL Server2008- 10.0.1600.22 (X64)

圖片

二、如何快速尋找網站目錄(SA使用者)

SA使用者被降權

SA使用者未被降權

這裡區分降權與非降權是有道理的,如果沒有被降權。那麼許可權很高就可以讀取某些儲存在本機的配置了,如果許可權低一點的話,可以使用dir命令查詢。

方法①(被降權:–親測成功):

圖片

方法②(未被降權–system–親測成功):

圖片

方法③(sa+system許可權+IIS7.0+IIS7.5):

%systemroot%/system32/inetsrv/appcmd.exe list site ——列出網站列表

%systemroot%\system32\inetsrv\appcmd.exe list vdir ——列出網站物理路徑

PS: %systemroot%代表c:\windows\

三、如何利用注入點getshell

方法①(差異備份)–客戶端親測成功–並未要求許可權,可以在非sa許可權的注入點測試

圖片

方法②(減小體積)–客戶端親測成功–並未要求許可權,可以在非sa許可權的注入點測試

圖片

PS:

如果不能備份,很有可能是訪問許可權的問題。可以切換目錄嘗試

如果表存在,也不能成功;所以先判斷表是否存在,如果存在就刪除。

方法③(echo 輸出一句話木馬)–sa許可權+當前使用者寫許可權–親測成功

圖片

PS:這裡由於是注入點,因此需要注意編碼的問題。一般來說,網頁的編碼和資料庫的編碼是一致的(如果不一致~算我輸)。這裡我用了一箇中文路徑做說明。

四、如何避免使用select之類的關鍵字

方法①:十六進位制混淆

圖片

五、登入點的注入如何最快獲取後臺密碼

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章