RPO の実験

1. このページの目的

Relative Path Overwrite (RPO) を試す。

2. 試し方

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

(このページは /sec/3/ というURLで読み込むのが一般的だと思うが、RPOを試すには /sec/3/index.php/ というURLで読み込む。)

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

3. ペイロードの出力

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

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

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

4. ポイント

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

5. 参考