3:00(JST)に開催されました。結果は2644点で412チーム中75位でした。自分で解けた問題をWriteupとして書いておきます。(misc)Discordに入り、#announcementsチャネルのメッセージを見ると、フラグが書いてあった。(web)クッキーのadminの値をfalseからtrueに設定し、リロードすると、フラグが表示された。(web)SSTIの問題。入力は逆順で行う必要がある。(web)/flagにuser=adminでpostすれば、フラグが表示される。(crypto)1バイトのXOR鍵のXOR暗号なので、フラグが"h"から始まることを前提に復号する。(rev)flagのスライス文字列の条件がわかるので、結合していく。.Wm*...$+.D.ここまでフラグは見つからない。他のオブジェクトも見てみる。(crypto)秘密鍵がわかっているので、そのまま復号する。(rev)Ghidraでデコンパイルする。6;}このコードから以下の入力が必要なことがわかる。uVar2この条件を満たす値を入力すると、フラグが表示される。b'\n').rstrip()print(data)実行結果は以下の通り。(rev)Ghidraでデコンパイルする。0;}local_84とbVar1で既定の算出方法で鍵を生成しながら、XORを取り、入力文字列と比較している。このことからフラグを割り出す。(crypto)サーバの処理概要は以下の通り。平文のパディングと暗号とのXORが同じになることから、フラグを復号する。BLOCK).decode()print(flag)実行結果は以下の通り。(crypto)暗号化処理の概要は以下の通り。←このままではkeyは変更できない。試したところ末尾の文字は改行文字。56バイト目が"}"となると推測できる。フラグは"hope{"で始まり"}"で終わることを前提にブルートフォースで復号する。print(flag.decode())実行結果は以下の通り。(crypto)暗号処理の概要は以下の通り。"hope{"から始まり、"}"で終わることを使って、推測しながら少しずつ復号する。ciphertext)print(plaintext)最終的な実行結果は以下の通り。(misc)各ピクセルで、RGBのLSBのXORが0の場合に黒にしていく。255))output_img.save('flag.png')生成した画像にフラグが書いてあった。Writeup月別アーカイブはてなブログをはじめよう!satou-yさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。