檢測在線數據庫SQL注入漏洞的利器:HP Scrawlr
原創【51CTO.com獨家翻譯】您需要是不是正要檢測在線數據庫的漏洞呢?正好,HP為我們提供了一個免費工具來檢測網站是否存在SQL注入漏洞。HP Scrawlr能夠爬行您的站點,以查找代碼中的安全漏洞。這款軟件是免費的,并且很容易上手。
引言
SQL數據庫是目前世界上最快的一種數據庫,每秒鐘可以完成數百萬次的事務處理。使用PHP和ASP代碼處理SQL連接的時候,如果代碼寫的不好的話,就會為網站的安全留下隱患:黑客可以通過插入代碼來獲得您的服務器上數據庫的控制權。所以,一定要保護好您的SQL數據庫。測試軟件和網絡的安全性應該成為安全審計的一部分。HP為我們提供了掃描網站的SQL漏洞的免費軟件。Scrawlr只可用于合法地掃描您自己的站點,而不得用于您的組織之外的站點。安全分析人員進行滲透測試時,應當將這款軟件也納入到他們的安全工具庫中。
HP Scrawlr
Hewlett Packard公司提供了一款免費的工具,供人們用來爬行他們的站點,并從中查找安全漏洞。Scrawlr是由HP的web安全研究團隊開發的,可用于對單獨的網頁進行SQL注入漏洞的檢測和利用。這個程序運行速度非常快;在運行期間,它可以利用HP的智能引擎技術來創建和動態執行SQL注入。最后,它還能提高一份簡單的報告來供管理員分析有關結果。如果該程序成功的話,您就會看到數據庫和各種表。
Scrawlr
下面是Scrawlr的兩個截圖:
SQL注入
黑客可以使用簡單的SQL命令來進行插入、刪除操作,甚至能控制整個數據庫。黑客可以先在web中查找數據庫,然后通過簡單的注入命令來返回機密數據,并將其復制粘貼到自己的機器中。下面是一個簡單的SQL注入范例:
下面我們來繞過登錄表單。這里是來自實際應用代碼片段:
SQLQuery = "SELECT Username FROM Users WHERE
Username = ‘" &
strUsername & "‘ AND Password = ‘" & strPassword & "‘"
strAuthCheck = GetQueryResult(SQLQuery)
If strAuthCheck = "" Then
boolAuthenticated = False
Else
boolAuthenticated = True
End If
這是一個典型的登錄處理,終端用戶來到站點,然后提交他們的用戶名和口令。隨后,這個查詢從“Users”表中尋找是否有與提供的用戶名和口令匹配的記錄。對于糟糕的ASP代碼或者PHP代碼,黑客將能使用下列類型的代碼來發動進攻。
注入代碼:
用戶名:‘ OR ‘‘=‘
口令:‘ OR ‘‘=‘
這個會使SQLQuery變成下面的樣子:
SELECT Username FROM Users WHERE Username = ‘‘
OR ‘‘=‘‘ AND
Password = ‘‘ OR ‘‘=‘‘
這樣,黑客只是在應該輸入有效用戶名的地方鍵入了一個字符串:‘ OR ‘‘=‘,就輕而易舉地繞過了登錄屏。
結束語
執行SQL注入的方法數以千計,這里介紹的并不是理想的“黑客”代碼。本文不是關于黑客技術的,而是關于如何保護您的網站的。 HP只是眾多能夠保護您的網站中的工具之一。對于保護您的信息資產來說,滲透測試是一種重要的手段。它不僅有助于測試代碼,而且還能幫您測試防火墻。不過Scrawlr軟件也有其不足之處,例如:
•最多只能爬行1500個URL地址
•在爬行期間無法進行腳本解析
•在爬行期間無法解析Flash
•在爬行期間無法提交表單
•僅有簡單的代理支持
•沒有身份驗證或者登錄功能
•不能檢測SQL盲注
任何軟件都不是十全十美的,但是它們對于安全漏洞和漏洞利用測試來說確實是非常有幫助的。如果站點僅通過了一種安全軟件的測試,就以為高枕無憂那就太盲目了。感謝HP有為我們帶來了一個軟件“幫手”!
【51CTO.com獨家翻譯,轉載請注明作者及出處】