RPO の実験

1. このページの目的

Relative Path Overwrite (RPO) を意図的に発生させる。

2. このページの構成

3. 試し方

(1) ここをクリックする --> /sec/3/index.php/(末尾にスラッシュがついています)

(2) クリックしたら、開発者ツールで「CSSファイルをリクエストしたURL」と「そのレスポンスの中身」を観察するとよい。

4. ペイロードの出力

以下で CSS を出力している。このページがCSSとして読み込まれる場合は、ここがCSSとして解釈される。

{}*{background-color:#777;}

CSSであるとブラウザに認識させるために、先頭に「{}」と書いてあるのがポイント(だが、他にも書き方はある)。

5. ポイント

  1. CSSファイルを相対パスで読み込んでいる。
  2. ユーザー由来の値を画面に出力している。(CSSの記述はHTMLエスケープしてもエスケープできない)

6. 参考