Shikata Ga Nai

Private? There is no such things.

第13回 フォームや入力欄をチェック:攻撃入力を試す基本手順

Hello there, ('ω')ノ

なぜフォームや入力欄が狙われるのか?

  • ユーザーが自由にデータを入れられる=攻撃者も自由に入れられる
  • フィルターやチェック漏れがあると、そのまま悪さができてしまう

典型的な例:

  • XSS
  • SQLインジェクション
  • ロジックエラー

具体的なチェック手順① 入力欄をリストアップする

まずは社内システム内のすべての入力欄を洗い出します。

✅ よくある項目:

  • ログイン画面:ユーザーID・パスワード
  • お問い合わせフォーム
  • 経費精算や勤怠入力画面
  • ファイルアップロード欄

ブラウザで操作しながら一覧を作ると後のチェックがスムーズです。


具体的なチェック手順② 基本的な攻撃入力を試す

以下は実務でよく使われるテスト入力例です。

テスト目的 入力内容例
XSSチェック <script>alert(1)</script>
SQLインジェクション ' OR '1'='1
長すぎる入力 ああああああ(1,000文字以上)
特殊文字 <>;"'&%\$#@!
空欄・未入力 (何も入れない)

ポイント:

  • JavaScriptエラーやポップアップが出ないか
  • エラーメッセージにSQL文が出ないか
  • 画面が壊れたり止まったりしないか

具体的なチェック手順③ ブラウザ開発者ツールを併用

  • F12キーを押してNetworkタブを開く
  • 入力後に送信ボタンを押す
  • リクエスト内容を確認する

そこで:

  • 入力した内容がそのままリクエストに含まれているか?
  • エラーレスポンスの内容はどうか?

を確認します。


さらに踏み込むなら:プロキシツール併用

前回解説したBurp SuiteやOWASP ZAPを使えば:

  • 入力値を書き換えて再送信
  • 本来受け付けないはずのデータを試す

ことも可能です。


チェックリストまとめ

  • [ ] すべての入力欄をリストアップしたか?
  • [ ] XSS用のテスト入力を試したか?
  • [ ] SQLインジェクション用の入力を試したか?
  • [ ] 長文や特殊文字による動作確認を行ったか?
  • [ ] ブラウザ開発者ツールでリクエスト内容を確認したか?

注意事項

  • 本番環境で試す場合は必ず事前許可を取ること
  • 業務時間外や低負荷時に行うのが望ましい
  • テスト後は元に戻す・管理者へ報告する

Best regards, (^^ゞ