1.通過互聯網直接連接
這些連接可以用來攻擊沒有防火墻保護、全世界都可以看到和訪問的SQL服務器。DShield公司的端口報告顯示了有多少系統在那里等待遭受攻 擊。我不理解允許從互聯網直接訪問這種重要的服務器的理由是什么。但是,我在我的評估中仍發現了這種安全漏洞。我們都記得SQL Slammer蠕蟲對那樣多的有漏洞的SQL服務器系統造成的影響。而且,這些直接的攻擊能夠導致拒絕服務攻擊、緩存溢出和其它攻擊。
2.安全漏洞掃描
安全漏洞掃描通常可以基本的操作系統、網絡應用程序或者數據庫系統本身的弱點。從沒有使用SQL安全補丁、互聯網信息服務(IIS)設置弱點到 SNMP(簡單網絡管理協議)漏洞等任何事情都能夠被攻擊者發現,并且導致數據庫被攻破。這些壞蛋也需使用開源軟件、自己制作的工具軟件或者商業性工具軟 件。有些技術高手甚至能夠在命令提示符下實施手工黑客攻擊。為了節省時間,我建議使用商業性的安全漏洞評估工具,如Qualys公司的 QualysGuard(用于普通掃描)、SPI Dynamics公司的WebInspect(用于網絡應用程序掃描)和下一代安全軟件公司的“NGSSquirrel for SQL Server”(用于數據庫掃描)。這些工具軟件很容易使用,提供了最廣泛的評估,并且可以提供最佳的結果。
3.列舉SQL服務器解析服務
在UDP端口1434上運行,這能讓你發現隱蔽的數據庫實例和更深入地探查這個系統。Chip Andrews的“SQLPing v 2.5”是一個極好的工具,可用來查看SQL服務器系統并且確定版本編號。你的數據庫實例即使不監聽這個默認的端口,這個工具軟件也能發揮作用。此外,當 過分長的SQL服務器請求發送到UDP端口1434的廣播地址的時候,會出現緩存溢出問題。
4.破解SA口令
攻擊者還可以通過破解SA口令的方法進入SQL服務器數據庫。遺憾的是,在許多情況下不需要破解口令,因為沒有分配口令。因此,可以使用上面提 到的一種小工具SQLPing。Application安全公司的AppDetective和NGS軟件公司的NGSSQLCrack等商業性工具軟件也 有這種功能。
5.直接利用安全漏洞攻擊
使用Metasploit等工具軟件可以直接實施攻擊。這種軟件的商業性軟件“CANVAS”和“CORE IMPACT”等能夠利用在正常的安全漏洞掃描過程中發現的安全漏洞實施攻擊。這是非常有效的攻擊手段,攻擊者可利用這種手段突破系統、從事代碼注入或者 取得非經授權的命令行訪問權限。
6.SQL注入
SQL注入攻擊可以通過沒有正確驗證用戶輸入的前端網絡應用程序實施。包括SQL指令在內的異常的SQL查詢可以直接注入到網絡URL(統一資 源定位符)中,并且返回一些錯誤通知,執行一些指令等等。如果你有時間的話,這些攻擊可以手工實施。我一旦發現一個服務器有一個潛在的SQL注入安全漏 洞,我喜歡使用一種自動的工具深入研究這個漏洞。這些工具包括SPI Dynamics公司的SQL注入器等。
7.SQL盲注攻擊
這些攻擊以標準的SQL注入攻擊相同的基本方式利用網絡應用程序和后端SQL服務器的安全漏洞。最大的區別是攻擊者收不到以錯誤通知形式從網絡服務器發回的信息。這種攻擊由于涉及到猜口令,速度要比標準的SQL注入攻擊慢一些。在這種情況下,你需要一種比較好的工具。
8.對系統實施逆向工程
逆向工程的方法可以查找軟件的安全漏洞和內存損壞弱點等漏洞。在利用軟件安全漏洞方面,可以參考Greg oglund和Gary McGraw合著的“如何破解代碼”一書,你可以發現有關逆向工程方法的一些討論。
9.Google hacks
Google hacks利用Google搜索引擎不同尋常的力量搜出可公開訪問的系統泄漏出來的SQL服務器的錯誤,如“Incorrect syntax near”(附近語法錯誤)。Johnny Long編寫的“Google Hacking Database”數據庫中一些Google的查詢項目。(查看錯誤信息和包含口令的文件部分)。黑客能夠使用Google找到口令、網絡服務器中的安全 漏洞、基本的操作系統、公開提供的程序以及其它能夠用來攻破SQL服務器系統的東西。通過Google網站的“site:”操作符把這些查詢結合在一起同 場可以發現你想不到能夠找到的東西。
10.熟讀網站源代碼
源代碼還能夠暴露可能導致SQL服務器被攻破的信息。特別是開發人員為了簡化身份識別過程把SQL服務器身份識別信息存儲在ASP腳本中的情況下更是如此。手工評估或者Google能夠在一瞬間就發現這個信息。