ASUSN2023

ツイッターを見ていたらこのようなCTFが開催されているということで、やってみた。 できないことが多いですが頑張ります。

welcom

ようこそ

言わずもがな。いわれたとおりにやればOK

Misc

CPU標準時

CPUのオールナイトニッポンの冒頭で時刻を言っているけれど、これは日本標準時でいつのことだろう?

形式: YYYYMMDDHHMMSS CPU標準時というものを初めて聞いた。調べてみる。そうするとUNIX時間というものがあるようだ。

UNIX時間 とはコンピューターシステム上での時刻表現の一種。
(UNIX時間) 時刻を表示する関数があるが、時刻を計算するのにもさまざまなことが行われているようだ。
UNIX時間を日本時間にするツールを提供するサイトがあったので、やってみた。できた。

asusn.online

https://asusn.online というドメインを取得したらしい

今はYouTubeにリダイレクトされるが、リダイレクトされる前のページにFlagが隠されているとかいないとか......?
リダイレクト前のwebページのソースコードにflagがあると思い、管理者ツールを見ることにした。 管理者ツールからリダイレクトに関することを収集できるようなので見てみるが、ソースコードを表示できない。 どうすれば表示できるのかな?
(Webページをリダイレクトさせている箇所を調べる方法) Edgeでは開発ツールからソースコードが表示できなかったので、上のサイトからfirefoxを用いてソースコードを見た。
フラグが記載されていた。ゲット

管理徹底

画像が与えられて、そこに書いてある文字を入力するだけ。
でも、ホモグラフ攻撃のようで、文字を解釈するのが難しかったができた。

Crypto

アイドル

セキュリティ芸人のネタに出てくるアイドルグループ「SHA256」

よく見るとアイドルの名前がSHA256でハッシュ化されているけれど 5557fd7681bbf5a88e840d75f7cd3a19613ff7241884ef579813d09f92421292

実はアスースンの好きなアイドルだった......! 一体誰だろう? という問題。
逆演算できるハッシュ値MD5は聞いたことあるけどSHA256は強固なイメージどうすればいいのだろうか? ヒントを見ると動画のコメント欄に書いたあったのでフラグゲット。

アイドル2

2番目に好きなアイドルは誰だったっけ...... そこそこ有名なアイドルグループのメンバーだった気がする

d05fc2cc24fd09d4544c0e4dfa7b72d2c5da3171b57232654810ee0d48bec2e6
ということらしい。これはヒントなし。 総当たりで入力していくのかと思ったけど、実家なので、アイドルを調べるのは恥ずかしいのでしたくない。
なんとなくハッシュ値をそのまま検索。
なんととあるアイドルが検索にひっかかかる。SHA256計算機に入力すると一致。 フラグゲット。

アイドル3

先と同じように検索。やっぱり引っかかる投稿あり。
フラグゲット。でも、アイドルなのだろうか?

考察 SHA256でハッシュ値にしても検索で探されることがある。気を付けよう。

Reversing

フラッシュ機械語

セキュリティ芸人のネタに出てくるフラッシュ機械語

48 31 c0 48 ff c0 48 ff c8

の答えは? (x86_64の命令として実行した場合のレジスタraxの値を答えよ)
ということでヒントを見ると簡単だ。 アセンブリされた計算を行えばよいのだから。

フラッシュ機械語2

これはどうだ!(10進数でお答えください)

48 c7 c0 12 34 56 78
ということで次はアセンブリ語のヒントなし。自力で解読するのかな? 調べてみてるけど機械語からアセンブリに戻すことが難しい。サイトには書いてあるが48に対応するのがmovですが、
そこからどのような構造になっているかわからん。

(x86_64 機械語入門) (x86-64機械語入門) (作って分かる! x86_64 機械語)というサイトが参考になりそう。 私の解釈では48は「64bit命令にはプレフィクスが付く」というものだと考えている。つまり、命令を解釈する時には大きく考えなくて良いと思う。その次のものが命令になる。"c7 c0"これは参考にしたものの3つ目に「c7 00+reg_ofs 即値 (32bit)、movl 即値 (32bit), (レジスタ (64bit))」とあるのでc0に後の値を書き込むものと解釈しました。(疑問)即値は32bitであるが、48なので64bitを扱うと思っていた。これはどういうことなのだろうか?今はごめんなさいスルーします。 そして、c0の後には12345678と続いていた。最初はこれを代入したがダメ。そういえばリトルエンディアンで並べられていましたね。ということで。78563412を入力。だめ。→これのc0への代入される値は正しくは0x78563412であるようだ。つまり、16進数を10進数にしないといけない。よって、78563412を10進数に直せば正解。

フラッシュ機械語3

48 31 c0 48 05 80 f0 fa 02 48 2d 9b 19 c6 01 上とおなじ。

(Online x86 / x64 Assembler and Disassembler)
(10進数・16進数変換ツール)
上記必要なツールを載せた。これを見つけるまでに苦労した。変換させると加算と減算をしていた。48が区切りとなり、05と2dは通常の加算減算の04,2cと近しいので何かしらの規則性があるのかと思うがよくはわかっていない。 これで10進数に直してから計算すると合っていた。

OSINT

サブチャンネル

こっそりYouTubeのサブチャンネルを作ったらしい

サブチャンネルの最初に投稿された動画に何か隠されていそうだ
ということで"脆弱エンジニアの日常 サブチャンネル"とgoogleに検索掛けたら一本の動画あり。 フラグゲット。

World

海外に通用するネタを探るために海外向けのTikTokアカウントを作っていたらしい

そのidを教えて!
全く探し方がわからん。 worldがヒントになりそうだけど。ほかには本アカにそれらしいツイートをしているのかな? tiktokで脆弱エンジニアを基に調べていったらそれらしきアカウント発見。ゲット

Birthday

インターネットで調べまくった。M1に出場されているようなので、誕生日は公開されていると思い、
それ関連で調べたら出てきた。ゲット。

感想

ふらっと行えるCTFでとても楽しむことができました。ほかの人のWriteUpを見て学習していこうと思います。 ありがとうございました。