ネットエージェント新卒採用 CTF Writeup 〜前編〜

にゃんぱすー、おきなわです。

何番煎じか分かんないですけど、せっかくなので以前解いた CTF の Writeup でも書いてみようかなと思います。

題名から察しがつくかもしれませんが、今回書くのはネットエージェント株式会社の 2016 年度新卒採用で出題された問題の Writeup です。これは全ての問題を解くと最終面接から選考を始めることが出来ると言うとてもおもしろい取り組みです。

詳しくは下記のサイトを見て下さい。

さて、では早速解いていきましょう。
※ちなみに僕は Mac ユーザなのでこの記事におけるコマンドの例は全て Mac での実行例です。

mondai1

まず最初の問題です。

問題:LzYxMDIvcGouaGJwLy86cHR0aA==

もうこれは見ただけでわかりますね。そう、base64 です。末尾に == が付いてるのが特徴的ですね。というわけで Let’s デコード♪

$ echo "LzYxMDIvcGouaGJwLy86cHR0aA==" | base64 -D
/6102/pj.hbp//:ptth

どうやら逆になってるURL のようなので再度以下のようにコマンドを実行

$ echo "LzYxMDIvcGouaGJwLy86cHR0aA==" | base64 -D | rev
http://pbh.jp/2016/

上記の URL にアクセスすると zip で固められた問題がダウンロード出来ました。どうやら今度はそれを解いていくようです。

mondai2

ダウンロードしてきた zip ファイルを解凍すると次のような構成のディレクトリが出来ました。

mondai
├── hint2.txt
├── mondai2.txt
└── mondai3.zip

どうやらどんどん zip ファイルを解答していけば良いようです。では 2 問目を解いていきましょう。

2016の平方根の小数点以下2016桁目から20桁をパスワードにしました。

ガリガリ計算させれば良いじゃん!ということで僕は普段大学で matlab を使っているため、matlab で以下の m ファイルを実行させて解きました。

簡単ですね。ちなみに他の解き方としては bc コマンドを使う方法もあります。bc コマンドを用いる事で複雑な数値計算も行えます。

$ echo "scale=2035;sqrt(2016)" | bc | tr -d "\n" | tr -d "\\" | cut -c 2019-
74571026133060730881

というわけで答えは 74571026133060730881 です。

mondai3

さて、3 問目です。

ハッシュパスワード問題

答え:3つの答えをつなげて

0f1aae8b8398c20f81e1c36e349a7880c9234c63

01821f5469967540a5a774197463e8c4d658f588

264f39cab871e4cfd65b3a002f7255888bb5ed97

ハッシュから元の文字列を求めないといけないようですね。本来ハッシュは不可逆なので元の文字列を求めることは出来ないのですが、インターネット上に単語とそのハッシュ値を紐付けたデータがごまんとあるので大概検索をかければヒットします。と言う訳で Google 先生の出番です。それぞれのハッシュを検索するだけ。

0f1aae8b8398c20f81e1c36e349a7880c9234c63 → tokyo
01821f5469967540a5a774197463e8c4d658f588 → ueno
264f39cab871e4cfd65b3a002f7255888bb5ed97 → line

ということで答えは tokyouenoline です。

mondai4

さて、4 問目ですが、ディレクトリ構成は次のようになっていました。

mondai4
├── hint4.txt
├── mondai4.png
└── mondai5.zip

どうやら次は画像の問題のようですね。入っていた png ファイルは以下のようなものでした。

mondai4

とりあえず画像ファイルに含まれる文字列を下記のようにコマンドを実行して見てみます。

$ strings mondai4.png

実行結果を眺めてみましたが、特にめぼしいものはなかったため、画像に書かれているヒエログリフを読む必要があるみたいですね。さっそく読んでみましょう。ただし僕はもちろん古代エジプト人では無いので日本語との対応表が無いと全く読めません。ということで以下のサイトを参考にしました。

ヒエログリフで五十音図

上記のサイトを参考に画像に書かれているヒエログリフを日本語にすると

のらかちいくち てちのちんちもちみら もにみちもにみら もにとちのにみちもちい のらもらまみ

となりました。ちょっと何言ってるのか良く分かんないですね。とりあえず2つ目の文字列である「てちのちんちもち」で Google 検索をかけた所、以下のサイトが最上位に来ました。

「かな入力」のままローマ字打ちで会話するスレ

ここでかな入力なのか?!と思い、所有している JIS 配列のキーボードを見ながらアルファベットに変換したところ、

kotaeha wakayamano minamino misakinamae komoji

答えは和歌山の南の岬 名前小文字

となりました。ここで岬の名前を検索した結果、潮岬(shionomisaki)ではないかと思ったのですが、解凍出来ず。しょうがないので和歌山の全ての岬の名前で試したりしましたがダメでした。その後も特に思いつかなかったため、ここで同じく問題を解いているらしいなーがに協力を仰ぎました。しかし二人でも特に思いつかなかったため、なーがが彼の先輩であるティマ先輩に協力を仰ぎました。そして三人で試行錯誤していた矢先、ティマ先輩がついに答えを見つけました!

答えは ushiomisaki でした。

ティマ先輩曰くとりあえず漢字の読み方を変えてみようと思って試したら上手く行ったとのことでした。圧倒的感謝🙏🙏😄😄

mondai5

5 問目です。問題ファイルは以下の様なものでした。

どうやらまた base64 のようです。なのでとりあえず一度デコードしてみたところ、また base64 がでてきました。そこで何度か base64 でエンコードされてるのか?!と思い、以下の様なスクリプトを書いて実行させてみました。

上記のスクリプトを動かすと mondai5_2 という以下のファイルを生成します。

begin で始まり end で終わっているあたりから uuencode でエンコードされたファイルだと分かったので以下のようにデコードします。

$ uudecode -o mondai5_3 mondai5_2

そして得られたファイルについて、どんなファイルなのか file コマンドを用いて調べます。

$ file mondai5_3
mondai5_3: gzip compressed data, from Unix, last modified: Thu Mar 19 17:31:56 2015

どうやら gzip ファイルのようなので素直に解凍。

$ gzip -dc mondai5_3 > mondai5_4

作成したファイルに対して再度 file コマンドを実行。

$ file mondai5_4
mondai5_4: Zip archive data, at least v1.0 to extract

zip ファイルなので再度解凍。

$ unzip mondai5_4
Archive: mondai5_4
extracting: nek 

再度 file コマンドを実行。

$ file nek
nek: bzip2 compressed data, block size = 900k

またまた解凍。

$ bzip2 -dc nek > mondai5_5

またまた file コマンドを実行。

$ file mondai5_5
mondai5_5: 7-zip archive data, version 0.3

解凍して出てきたファイルに対して file コマンド(ry

$ file n
n: RAR archive data, v1d, os: Win32

解凍して出てきたファイルに対し(ry

$ file ne
ne: LHarc 1.x/ARX archive data [lh0]

解凍して(ry

$ file nex
nex: xz compressed data

解(ry

$ file nex-1
nex-1: data

やっと圧縮ファイル以外が出てきたのでとりあえずバイナリを vim で眺めてみます。

$ vim -b nex-1

ファイルの最初に MSWIM と書いていたのでその単語でググった結果、どうやら Windows Imaging Format ではないかと分かりました。7-Zip で解凍出来るようなので解答して得られたファイルに対して file コマン(ry

$ file QRcode
QRcode: Sun raster image data, 123 x 123, 8-bit, RGB colormap

そのままだと表示出来なかったのでとりあえず jpeg ファイルに変換。

$ convert QRcode QRcode.jpg

以下がそのファイルです。

どうやら名前の通り QR コードなので適当に携帯のアプリで読み込んだところ

+BCcENQQxBEMEQAQwBEgEOgQw-

という文字列が出てきました。調べた所、UTF7 でエンコードされた文字だということがわかったため、以下のサイトを使ってデコードしました。

Encode/Decode_Tool

デコードした結果 Чебурашка でした。ドイツ語でチェブラーシカという意味だそうです。これがそのまま答えでした。

 

 

とりあえず疲れたので今回はここまでです。mondai6 以降は次の機会に。

ではでは〜

コメントを残すコメントをキャンセル

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

モバイルバージョンを終了