sql注入是一種安全漏洞。攻擊者可以利用這個安全漏洞向網絡表格輸入框中添加sql代碼以獲得訪問權。手工測試sql注入的方法過去一直是確定數據庫是否存在安全漏洞的惟一方法。挖掘返回的錯誤信息、增加省略符號并且設法猜測數據庫結構信息是一項長期的和艱苦的過程。而且,這并不能保證你發現所有的sql注入安全漏洞,很少能夠查看或者提取數據。
現在,有一些工具能夠實施aql注入攻擊。一些免費的和商業性的黑客工具都能夠實施這種攻擊。
如果你有一個連接到后端數據庫的web前端,允許asp、asp、.net、cgi和類似的腳本語言支持的動態用戶輸入,你就可能遭到sql注入攻擊。你能做的就是以道德黑客(ethical hacking)的方式對你自己的系統實施自動的sql注入攻擊,以便發現能夠在外部攻破什么東西。不要選擇這個或者省略那個,讓你的工具為你做工作。
這是以自動的方式測試你的系統的aql注入安全漏洞的兩個步驟。我在這里簡單介紹一下這個過程。
第一步:掃描安全漏洞
首先,你必須使用一個web應用程序安全漏洞掃描器掃描逆的網站,看看是否存在任何輸入過濾或者其它具體的sql注入安全漏洞。由于我的時間總是很緊張并且需要良好的報告功能,我喜歡使用商用工具,如n-stealth安全掃描器、acunetix公司的web安全漏洞掃描器和(我最喜歡的)spi dynamics webinspect。wikto等免費的工具通常也能發現這些安全漏洞。
圖1顯示的是webinspect發現的兩個不同的sql注入安全漏洞的例子。
第二步:開始sql注入
一旦你確定你的目標系統是否存在sql注入安全漏洞,你的下一個步驟就是實施sql注入過程并且確定能夠從數據庫中搜集到什么。請注意,我不建議注入實際的數據或者試圖投放數據庫表格,這兩種做法對于你的數據庫的安全是有害的。發現潛在的sql注入漏洞是一回事,以自動的方式實際實施攻擊是另一回事。
我喜歡的自動實施實際的sql注入攻擊的工具是spi dynamics公司的aql注入器(這個工具是webinspect軟件的一部分)。你還可以使用圖2顯示的absinthe。
實施自動的sql注入攻擊測試圖2:absinthe工具用于自動實施sql注入分析。
這兩種工具能夠讓你實施基本的和sql盲注攻擊。這兩種測試都應該實施,特別是如果基本的sql注入攻擊沒有返回任何結果的情況下。這些工具能夠以自動的方式非常快地查詢和提取數據,在幾分鐘之內就可以列印大量的表格。
其它選擇包括foundstone公司制作的一種免費的web服務測試框架。這個工具的名稱是“wsdigger”,能夠實施基本的sql注入攻擊。你還可以使用automagic sql注入器進行一些自動的sql注入查詢。你還可以使用配置了sql注入插件的“sleuth”工具軟件。但是,這個軟件需要sa訪問權限。這就消除了匿名外部測試的好處。
最后,如果你要在你現用的系統部外進行實際練習,并且學習更多的有關sql注入和其它能夠導致數據庫被攻破的前端web應用程序安全漏洞的知識,你可以查看foundstone公司的“hacme bank”,或者參考一下web安全演示工具“webgoat”。
你使用什么工具自動實施sql注入攻擊測試都沒有關系,只要你能夠了解它們是如何工作的并且得到預期的結果就行了。就做黑客要做的事情就行了。