SECCON Beginners CTF 2021 writeup
参加してきました。
Welcome含めて7問解きました。もうちょっといけたなーと思います。もう少し頑張ろう。。。
目次
[Web] osoba

HTMLのソースを見ると、ページへのアクセスがクエリパラメータで指定している。

そんなわけで、https://osoba.quals.beginners.seccon.jp/?page=../flag
とアクセスしてみるとフラグゲット。
[Web] Werewolf
アクセスするとこんな感じ。

試しにやってみるとこんな感じ。

app.pyを見るとこんな感じ。player.__dict__[k] = v
に対してroleを書き換えるようなパラメータを入れればいいと思ったけど、roleや__roleを指定してもうまくいかない。

試しに player.__dict__
を表示してみるようなソースを書いて、実行してみる。

なるほど。 _Player__role
と入れればいいのか。

というわけで_Player__roleというパラメータ名でWEREWOLFを送ればOK。
[Web] check_url
サーバにURLを渡すと、そこに対してcurlでアクセスしてくれるらしい。

index.phpを見ると、自分自身からアクセスがくるとフラグを渡してくれるとのこと。

URLの表現の形式はいろいろあるので、以下のサイトを参考にしてみた。
http://www.rtpro.yamaha.co.jp/RT/docs/ip-address.php
10進数だとうまくいかない…

16進ならいけました。

[Web] cant_use_db

どうやらNoodles2つとSoup1つをBuyしたあと、Flagを押せばゲットできるらしい。

テキストを開いてそこに金額を書き込んでいるので、複数同時に実行すればよいらしい。
プログラムを書いてbuy_noodlesとbuy_soupに対して並行でアクセスし、フラグゲット!
(他の人のwriteup見てたら普通に素早くボタンを押せばフラグがゲットできるとのこと…なんと。)
[misc] git-leak

取得したリポジトリの .git/logs/HEAD
をみて、怪しそうなやつをgit diffしてみるとあった。

[reversing] only_read

ghidra動かそうとしたら環境が整っていなかったので、サクッとobjdumpしたらこんな感じ。比較している部分を読んでいくとctf4b{から始まっているので、これを頑張って読んだ。

さいごに
Web問のjsonも惜しいところまでいったり、magicもある程度方向性はあっていたので、Web問全部解きたかったなぁ…
他の人のwriteup読んで勉強することにします。
コメントを残す