我最近發現我的網站有一個SQL注入漏洞的頁面。經過測試,使用像sqlmap
這樣的測試工具很容易被利用。如何判斷站點數據庫是否被SQL注入攻擊訪問,可能利用這個漏洞?服務器正在運行Apache/2.4.18
和MySQL Ver 14.14 Distrib 5.7.16
。有沒有辦法查看是否通過SQL注入攻擊訪問了MySQL數據庫?
回答
不,沒有確實的方法來檢測SQL注入攻擊。
一些方法近似檢測依賴於保持你的應用程序運行稱爲合法的SQL查詢的「白名單」。然後,如果查詢日誌包含任何未知的查詢日誌,這可能是他們來自非法來源的線索。否則,它們可能已經由查詢工具中的DBA運行。
它還要求你記錄每一個SQL查詢,並且您已經準備好知道查詢的白名單。
正如上面@alexn評論,你可以查看你的Apache日誌(如果您想直接從http請求中,不是所有的SQL注入漏洞做SQL注入來了)。爲此,您需要搜索可能利用您在代碼中發現的漏洞的日誌中的所有http請求,然後使用該搜索結果篩選出所有看起來像是有合法請求的請求(例如?id=123
是好的,但?id=123 OR 1=1
是可疑的)。
還有其他產品監控查詢流量,並試着猜測SQL查詢是否合法,當他們發生可疑的查詢,但這些都是容易出現假陽性和假陰性。
感謝您的描述性答案!我已經啓用了所有查詢的記錄,所以我可以(希望)通過它。無論如何要將這些查詢映射到它們來自的IP地址,以便我可以將這些IP列入黑名單? – delphinlabs
查詢日誌具有提交查詢的客戶端的IP,但MySQL的「客戶端」是運行應用程序的主機,而不是用戶的主機。用戶的IP位於Apache日誌中。通常很難將MySQL日誌與Apache日誌關聯起來,除非您的請求流量很少,以至於您每秒只有一個或更少的請求。 –
- 1. Sql注入 - 下面是否有攻擊?
- 2. Mysql數據庫攻擊除了Sql注入
- 3. 有沒有辦法通過外部數據庫連接訪問wordpress函數?
- 4. 有沒有辦法在linux中查看誰查看/訪問過一個文件?
- 5. 有沒有辦法通過android訪問Web服務器數據庫?
- 6. 有沒有辦法查看誰修改了註冊表?
- 7. 有沒有辦法查看某個頁面是否使用$ _SERVER訪問?
- 8. 有沒有辦法從sql數據庫中註銷?
- 9. 這些SQL查詢中是否存在SQL注入攻擊?
- 10. SQL注入攻擊
- 11. SQL注入攻擊
- 12. 有沒有辦法查看Excel中是否使用了VBA函數?
- 13. 有沒有辦法提取網站數據庫只是爲了看到結構
- 14. 本機SQL查詢 - SQL注入攻擊
- 15. 有沒有辦法看到元素是否可見,可點擊?
- 16. 有沒有辦法將MySQL數據庫從Windows導入到Linux?
- 17. 使用存儲過程是否防止SQL注入/ XSXX攻擊?
- 18. hibernate命名查詢是否可以防止SQL注入攻擊?
- 19. Hibernate查詢是否容易受到SQL注入攻擊
- 20. 是否有可能執行SQL注入攻擊,其中惡意SQL存儲在數據庫表中?
- 21. 有沒有辦法通過編寫PHP來生成數據庫?
- 22. 有沒有辦法讓網站上的代碼檢測是否有人通過QR碼訪問了它?
- 23. 有沒有辦法通過Selenium/GhostDriver查看PhantomJS console.log消息?
- 24. 我可以通過使用參數避免所有SQL注入攻擊嗎?
- 25. 有沒有辦法確定neo4j數據庫是否已關閉?
- 26. 有沒有辦法通過Doctrine遷移來更改MySQL數據庫引擎
- 27. 有沒有辦法檢查一個文件是否是SQLite3數據庫?
- 28. 有沒有辦法訪問Google地圖的公共交通數據庫?
- 29. 有沒有辦法檢查performSelector:withObject:afterDelay:是否已被註冊?
- 30. 在訪問數據庫中查看SQL?
最明顯的方法是檢查Apache的訪問日誌。這些通常在'/ var/log/apache2'下找到。 – alexn