程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> SQLserver 數據庫危險存儲過程刪除與恢復方法

SQLserver 數據庫危險存儲過程刪除與恢復方法

編輯:更多數據庫知識

今天為了實現SQLServer/" target="_blank">sqlserver的復制功能,因為以前刪除了很多的sqlserver的一些會導致不安全因素的擴展,導致很多功能無法用,沒有辦法需要重新的恢復擴展。
曾經遇過,差點抓狂,有裝MSSQL的朋友,趕緊試一下,刪除以下的組件.當然,前提是你要把自己的數據庫搞定後再去刪除,否則組件刪除後很多功能不能用,為了安全,就得犧牲某些功能,當然,像我這類的,我除了把MSSQL導入後,基本上一年用不到兩次,所以,我是會毫不猶豫地刪除,嘿.

一, 將有安全問題的SQL過程刪除.比較全面.一切為了安全!

刪除了調用shell,注冊表,COM組件的破壞權限

MS SQL SERVER2000

使用系統帳戶登陸查詢分析器
運行以下腳本
復制代碼 代碼如下:
use master
exec sp_dropextendedproc 'xp_cmdshell'
exec sp_dropextendedproc 'xp_enumgroups'
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_regremovemultistring'
exec sp_dropextendedproc 'xp_regwrite'
drop procedure sp_makewebtask
go


刪除所有危險的擴展.
exec sp_dropextendedproc 'xp_cmdshell' [刪除此項擴展後,將無法遠程連接數據庫]
以下3個存儲過程會在SQL SERVER恢復備份時被使用,非必要請勿刪除
#exec sp_dropextendedproc 'xp_dirtree' [刪除此項擴展後,將無法新建或附加數據庫]
#exec sp_dropextendedproc 'Xp_regread' [刪除此項擴展後, 還原數據庫輔助]
#exec sp_dropextendedproc 'xp_fixeddrives' [刪除此項擴展後,將無法還原數據庫]

恢復腳本
復制代碼 代碼如下:
use master
EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
EXEC sp_addextendedproc xp_enumgroups ,@dllname ='xplog70.dll'
EXEC sp_addextendedproc xp_loginconfig ,@dllname ='xplog70.dll'
EXEC sp_addextendedproc xp_enumerrorlogs ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_getfiledetails ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc Sp_OACreate ,@dllname ='odsole70.dll'
EXEC sp_addextendedproc Sp_OADestroy ,@dllname ='odsole70.dll'
EXEC sp_addextendedproc Sp_OAGetErrorInfo ,@dllname ='odsole70.dll'
EXEC sp_addextendedproc Sp_OAGetProperty ,@dllname ='odsole70.dll'
EXEC sp_addextendedproc Sp_OAMethod ,@dllname ='odsole70.dll'
EXEC sp_addextendedproc Sp_OASetProperty ,@dllname ='odsole70.dll'
EXEC sp_addextendedproc Sp_OAStop ,@dllname ='odsole70.dll'
EXEC sp_addextendedproc xp_regaddmultistring ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_regdeletekey ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_regdeletevalue ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_regenumvalues ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_regremovemultistring ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_regwrite ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_dirtree ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_regread ,@dllname ='xpstar.dll'
EXEC sp_addextendedproc xp_fixeddrives ,@dllname ='xpstar.dll'
go


全部復制到"SQL查詢分析器"

點擊菜單上的--"查詢"--"執行",就會將有安全問題的SQL過程刪除


二,SQL server 2000漏洞一直很多
  前段時間我自己的服務器就出現了一個sql的臨時儲存過程漏洞
  漏洞擴展:xp_dirtree儲存過程

  事前:最近發現一個漏洞是sql服務器造成的
前幾天正好沒有什麼事情,就用阿d的sql注入工具對自己服務器的網站進行注入,偶然發現了使用mssql的網站浸染可以利用sql注入的形式得到整個服務器上所有目錄(我的服務器作了安全設置的)依然可以看見,然後在服務器上安裝了一個抓包工具對sql server進行抓包發現,使用工具連接sql漏洞xp_dirtree讀取目錄,可獲得整個服務器目錄,如列出c盤目錄他會把你c盤下的所有目錄列出來,這樣是很不安全的,目前是只可以查處目錄上穿東西,大家可以設想一下,如果我隨意修改一個boot.ini覆蓋了c盤的boot.ini是一個什麼概念,呵呵首先可以導致服務其癱瘓,無法讀取系統
解決方案:刪除xp_dirtree,命令是sp_dropextendedproc 'xp_dirtree'
刪除了以上的那個組建您在使用阿d或者任何的sql注入工具都是白搭

  在這裡也給大家提供一些其他sql危險的儲存過程
  建議刪除

  [注意:所有刪除sql儲存過程的操作必須在mssql查詢分析器裡操作,下面哪些前面的是儲存過程的名字後面是刪除儲存過程的命令]

先來列出危險的內置存儲過程:
復制代碼 代碼如下:
xp_cmdshell sp_dropextendedproc 'xp_cmdshell'
xp_regaddmultistring sp_dropextendedproc 'xp_regaddmultistring'
xp_regdeletekey sp_dropextendedproc 'xp_regdeletekey'
xp_regdeletevalue sp_dropextendedproc 'xp_regdeletevalue'
xp_regenumkeys sp_dropextendedproc 'xp_regenumkeys'
xp_regenumvalues sp_dropextendedproc 'xp_regenumvalues'
xp_regread sp_dropextendedproc 'xp_regread'
xp_regremovemultistring sp_dropextendedproc 'xp_regremovemultistring'
xp_regwrite sp_dropextendedproc 'xp_regwrite'


ActiveX腳本:

復制代碼 代碼如下:
sp_OACreate sp_dropextendedproc 'sp_OACreate'
sp_OADestroy sp_dropextendedproc 'sp_OADestroy'
sp_OAMethod sp_dropextendedproc 'sp_OAMethod'
sp_OAGetProperty sp_dropextendedproc 'sp_OAGetProperty'
sp_OAGetErrorInfo sp_dropextendedproc 'sp_OAGetErrorInfo'
sp_OAStop sp_dropextendedproc 'sp_OAStop'

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved