明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

SQL攻擊流程詳細說明及主流防范措施

[摘要]SQL注入攻擊——這個讓許多站長汗顏的入侵方式, 曾經(jīng)毀滅了數(shù)以千計的網(wǎng)站。 當國外的黑客們信手玩弄SQL攻擊時, 國內(nèi)互聯(lián)網(wǎng)還處于風平浪靜的態(tài)勢, 但當中...

SQL注入攻擊——這個讓許多站長汗顏的入侵方式, 曾經(jīng)毀滅了數(shù)以千計的網(wǎng)站。 當國外的黑客們信手玩弄SQL攻擊時, 國內(nèi)互聯(lián)網(wǎng)還處于風平浪靜的態(tài)勢, 但當中國黑客們真正開始注入之旅時, 絕大多數(shù)網(wǎng)站的噩夢隨之而至。 你可能會懷疑國內(nèi)站長們所作的安全工作, 但事實上, 做好SQL攻擊防范是非常復(fù)雜的, 因為它的變數(shù)太多, 手法更加靈活。  

  SQL注入是從正常的WWW端口訪問, 而且表面看起來跟一般的Web頁面訪問沒什么區(qū)別,  所以目前市面的防火墻都不會對其發(fā)出警報, 如果管理員沒查看日志的習(xí)慣, 可能被入侵很長時間都不會發(fā)覺。 就國內(nèi)的注入流程基本是: 

  1.首先檢測一個SQL注入點 

  2.使用集成化工具注入 

  3.得到數(shù)據(jù)庫 

  4.獲得管理員權(quán)限并試圖上傳網(wǎng)頁木馬 

  5.獲得整站權(quán)限, 甚至是服務(wù)器ROOT 

  一、戰(zhàn)爭剛剛開始 

  大家都知道, 隨著動態(tài)語言的出現(xiàn)以及交互式模型的廣泛應(yīng)用, 程序員開始越來越傾向這種高效率、高集成度的方式開發(fā)網(wǎng)站。 但很多程序員在編寫代碼的時候, 沒有對用戶輸入數(shù)據(jù)的合法性進行判斷, 使應(yīng)用程序存在安全隱患, 比如對特殊變量的過濾, 對一些特殊字符的屏蔽等等。 用戶可以提交一段數(shù)據(jù)庫查詢代碼, 根據(jù)程序返回的結(jié)果, 獲得某些他想得知的數(shù)據(jù), 這就是所謂的SQL Injection, 即SQL注入。  

  盡管服務(wù)器返回了一些錯誤信息, 但只要有信息, 黑客就可以通過信息的提示進行枚舉和循環(huán)測試, 知道出現(xiàn)不同的信息出現(xiàn), 這是SQL注入的標志方法, 以此來猜解出管理員的密碼或者數(shù)據(jù)庫名稱。 上面我們說過, SQL注入的手法相當靈活, 在注入的時候會碰到很多意外的情況。 能不能根據(jù)具體情況進行分析, 構(gòu)造巧妙的SQL語句, 從而成功獲取想要的數(shù)據(jù), 是高手與“菜鳥”的根本區(qū)別。  

  二、進攻套路 

  如果你的網(wǎng)站某個頁面不幸被黑客發(fā)現(xiàn)注入點, 那接下來發(fā)生的事情的確會非?植馈 首先, 有很多專業(yè)級的注入工具(比如Domain)會幫助黑客來直接分析并入侵。 我們還是先簡單介紹一下一種基本入侵的方式。  

  一般來說, SQL注入一般存在于形如:HTTP://xxx.xxx.xxx/123.asp?id=XX等帶有參數(shù)的ASP動態(tài)網(wǎng)頁中, 有時一個動態(tài)網(wǎng)頁中可能只有一個參數(shù), 有時可能有多個參數(shù)。 如果我們確定是帶有參數(shù)的動態(tài)網(wǎng)頁且此網(wǎng)頁訪問了數(shù)據(jù)庫, 那么就有可能存在SQL注入。 如果ASP程序員沒有安全意識, 不進行必要的字符過濾, 存在SQL注入的可能性就非常大。  

  剛才提到了錯誤提示信息, 為了全面了解動態(tài)網(wǎng)頁回答的信息, 首選請調(diào)整IE的配置。 把IE高級設(shè)置中的“顯示友好HTTP錯誤信息”前面的勾去掉, 這樣IE就會完整的將錯誤信息展示出來了。  

  接著在鏈接地址后面加個“’”, 回車看看是否有錯誤提示?如果沒有, 加上“ and 1=1”呢?當然這只是兩個最基本的方法, 靈活也正是靈活在這里, 千奇百怪的參數(shù)和特殊字符讓數(shù)據(jù)庫和程序防不勝防, 直到檢驗出它的軟肋。  

  事實上, 配合篩選, 我們就可以猜出數(shù)據(jù)庫名稱。 而這一切已經(jīng)被專門的注入工具包含了。 只要把鏈接輸入, 它就會自動分析出網(wǎng)站的數(shù)據(jù)庫, 進而猜解里面的表。 猜解出管理員的名稱和密碼就好辦了(如果密碼被加密過, 用COOKIES偽裝吧)。 一般在整站的后臺中, 都會有上傳文件的選項, 如果能直接上傳ASP文件最好, 遺憾的是, 稍有安全防范意識的程序員都不允許這樣上傳, 畢竟還有FTP。 一般可能只允許JPG、GIF等圖片格式, 現(xiàn)在有很多CER的木馬, 可以輕松突破這里。  

  上傳了ASP木馬, 就等于控制了整個虛擬目錄, 如果服務(wù)器管理員粗心大意, 你甚至可以管理整個服務(wù)器, 這就是早期出現(xiàn)通過旁注方式來入侵的目的。 但不管怎樣, 至少你被上傳木馬的站點是掛了, 更改文件、下載數(shù)據(jù)庫……ASP木馬的功能比FTP甚至還強大。  

  三、防范策略 

  既然SQL攻擊方法靈活, 那防范起來自然有難度。 但還是有一些規(guī)律可循, 以不變應(yīng)萬變。 在設(shè)計或者維護 Web 網(wǎng)站時, 程序員應(yīng)該盡自己最大可能來過濾關(guān)鍵字符, 這是SQL入侵的首要步驟, 從這關(guān)把握住是相當必要的。 程序員可以設(shè)計兩個頁面:一個是HTML頁面, 另一個ASP動態(tài)頁面。 這也就是為什么在今天看到越來越多靜態(tài)頁面地址的網(wǎng)站, 其實在背后, 仍然是通過ASP或者其它動態(tài)方式進行數(shù)據(jù)庫操作的。  

  為了減輕危害, 還可以限制用程序所用的數(shù)據(jù)庫訪問帳號權(quán)限。 一般來說, 應(yīng)用程序沒有必要以sa的身份訪問數(shù)據(jù)庫。 給它的權(quán)限越少, 你的網(wǎng)站越安全!你還可以考慮分別給每個需要訪問數(shù)據(jù)庫的對象分配只擁有必需權(quán)限的帳號, 以分散安全漏洞。 當然, 這對于絕大多數(shù)的“黑客”來說意義不大, 因為整個注入過程全由軟件代勞了。 他們就等著上傳木馬了。  

  所以, 控制文件上傳是非常必要的。 你應(yīng)該想盡一切辦法讓用戶少上傳文件, 嚴格控制文件類型, 并且做到后臺也如此。 ASP木馬并不僅僅是ASP后綴的文件, 越來越高級的技術(shù)會慢慢讓其更加難以防范, 長期上講, 拒絕上傳文件還是很有必要的。 比如, 有些程序員喜歡用排除法來防止木馬, 它讓程序遇到ASP、EXE等程序是就隔離并阻止上傳, 與其這樣, 不如用反向過濾方法。 如只允許JPG圖像上傳, 這樣不管有什么新格式的木馬出現(xiàn), 只要不是JPG格式的, 就都會被禁止上傳。  

  還有就是需要提醒你的服務(wù)商, 讓他做好安全工作, 至少虛擬目錄間不要隨意跨越, 權(quán)限設(shè)置很關(guān)鍵。 當然你也要經(jīng)常查看FTP目錄, 看看是否有可疑的文件。 網(wǎng)上有一種ASP文件, 上傳以后訪問可以自動檢測虛擬目錄中是否包含ASP木馬, 感興趣的朋友可以試試看, 但這種方法并不是包治百病。  

  總體來說, SQL注入攻擊可謂易攻難防。 這也是為什么它經(jīng)久不衰的原因, 雖然目前SQL注入漏洞越來越少, 程序員編寫的程序也越來越完善, 但安全無止境, 還是會出現(xiàn)很多網(wǎng)站遭遇SQL注入攻擊的問題, 打個比方, SQL攻擊就像DOS攻擊一樣, 慢慢地在平民級普及開來, 這種力量不容小覷。


上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學(xué)習(xí)了安全知識,幾乎可以讓你免費電腦中毒的煩擾。