今回は人数制限の都合上、チームではなく、個人参加していました。コンテスト終了後は問題文もランキングも自分の順位も見ることができませんが、1396点でした。問題数が多く、内容としても比較的主な要素を問題を通して学ぶことを教育的な問題が多めだと感じました。比較的初心者に優しくてありがたかったです。以下、提出順に書いていきます。World!サンプル問題。フラグが問題文に書いてあるので提出。Spotlight開くと、マウスがある領域の周辺だけ見ることができるウェブ画面が表示された。ソースを見るとフラグが埋め込まれていたので提出。Consoleにwriteしていたのでデバッグコンソールを開くなどが想定解法だったのかもしれない。us二進数みたいな形式で何かが与えられているのでパースするとフラグがでてきた。t=='1'){count++;tmp=(tmp<<1)+(t-'0');if(count%8==0){cout<<tmp;tmp=0;}}}}Rotated!5文字ずらして、そのあと8文字ずらしたみたいなことが書いてあって、要するにROT13なのでウェブでワンライナーを見つけて処理して提出。事後に問題文すら見られないのはつらいですSubstituted換字暗号っぽいものが渡されて、とりあえず「IceCTF{」の部分が確定できるのであとは元の単語が推測できる部分から確定していった。Archiveで当該URLを検索してフラグを発見。ログインしたらフラグが見えた問題だった気がする。フラグファイルそのものへのアクセスを与えず実行だけできるように工夫してある)。この問題ではそのバイナリのソースもおいてある。特定の要件をみたさないといけないので、ホームディレクトリに要件を満たすようにシンボリックリンクを張って実行するとフラグが出た。Complacent忘れたSearchドメインだけ渡されるが、ウェブサーバに繋がらないと書いてある。レコードを調べるとフラグが書いてあった。使ったが、何か間違っている。暗号化がされず平文のままになる。暗号文をそのまま8ビットずつ区切って文字として出力すればフラグ。パスワードのハッシュだけが渡された。パスワード入力フォームを見るとパスワードの形式がとても厳しく普通に入力すると通らない。アルファベット、数字、記号の順で5文字で、全探索可能だったので全探索した。「日記を保存する機能」「最後に保存した日記を表示する機能」がついたバイナリが渡される。見る限りハードコード)に書き込んでいた。含まれているとなぜか「rude!」と表示されて終了する仕様だった。するとその時のスタックの一部のデータが出力された。使えず、メモリに書き込むことはできない。置くとフラグが表示された。Toke現代的なマリファナ工場なるサイトが渡され、ログインすると「FBIによって止められた」とだけ書いてある。いうことで見つけたオンラインのデバッガに中身を入れると、フラグが出てきた。サーバ上でフラグを共有している人がいる、と問題文に書かれていた。主催者らしき人のプロファイルを表示すると「flag_share_(ランダムな英数)」という部屋が案内されていたので、その部屋に行くと部屋の説明にフラグがあった。再挑戦したが、まだ何かおかしいようだ、と書いてある。見るとなんだかプロファイルが多い、というか秘密鍵が書いてある。複合化手順を調べて、その通りに普通に秘密鍵を使ってエンコードするとフラグ。Messageエイリアンが書いたようだ、という次の画像が渡された。画像検索するとそれらしき画像があった。いうフォントのようなので、見ながら複合化。l33tcryptデータを暗号化してくれるサーバが動いており、鍵とフラグは外部から読み込んでいる。コードが公開されている。使っていないようで、同じ文字列は毎回同じように返ってきた。ビットなので、16文字ごとに、望むものと一致すればその部分の暗号は同じになる。文字目までを埋めて最後のブロックが一文字だけ余る状態にし、残りの1文字を一通り試すことができる。please”とパディングのみを渡した結果(この場合はパディングの直後に正しいフラグを入れて暗号化してくれる)と比較すれば、正解の時だけ合致するブロックが多くなる。これを順に試せば、フラグが出てくる。hill謎の行列みたいなのがおいてある。出てきて問題名とも合致。Nでの逆行列の計算に戸惑うが、ウェブ検索した結果見つけた動画(https://www.youtube.com/watch?v=LhBovzm4Ajs)では、普通の逆行列に近い処理をしていた。なるツールで計算できそうなので、確認しながら最終的には以下のようなコードに。コードがおかれている。暗号化の際は初期ベクタを毎回ランダムに生成している。暗号化データの解除はしてもらえるので、「”flag”を暗号化したもの」が手に入ればよいことになる。暗号化機能を呼び出すにも「”encrypt”を暗号化したもの」が必要。あるデータを暗号化した結果が分かった時、それを見て初期ベクタをいじることで、先頭のブロックの結果を好きなようにいじることができる。望む状態先頭ブロック」に書き換えると、先頭16バイトは好きなようになる。今回は先頭4バイトが「flag」になればよいので、初期ベクタの4バイトを修正した。送ると無事暗号化されたフラグが手に入った。これを復号化してもらって提出。用に保存しておいたログから必要な部分を抜き出したものが以下。これまでと違ってとりあえず形式的には正しそうなパラメータが付与された。鍵も2048ビットあった。実は素数のどちらかが小さくて素因数分解できるのでは、と思って奇数で割り続けるプログラムを走らせたところ、予想通りすぐに素因数分解が完了した。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。miniOrange。