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. ポイント
- CSSファイルを相対パスで読み込んでいる。
- ユーザー由来の値を画面に出力している。(CSSの記述はHTMLエスケープしてもエスケープできない)