Apache-2.2

如何檢查 Web 伺服器日誌以進行 SQL 注入?

  • April 24, 2019

如果我有一個託管在 Apache 上的 PHP 站點並且有人使用 SQL 注入攻擊它,有沒有辦法通過查看我的 Web 伺服器日誌來準確找出是哪個腳本導致了這種情況?

還是使用其他方式?

如果您的 Web 伺服器日誌正在記錄查詢參數,則通過日誌搜尋已知 SQL(例如SELECT)。

如果他們沒有記錄查詢參數,那麼您不太可能通過搜尋日誌找到任何內容,而是您必須尋找模式 - 例如通常不會重複的重複 URL。

我一直在使用這個 Linux 命令字元串來辨識可能的 SQL 注入:

egrep -i '\bUNION\b|\bSELECT\b|\bCHAR\b' $access_log

您也可以添加其他關鍵術語,但這些是我在日誌中找到的。

要生成有問題的 IP 地址列表,請花點心思:

egrep -i '\bUNION\b|\bSELECT\b|\bCHAR\b' $access_log | sed -n 's/\([0-9\.]\+\).*/\1/p' | sort | uniq -c

其中按實例數量統計了違規 IP:

   335 160.153.153.31
  1197 175.138.67.67
   508 76.72.165.79
   208 92.60.66.184
   111 95.143.64.185

引用自:https://serverfault.com/questions/498246