SQL攻擊流程詳解及主流防範措施

SQL注入攻擊——這個讓許多站長汗顏的入侵方式,曾經毀滅了數以千計的網站。當國外的黑客們信手玩弄SQL攻擊時,國內互聯網還處於風平浪靜的態勢,但當中國黑客們真正開始注入之旅時,絕大多數網站的噩夢隨之而至。你可能會懷疑國內站長們所作的安全工作,但事實上,做好SQL攻擊防範是非常複雜的,因爲它的變數太多,手法更加靈活。   SQL注入是從正常的WWW端口訪問,而且表面看起來跟一般的Web頁面訪問沒什麼區別, 所以目前市面的防火牆都不會對其發出警報,如果管理員沒查看日誌的習慣,可能被入侵很長時間都不會發覺。就國內的注入流程基本是:   1.首先檢測一個SQL注入點   2.使用集成化工具注入   3.得到數據庫   4.獲得管理員權限並試圖上傳網頁木馬   5.獲得整站權限,甚至是服務器ROOT   一、戰爭剛剛開始   大家都知道,隨着動態語言的出現以及交互式模型的廣泛應用,程序員開始越來越傾向這種高效率、高集成度的方式開發網站。但很多程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患,比如對特殊變量的過濾,對一些特殊字符的屏蔽等等。用戶可以提交一段數據庫查詢代碼,根據程序返回的結果,獲得某些他想得知的數據,這就是所謂的SQL Injection,即SQL注入。   儘管服務器返回了一些錯誤信息,但只要有信息,黑客就可以通過信息的提示進行枚舉和循環測試,知道出現不同的信息出現,這是SQL注入的標誌方法,以此來猜解出管理員的密碼或者數據庫名稱。上面我們說過,SQL注入的手法相當靈活,在注入的時候會碰到很多意外的情況。能不能根據具體情況進行分析,構造巧妙的SQL語句,從而成功獲取想要的數據,是高手與“菜鳥”的根本區別。   二、進攻套路   如果你的網站某個頁面不幸被黑客發現注入點,那接下來發生的事情的確會非常恐怖。首先,有很多專業級的注入工具(比如Domain)會幫助黑客來直接分析併入侵。我們還是先簡單介紹一下一種基本入侵的方式。   一般來說,SQL注入一般存在於形如:HTTP://xxx.xxx.xxx/123.asp?id=XX等帶有參數的ASP動態網頁中,有時一個動態網頁中可能只有一個參數,有時可能有多個參數。如果我們確定是帶有參數的動態網頁且此網頁訪問了數據庫,那麼就有可能存在SQL注入。如果ASP程序員沒有安全意識,不進行必要的字符過濾,存在SQL注入的可能性就非常大。   剛纔提到了錯誤提示信息,爲了全面瞭解動態網頁回答的信息,首選請調整IE的配置。把IE高級設置中的“顯示友好HTTP錯誤信息”前面的勾去掉,這樣IE就會完整的將錯誤信息展示出來了。   接着在鏈接地址後面加個“’”,回車看看是否有錯誤提示?如果沒有,加上“ and 1=1”呢?當然這只是兩個最基本的方法,靈活也正是靈活在這裏,千奇百怪的參數和特殊字符讓數據庫和程序防不勝防,直到檢驗出它的軟肋。   事實上,配合篩選,我們就可以猜出數據庫名稱。而這一切已經被專門的注入工具包含了。只要把鏈接輸入,它就會自動分析出網站的數據庫,進而猜解裏面的表。猜解出管理員的名稱和密碼就好辦了(如果密碼被加密過,用COOKIES僞裝吧)。一般在整站的後臺中,都會有上傳文件的選項,如果能直接上傳ASP文件最好,遺憾的是,稍有安全防範意識的程序員都不允許這樣上傳,畢竟還有FTP。一般可能只允許JPG、GIF等圖片格式,現在有很多CER的木馬,可以輕鬆突破這裏。   上傳了ASP木馬,就等於控制了整個虛擬目錄,如果服務器管理員粗心大意,你甚至可以管理整個服務器,這就是早期出現通過旁註方式來入侵的目的。但不管怎樣,至少你被上傳木馬的站點是掛了,更改文件、下載數據庫……ASP木馬的功能比FTP甚至還強大。   三、防範策略   既然SQL攻擊方法靈活,那防範起來自然有難度。但還是有一些規律可循,以不變應萬變。在設計或者維護 Web 網站時,程序員應該儘自己最大可能來過濾關鍵字符,這是SQL入侵的首要步驟,從這關把握住是相當必要的。程序員可以設計兩個頁面:一個是HTML頁面,另一個ASP動態頁面。這也就是爲什麼在今天看到越來越多靜態頁面地址的網站,其實在背後,仍然是通過ASP或者其它動態方式進行數據庫操作的。   爲了減輕危害,還可以限制用程序所用的數據庫訪問帳號權限。一般來說,應用程序沒有必要以sa的身份訪問數據庫。給它的權限越少,你的網站越安全!你還可以考慮分別給每個需要訪問數據庫的對象分配只擁有必需權限的帳號,以分散安全漏洞。當然,這對於絕大多數的“黑客”來說意義不大,因爲整個注入過程全由軟件代勞了。他們就等着上傳木馬了。   所以,控制文件上傳是非常必要的。你應該想盡一切辦法讓用戶少上傳文件,嚴格控制文件類型,並且做到後臺也如此。ASP木馬並不僅僅是ASP後綴的文件,越來越高級的技術會慢慢讓其更加難以防範,長期上講,拒絕上傳文件還是很有必要的。比如,有些程序員喜歡用排除法來防止木馬,它讓程序遇到ASP、EXE等程序是就隔離並阻止上傳,與其這樣,不如用反向過濾方法。如只允許JPG圖像上傳,這樣不管有什麼新格式的木馬出現,只要不是JPG格式的,就都會被禁止上傳。   還有就是需要提醒你的服務商,讓他做好安全工作,至少虛擬目錄間不要隨意跨越,權限設置很關鍵。當然你也要經常查看FTP目錄,看看是否有可疑的文件。網上有一種ASP文件,上傳以後訪問可以自動檢測虛擬目錄中是否包含ASP木馬,感興趣的朋友可以試試看,但這種方法並不是包治百病。   總體來說,SQL注入攻擊可謂易攻難防。這也是爲什麼它經久不衰的原因,雖然目前SQL注入漏洞越來越少,程序員編寫的程序也越來越完善,但安全無止境,還是會出現很多網站遭遇SQL注入攻擊的問題,打個比方,SQL攻擊就像DOS攻擊一樣,慢慢地在平民級普及開來,這種力量不容小覷。 SQL攻擊流程詳解及主流防範措施 原文出處:http://safe.zol.com.cn/95/951794.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章