チームBiPhoneから出ました(一人だけど)。2056ptsで89位でした。ハリネズミ本に載っているようなpwnがあったので同級生に投げていこうかな。以下write-up。問題数多いので10ptsや30ptsの問題は大体略していますごめんなさい。LETTERS.をまるごと投げたら通った。}としていたが['68657869745f6d6174655f6331376335633135396531663063623835376632'].pack("H*")でよかった。160ptsx64でのFSB。espが指す場所にそのまま積まれている。80ptsナップザックDP。70ptsデバッグ情報がついているバイナリとそのソースが渡されるが、それらはダミー。逆アセンブルすると全く異なる処理が行われていることがわかる。読んでRubyに書き換えると以下のようになる。0x61になればよい。XORをとるとnumberは5827374とわかるので入力に与えるとFLAGが出る。80ptsradare2で見るとC++っぽいメソッド名がたくさん。1337になればFLAGを表示する。100pts案外苦戦した。大量の単語が改行区切りで入ったwords.txtから2単語選び連結した文字列と暗号文keyed_xor.txtのXORを取るとFLAGが出るらしい。20537通りなので終わらない。悩んだ末、復号した平文がeasyctf{で始まっていると仮定して暗号文とXORをとり、鍵を逆算してみた。すると鍵がaggravatで始まっていることがわかる。20537通りとなり全探索できるようになる。150pts2つあったDNSの問題の一つ。キャッシュサーバが権威サーバからゾーン情報を取得するのに使われるゾーン転送要求・AXFRというものを使う。寮内のLANからはdigができないのでhttp://digwebinterface.com/を使った。140pts実行すると自身を削除してしまうので、逆アセンブルして読む。これぐらいの小さなアセンブリでも普通に1時間弱溶けてしまうので早く慣れたいなあ。コマンドライン引数の文字をABCDEとして表すと、以下のような式が成り立つときにFLAGを表示する。Eあてはまる文字列はg3zkmになる。120ptsバッファオーバフローでget_flag()にリターンさせる。これぐらいはラクラク解けるようになってきた。0;}get_flag()は0x400646にある。250pts何故解けたかさっぱりわからない。自分がこれを解いたのは全チームのなかで5,6番目だったのだが、Discordで「解法を交換しないか」とb0bb3rという参加者からメッセージが送られてきた。どのチームかはわからないが酷い。次のような数式っぽい画像encryptedと、BNFのようなテキストが添付される。この2つをもとパスワードをゲットしてログインする。}REDACTEDとして除去されていた画像中のpasswordはl7&4C&Cgなようだ。l7&4C&Cg与えられたアドレスとポートに接続すると、対話型の画面が出る。Errorおそらくここからログインするのだろうが、さっぱりわからないので添付されたテキストファイルを見てみる。式のことで、GlobalVarSはグローバル変数ではないかと思った。$2は左側のvarの位置に入力された文字列が入り、$4には左側にあるE(式)の評価結果が入ると推測して入力してみる。usernamerootどうやら推測が当たったようだ。最後のログインもいろいろエスパーしたらなんか出てきた。semantics」といって、計算機科学の分野では一般的なものらしい。ここに説明が書いてあるので後で読んでみたい。閉寮なので家に帰った。明石高専で開かれたminiCTFに参加しました。Console」を解いたソースが渡される。#seccampセキュリティ・キャンプ全国大会2019の選考に通った筑波GLP(香港)に参加した一人部屋に移った月別アーカイブはてなブログをはじめよう!sei0okunさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。