網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 從codered到nimda等,一大堆蠕蟲把原來需要人工利用的漏洞都變成了程序自動利用了,大家還想去手工操作這些IIS漏洞么?讓我們調整重心,去看看服務器常用的數據庫吧。 一般網站都是基于數據庫的,特別是ASP、PHP、JSP這樣的用數據庫來動態顯示的網站。很多網站可能多注意的是操作系統的漏洞,但是對數據庫和這些腳本的安全總是忽略,也沒有太多注意。 從最比較普遍的腳本問題開始,這些都是老話題了,大家可以參考Hectic寫的《關于數據庫的簡單入侵和無賴破壞,以天融信做例子》,該文章對從SQL腳本問題說得非常詳細。對于腳本安全的解決,也可以通過過濾來實現,可以參考我以前寫的。對于ASP來說,可以使用下面這個過濾函數: Function Filter_SQL(strData) blnFlag=Flase ’過濾標志,如果產生過濾,那么就是真 在SQL Server中有很多系統存儲過程,有些是數據庫內部使用的,還有一些就是通過執行存儲過程來調用系統命令。 |
執行權限的用戶在 SQL Server 服務的用戶帳戶中運行命令。可以通過配置選項配置 SQL Server,以便對 SQL Server 無 sa 訪問權限的用戶能夠在SQLExecutiveCmdExec Windows NT 帳戶中運行 xp_cmdshell。在 SQL Server 7.0 中,該帳戶稱為 SQLAgentCmdExec。現在對于SQL Server2000,只要有一個能執行該存儲過程的帳號就可以直接運行命令了。 對于 NT 和 WIN2000,當用戶不是 sysadmin 組的成員時,xp_cmdshell 將模擬使用 xp_sqlagent_proxy_account 指定的 SQL Server 代理程序的代理帳戶。如果代理帳戶不能用,則 xp_cmdshell 將失敗。所以即使有一個帳戶是master數據庫的db_owner,也不能執行這個存儲過程。 如果我們有一個能執行xp_cmdshell的數據庫帳號,比如是空口令的sa帳號。那么我們可以執行這樣的命令: exec xp_cmdshell ’net user refdom 123456 /add’ exec xp_cmdshell ’net localgroup administrators refdom /add’ 上面兩次調用就在系統的管理員組中添加了一個用戶:refdom 當我們獲得數據庫的sa管理員帳號后,就應該可以完全控制這個機器了。可見數據庫安全的重要性。 下面這些存儲過程都是對Public可以執行的: xp_fileexist,用來確定一個文件是否存在。 xp_getfiledetails,可以獲得文件詳細資料。 xp_dirtree,可以展開你需要了解的目錄,獲得所有目錄深度。 Xp_getnetname,可以獲得服務器名稱。 還有可以操作注冊表的存儲過程,這些不是對Public可以執行的,需要系統管理員或者授權執行: Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues Xp_regread (對Public可以執行) Xp_regremovemultistring Xp_regwrite SQL Server的安全配置 接著對擴展存儲過程開始大屠殺,首先就是xp_cmdshell,還有就是上面那些一大堆存儲過程,都drop吧,一般也用不著。 下面是一些關于數據庫的問答和技巧: xp_regread |
溫馨提示:喜歡本站的話,請收藏一下本站!