Hello there, ('ω')ノ
1. まずは“入力点”を洗い出す
入力面 | 例 | チェック方法 |
---|---|---|
URL パラメータ | ?q=検索ワード |
末尾に '">< など追加 |
POST フォーム | ログイン/問い合わせ | Burp で送信内容を編集 |
HTTP ヘッダー | User-Agent Referer |
Repeater で任意文字列を注入 |
JSON / API | {"name":"Alice"} |
Postman でペイロード差し替え |
ファイル名/メタデータ | 画像アップロード | ExifTool でタグ改ざん |
“ユーザーが何か送れる所” はすべて候補です。
2. XSS(クロスサイトスクリプティング)の探し方
2.1 反射型(Reflected)
- 検索フォームなどに
"><svg/onload=alert(1)>
を入力 - 画面上でアラートが出れば成功
- 出なくても URL に値がそのまま表示 → エンコード不足の可能性
2.2 保存型(Stored)
- コメント欄にペイロード投稿
- 別ユーザーでページを再読み込み
- 発火すれば Stored XSS
2.3 DOM-based
- JS で
location.hash
などをそのままinnerHTML
へ書くケースを探す - デベロッパーツール → Sources → 検索
innerHTML
- ヒット箇所で
#<img src=x onerror=alert(1)>
を試す
🔧 自動補助ツール
dalfox url "https://target.com/search?q=" -o xss.txt
--skip-bav
で WAF バイパス辞書を活用- 発見率↑ → 手動で検証、PoC 作成
3. コード/コマンドインジェクションの探し方
3.1 コマンドインジェクション(OS)
ペイロード | 効果 |
---|---|
test;id |
id コマンド実行 |
test && cat /etc/passwd |
パスワードファイル読取り |
手順
- 疑わしいパラメータ(
ping
,host
,image
など)を Burp Repeater で送信 - レスポンスに
uid=
や エラーが返る → サーバ側でコマンド解釈の可能性 - フル PoC:
sleep 5
で応答時間遅延を確認 = Blind でも検出可
3.2 SQL インジェクション(SQLi)
- クイックテスト:
' or '1'='1--
- エラー抑制型アプリには time-based (
'; WAITFOR DELAY '0:0:5'--
) や boolean-based (' AND 1=2 UNION SELECT 'a'--
) を利用 sqlmap -u "https://target.com/item?id=1" --batch
で自動検証
4. バリデーション抜けの“地味穴”も忘れずに
パラメータ型 | 狙い所 | 例 |
---|---|---|
数値 | マイナス値や極小数 | -1 , 0.0001 |
日付 | 将来/過去の極端値 | 1970-01-01 , 9999-12-31 |
列挙型 | 大文字小文字/NULL | NULL , True |
→ 想定外のレスポンスや例外表示は 内部スタックトレース の漏えいチャンス!
5. 報告用 PoC の“見せ方”テンプレ
① 手順 1. https://target.com/search?q=<svg/onload=alert(1)> 2. Enter → ブラウザでアラート ② 影響 - 任意 JavaScript 実行 → Cookie, CSRF トークン窃取 - アカウント乗っ取り可能 ③ 修正案 - サーバ側で HTML エンコード - CSP: script-src 'self'; object-src 'none';
3 枚スクショ(入力 → アラート → 専門解説)のシンプル構成が読みやすい。
6. 開発側:最小コストで塞ぐ鉄板対策
脆弱性 | 1st ステップ対策 |
---|---|
XSS | エンコード+CSP |
Command inj | exec 系 API 不使用 or 変数を完全エスケープ |
SQLi | プレースホルダ付き Prepared Statement |
例外漏えい | エラーハンドラで共通メッセージ (500 Internal Error ) |
まとめ:派手バグも地味チェックから
- “フォーム+ペイロード”を手元で回すだけで高 Severity が見つかる
- 自動ツールは 候補抽出、最後の PoC 作りは 必ず手動確認
- 修正提案まで添えると “一段上” のレポートに
「入力点を疑う」→「処理を観察」→「PoC を磨く」 この 3 ステップを習慣化すれば、インジェクション系は怖くなくなります!
Best regards, (^^ゞ