首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2000 移除危險擴展預存程序:完整清單與還原腳本

     編輯:關於SqlServer

SQL Server 2000 預設安裝多個擴展預存程序(Extended Stored Procedures),若遭惡意利用可導致伺服器被植入木馬、竊取檔案、執行系統指令。本文提供完整移除腳本與還原腳本,建議在正式環境執行移除前先於測試環境驗證應用程式相容性。

移除危險擴展預存程序

USE master;
GO
EXEC sp_dropextendedproc 'xp_cmdshell';
EXEC sp_dropextendedproc 'xp_dirtree';
EXEC sp_dropextendedproc 'xp_enumgroups';
EXEC sp_dropextendedproc 'xp_fixeddrives';
EXEC sp_dropextendedproc 'xp_loginconfig';
EXEC sp_dropextendedproc 'xp_enumerrorlogs';
EXEC sp_dropextendedproc 'xp_getfiledetails';
EXEC sp_dropextendedproc 'sp_OACreate';
EXEC sp_dropextendedproc 'sp_OADestroy';
EXEC sp_dropextendedproc 'sp_OAGetErrorInfo';
EXEC sp_dropextendedproc 'sp_OAGetProperty';
EXEC sp_dropextendedproc 'sp_OAMethod';
EXEC sp_dropextendedproc 'sp_OASetProperty';
EXEC sp_dropextendedproc 'sp_OAStop';
EXEC sp_dropextendedproc 'xp_regaddmultistring';
EXEC sp_dropextendedproc 'xp_regdeletekey';
EXEC sp_dropextendedproc 'xp_regdeletevalue';
EXEC sp_dropextendedproc 'xp_regenumvalues';
EXEC sp_dropextendedproc 'xp_regread';
EXEC sp_dropextendedproc 'xp_regremovemultistring';
EXEC sp_dropextendedproc 'xp_regwrite';
DROP PROCEDURE sp_makewebtask;
GO

高風險項目說明

程序名稱風險說明
xp_cmdshell執行作業系統指令,最高風險
sp_OA*OLE Automation 物件操作,可存取檔案系統、註冊表、網路
xp_reg*登錄表讀寫,可竄改系統設定
xp_dirtree / xp_getfiledetails列舉目錄結構、取得檔案詳細資訊,資訊洩露風險

還原腳本(如業務確實需要)

USE master;
GO
EXEC sp_addextendedproc 'xp_cmdshell', 'xp_cmdshell.dll';
EXEC sp_addextendedproc 'xp_dirtree', 'xpstar.dll';
EXEC sp_addextendedproc 'xp_enumgroups', 'xplog70.dll';
EXEC sp_addextendedproc 'xp_fixeddrives', 'xpstar.dll';
EXEC sp_addextendedproc 'xp_loginconfig', 'xplog70.dll';
EXEC sp_addextendedproc 'xp_enumerrorlogs', 'xpstar.dll';
EXEC sp_addextendedproc 'xp_getfiledetails', 'xpstar.dll';
EXEC sp_addextendedproc 'sp_OACreate', 'odsole70.dll';
EXEC sp_addextendedproc 'sp_OADestroy', 'odsole70.dll';
EXEC sp_addextendedproc 'sp_OAGetErrorInfo', 'odsole70.dll';
EXEC sp_addextendedproc 'sp_OAGetProperty', 'odsole70.dll';
EXEC sp_addextendedproc 'sp_OAMethod', 'odsole70.dll';
EXEC sp_addextendedproc 'sp_OASetProperty', 'odsole70.dll';
EXEC sp_addextendedproc 'sp_OAStop', 'odsole70.dll';
EXEC sp_addextendedproc 'xp_regaddmultistring', 'xpstar.dll';
EXEC sp_addextendedproc 'xp_regdeletekey', 'xpstar.dll';
EXEC sp_addextendedproc 'xp_regdeletevalue', 'xpstar.dll';
EXEC sp_addextendedproc 'xp_regenumvalues', 'xpstar.dll';
EXEC sp_addextendedproc 'xp_regread', 'xpstar.dll';
EXEC sp_addextendedproc 'xp_regremovemultistring', 'xpstar.dll';
EXEC sp_addextendedproc 'xp_regwrite', 'xpstar.dll';
GO

最佳實務:SQL Server 2005 以上版本已內建 sp_configure 'xp_cmdshell' 開關,預設關閉。新版本應優先使用 CLR 整合或 Agent 作業替代危險擴展程序功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved