【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!!}
以上となります!