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, (^^ゞ