Injection 大爆発

連休前だからかしらないが、中国から大量の SQL Injection を検知した。その際に IntruShield で検知した URL 要求や応答をお客様から一覧で見せて欲しいといわれたとき、簡単に出力するにはどうしたらいいのか。。。いろいろ考えてやったみた。その際にやったことをメモしておく。

ちなみに IntruShield のダンプデータ(セッションデータ) は Ethereal にて確認する。


まずは要求から

  1. イベントを開き、フィルタをかけないで(全データ)を表示する
  2. フィルタをかける ->ip.dst == "送信先IP" and http
  3. 「File」→「Save As」→「Nameは適当に」→「Displayed」を選択→libpcap形式で保存
  4. 保存したファイルをテキストエディタで開く。テキストエディタは "置換" に正規表現が使え、grep ができるもの(秀丸推奨)
  5. 次の指定で"置換"
    • 検索文字列:^.*GET
    • 置換   :GET
  6. 次の指定で grep
    • 検索文字列:GET.*HTTP/1.1
  7. (秀丸限定?)次の指定で"置換"
    • 検索文字列:^.*GET
    • 置換   :GET
  8. 結果を保存する。


以上で要求は完了。次は応答を抜き出す。

  1. イベントを開き、フィルタをかけないで(全データ)を表示する
  2. フィルタをかける ->ip.dst == "送信元IP" and http
  3. 「File」→「Save As」→「Nameは適当に」→「Displayed」を選択→libpcap形式で保存
  4. 保存したファイルをテキストエディタで開く。テキストエディタは "置換" に正規表現が使え、grep ができるもの(秀丸推奨)
  5. 次の指定で"置換"
    • 検索文字列:^.*HTTP
    • 置換   :HTTP
  6. 500 Internal Server エラーの中に成功データがあり、かつMSSQLサーバのエラーだった、かつ日本語のエラーだった場合、次の指定で grep
    • 検索文字列:構文エラー.*
  7. 次の指定で"置換"
    • 検索文字列:^.*値
    • 置換   : (空白)
  8. 次の指定で"置換"
    • 検索文字列:から int データ型に変換できませんでした。</font>
    • 置換   : (空白)
  9. 結果を保存する。


以上で応答も完了。

正規表現など使ったことがないので、先輩に聞いたり、調べながらやったりしたら思いのほか時間がかかった。しかし今回こうしてまとめられたので、実際にやるときはかなり早くまとめることが出来ると思う。また、検索文字列を変えれば別のことにも使えそうなので、時間かけたかいがあった、、、かな