PHPサイトがApacheでホストされていて、誰かが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