摘要:1.关于openrowset和opendatasource
可能这个技巧早有人已经会了,就是利用openrowset发送本地命令。通常我们的用法是(包括MSDN的列子)如下:
select * from openrowset('sqloledb','myserver';'sa';'','select * from table')
可见(即使从字面意义上看)openrowset只是作为一个快捷的远程数据库访问,它必须跟在select后面,也就是说需要返回一个recordset 。
那么我们能不能利用它调用xp_cmdshell呢?答案是肯定的!
select * from openrowset('sqloledb','server';'sa';'','set fmtonly off exec master.dbo.xp_cmdshel l ''dir c:\''')
必须加上set fmtonly off用来屏蔽默认的只返回列信息的设置,这样xp_cmdshell返回的o (全文共4274字)——点击
此处阅读全文