【Writeup】BeginnersCTF Web "Greeting"

はじめに

BeginnersCTF 2018のWeb問題の(恐らく)一番簡単な"Greeting"のWriteupです。

Writeup動画を以下に上げていますので、分かりづらければそちらも参考にしてみて下さい。
今後もちょくちょくWriteup動画とかを上げていくので、よければチャンネル登録お願いします。

【Writeup動画】#2 Beginners CTF Web問題 "Greeting"をやってみた。

問題

[Warmup] Greeting
ようこそ!
http://greeting.chall.beginners.seccon.jp

解答

Web周りはちゃんと学んだことがないのですが、すごく、簡単です。たぶん。

入力欄の下に、怪しげなPHPが記載されています。
恐らく、入力した後に実行されるのでしょう。

PHPのコードを読んでみると、以下のように条件分岐が分かります。

  • "$username""admin"だった場合は、"$username""偽管理者"を代入します。
  • 上記の条件に当てはまらなかった場合でかつ、cookie"name"に値が入っているときは、"$username"cookie"name"を代入します。
  • どれにも当てはまらなかった場合は、"$username""ゲスト"を代入します。

一旦、"admin"と入力して「名前を変更する」をクリックします。
すると、「偽管理者」としてログインされます。

この段階では、

$username = "偽管理者"

となり、cookieには、

name = "admin"

と、なっているはずです。いや、なっています。


ですので、この状態のままブラウザの戻るボタンを押すと、

$username = ""

の状態のまま、cookie

name = "admin"

の状態で読み込まれます。恐らく。


よって、条件分岐の真ん中が実行され、$username = "admin"となり、画面上部に
以下のフラグが表示されます。きっと。

ctf4b{w3lc0m3_TO_ctf4b_w3b_w0rd!!}


以上となります!