Hello there, ('ω')ノ
🔬 脆弱性の概要
このラボでは、検索機能の中でDOMベースのクロスサイトスクリプティング(XSS)脆弱性があります。具体的には、次のような流れです:
- ブラウザのURLクエリパラメータ(
location.search
)から値を取得 - それをそのまま
div.innerHTML
に代入 - 結果として、HTMLが直接ブラウザに挿入され、悪意あるコードが実行される可能性
🧪 攻撃手順(PoC)
検索ボックスに以下のペイロードを入力して送信します:
<img src=1 onerror=alert(1)>
✅ 解説:
src=1
→ 存在しない画像URLのため、読み込み失敗onerror=alert(1)
→ エラー発生時にアラート実行innerHTML
による代入のため、イベントハンドラが有効になり、スクリプトが実行されます
💡 補足:なぜこれが効くのか?
HTML要素の属性(ここではonerror
)にJavaScriptを埋め込むと、ブラウザはそれをイベントハンドラとして解釈し、条件に応じて実行します。innerHTML
はこれらの属性をそのまま反映させるため、XSSが成立します。
✅ ラボのゴール達成条件
alert()
が実行され、ダイアログが表示されれば成功です。
Best regards, (^^ゞ