彻底删除SQL Server2000的xp_cmdShell扩展存贮过程

一、xp_cmdshell的删除及恢复

1、判断xp_cmdshell是否存在

(SELECT count(*) FROM master.dbo.sysobjects WHERE xtype = 'X' AND name ='xp_cmdshell')

返回结果为1就ok

2、恢复xp_cmdshell的方法

删除扩展存储过过程xp_cmdshell的语句

exec sp_dropextendedproc 'xp_cmdshell'

恢复cmdshell的sql语句

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

exec master.dbo.addextendedproc 'xp_cmdshell','xplog70.dll';select count(*) from

master.dbo.sysobjects where xtype='x' and

返回结果为1就ok

否则需上传c:\inetput\web\xplog70.dll后

exec master.dbo.sp_addextendedproc 'xp_cmdshell',’c:\inetput\web\xplog70.dll’;--

如果是用以下方法删除

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是不是存在

3.彻底删除xp_cmdshell扩展存储过程

使用上面介绍的删除语句后,在磁盘上找到xplog70.dll这个文件。改名或者删除这个文件。
posted @ 2011-11-11 00:49  Handll  阅读(286)  评论(0编辑  收藏  举报