メインコンテンツまでスキップ
非公開のページ
このページは非公開です。 検索対象外となり、このページのリンクに直接アクセスできるユーザーのみに公開されます。

[SECCON Beginners CTF 2021] check_url

Nakanome

Have you ever used curl ? 想定難易度: Easy

問題

https://check-url.quals.beginners.seccon.jp/ URLとソースコードを与えられます。

check-url-source.png は移行元に含まれていないため、画像を掲載できていません。

解法

ソースコードから接続元がローカルであればフラグをもらえます。 それ以外の場合はcurlで取得したページをそのまま出力してきます。

問題の厄介な所はURLがlocalhostやapacheを含んでいるとスクリプトがdieします。 あとは /[^a-zA-Z0-9\/:]+/u以外の文字を含んでいると、スーパーサニタイジングの影響により該当部位が👻(文字)になります。

上記のことを踏まえるとこの問題は文字だけでローカルホストにアクセスしろということになります。 スーパーサニタイジングがそこまでスーパーだとは思ってなかったので普通にリダイレクトサーバーを建てて凸ったら乙りました。

ということでループバックアドレスをlocalhostやapache、またはドット等の記号も使用せずに記述しろということになっているので、 なんかIPって10進数とか以外の書き方で面白大会みたいなのやってたなという記憶がヒットしたため、以下のQiitaを参照しました

https://qiita.com/naka_kyon/items/88478be20b300e757fc0

16進数やら8進数やら、10進数区切り無し表記やら色々面白い書き方が紹介されています。 これの確か8進数をurlクエリに食わせてやるとループバックしてフラグをもらえます。

flag

ctf4b{5555rf_15_53rv3r_51d3_5up3r_54n171z3d_r3qu357_f0r63ry}