web-dev-qa-db-ja.com

SQLインジェクションのWebサーバーログを確認する方法は?

PHPサイトがApacheでホストされていて、誰かがSQLインジェクションを使用してそれをハッキングした場合、Webサーバーログを調べて、これを引き起こしたスクリプトを正確に見つける方法はありますか?
または他の方法を使用していますか?

1
Frank Martin

Webサーバーのログがクエリパラメータをログに記録している場合は、ログから既知のSQL(SELECTなど)を検索します。

クエリパラメータをログに記録していない場合は、ログを検索しても何も見つからない可能性があります。パターンを探す必要があります。たとえば、通常は繰り返されない繰り返しURLなどです。

1
Mark Henderson

私はこの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
1
Ken Irwin