kaage精進録

雑な解説とかライブラリとかおきもちの垂れ流しです。

nullcon Goa HackIM CTF 2022 参加記

nullcon HackIM CTF 2022 に参加しました。

ctftime に載ってて Weight も 0 だったのでとりあえず出てみようということで。 1 完ですが、半分くらい解けたやつもあるので writeup っぽいものを書きます。

Web Jsonify

置いてある URL にアクセスすると PHP が見られるので、コピペして動くようにします。空白が抜けてるので formatter とかは使えず、手作業で戻しました。 読むと、どうやら flag.php に flag が置いてありそうで、それを読み出せれば OK です。クエリパラメータをいろいろ処理しているので、flag を読み出してくれるように丁寧にパラメータを設定して、 http://52.59.124.14:10002/?show=something&obj={%22class%22:%22Flag%22,%22properties%22:{%22isAllowedToSeeFlag%22:%22b:1;%22,%22flagfile%22:%22s:8:\%22flag.php\%22;%22}}&flagfile=some にアクセスすると HTML のコメントに flag が書いてあります。

Cloud Cloud 9*9

置いてある URL にアクセスして、入力フォームに式を入れると計算結果が json に格納されて下に出てきます。 とりあえず成立しなそうな式を入れてやるとエラーが出てきて、裏では Python が動いていて、eval で式評価しているのが分かります。eval にユーザー入力を突っ込むのは極めて危なくて、str(__import__('subprocess').run(['ls'], capture_output=True, shell=True)) みたいなのを入れると任意コード実行ができます。これで Python のソースを表示すると、フラグは nullcon-s3bucket-flag4 の中にあるといったことが書いてあります。AWS の URL にアクセスしてみますが、中は見られないので、どうやら credentials が必要そうです。echo $AWS_SECRET_ACCESS KEY とかを使って credentials を吐かせて、aws-cli で S3 にアクセスしようとしますが、蹴られてうまくいきませんでした。

終了後 writeup を見ると、どうやら AWS_SESSION_TOKEN も必要だったようで、それも含めてアクセスしたら flag が出てきました。 AWS に弱すぎた…