2017-06-04 26 views
0

我最近發現我的網站有一個SQL注入漏洞的頁面。經過測試,使用像sqlmap這樣的測試工具很容易被利用。如何判斷站點數據庫是否被SQL注入攻擊訪問,可能利用這個漏洞?服務器正在運行Apache/2.4.18MySQL Ver 14.14 Distrib 5.7.16有沒有辦法查看是否通過SQL注入攻擊訪問了MySQL數據庫?

+0

最明顯的方法是檢查Apache的訪問日誌。這些通常在'/ var/log/apache2'下找到。 – alexn

回答

0

如果沒有正確的日誌記錄,則無法檢查該日誌。 爲了降低風險,我建議更改密碼並告訴用戶更改密碼。

+0

我已經這樣做了。感謝提及。 – delphinlabs

1

不,沒有確實的方法來檢測SQL注入攻擊。

一些方法近似檢測依賴於保持你的應用程序運行稱爲合法的SQL查詢的「白名單」。然後,如果查詢日誌包含任何未知的查詢日誌,這可能是他們來自非法來源的線索。否則,它們可能已經由查詢工具中的DBA運行。

它還要求你記錄每一個SQL查詢,並且您已經準備好知道查詢的白名單。

正如上面@alexn評論,你可以查看你的Apache日誌(如果您想直接從http請求中,不是所有的SQL注入漏洞做SQL注入來了)。爲此,您需要搜索可能利用您在代碼中發現的漏洞的日誌中的所有http請求,然後使用該搜索結果篩選出所有看起來像是有合法請求的請求(例如?id=123是好的,但?id=123 OR 1=1是可疑的)。

還有其他產品監控查詢流量,並試着猜測SQL查詢是否合法,當他們發生可疑的查詢,但這些都是容易出現假陽性和假陰性。

+0

感謝您的描述性答案!我已經啓用了所有查詢的記錄,所以我可以(希望)通過它。無論如何要將這些查詢映射到它們來自的IP地址,以便我可以將這些IP列入黑名單? – delphinlabs

+0

查詢日誌具有提交查詢的客戶端的IP,但MySQL的「客戶端」是運行應用程序的主機,而不是用戶的主機。用戶的IP位於Apache日誌中。通常很難將MySQL日誌與Apache日誌關聯起來,除非您的請求流量很少,以至於您每秒只有一個或更少的請求。 –

相關問題