【3846CTF】Q1_patchgi_pass

先週火曜日に唐突に開始された不定期CTFイベント、それが3846CTFです
出題は3846先輩が行い、Twitterを通してみんなで解いていく形式です

基本的に「CTFってなんだよ」とか「セキュリティとか興味ねえよ」って人が多いと思われるFMSの生徒をターゲットに行っていますが、別にMSの人でもNDの人でも、CTF大好きって人でも全然OKです
(ただ初心者向けの問題なので、レベルがなんとも言えないのですが…)

write-up等はtwitter以外ならOKです
(参加者が直接目にしなければセーフ)


Q2は8月1日22時に出題される予定です


そんなわけで7月29日に出題された3846CTF_Q1_patchgi_passのwrite-up


URLにアクセスしてみるとGistに飛び、なにらや文字列が表示されます
f:id:kkrnt:20140801205127j:plain

まぁCTFだし、これは暗号化されているか、ハッシュなのだろうと思い、注意深く見てみると、この文字列は336Byteで、末尾に=が付いていることが分かります

末尾が=という辺りで「あー、Base64のパディングか…」と気が付く人がいると思いますが、念のため「暗号 末尾 イコール」ってググってみるとBase64って出てきます

Base64は可逆暗号なので、早速デコードしてみます
テキトーに「Base64 デコード」ってググると色んなサイトが出てくるのでやってみると

f:id:kkrnt:20140801205735j:plain

ん?間違えたか…?
と思うような結果が出てきます


(↓以下はWindows環境で行っています↓)

このままだと文字化けとかしててこれ以上どうしようもないので、これをどうにかして文字化けしない形でファイルに保存したいです

取り敢えず、元の文字列をテキストファイル(ここではq1.txt)に保存し、コマンドプロンプトを開きます

cdでq1.txtが保存してあるディレクトリに移動し、以下のようにcertutilコマンドを打ちます

certutil -decode q1.txt 出力ファイル

f:id:kkrnt:20140801211435j:plain


出力されたファイル(ここではdecode.txt)を開くと以下のようになります

f:id:kkrnt:20140801211628j:plain

すると、「パッチギ,ピザはよ.txt」という文字列が読み取れます

しかし、これではよくわかりません
恐らくこのファイルがテキストファイルではないのでしょう

では、本当の形式はなんなのでしょうか?

もしあなたがLinuxCygwinを利用できる環境にあるのだとしたら
以下のようにfileコマンドを実行シてみてください

file 調べたいファイル

f:id:kkrnt:20140801212135j:plain

出力の形式は異なるかもしれませんが、これでこのファイルがzip形式だとわかります


もし、LinuxCygwinを利用できない場合は、大人しくGoogle先生に頼ります
「ファイル PK」とググると、zipだと教えてくれます

というわけで、早速このファイルの拡張子をzipに変え、解凍してみます

f:id:kkrnt:20140801212402j:plain

は?パスワード?

なんだよパスワード掛かってんのかよ…
仕方がないのでどうにかしてパスワードを調べます

色々な方法がありますが、僕はLhaplusという解凍圧縮ソフトにくっついてるブルートフォースツールを利用しました

1日くらい掛かりますが、パスワードが求められます


しかし、そんなに時間を掛けたくありません

今までの手順などを振り返ってみると…

「#パッチギパス」…?

ってわけで、これがパスワードです
早速「patchgi」と打ち、解凍してみます

すると「パッチギ,ピザはよ.txt」というファイルが出力されます

やっと終わりかと思い、ファイルを開いてみると
f:id:kkrnt:20140801212823j:plain
はぁ…またか…

でも末尾が=なのでBase64だろうと推測し、先ほどと同じようにデコードします

f:id:kkrnt:20140801213006j:plain

これは見たことある人もいるでしょう

URLエンコードというやつです
これもテキトーに「url デコード」ってググってデコードします

<注意>
恐らく出題する際のミスだと思いますが

%e3%83%91%e3%83%83%e3%83%81%e3%82%ae%e3%83%94%e3%82%b6%e3%81%af%e3%82
%88

と%88が改行してしまっています
このままだと正しいフラグが得られないので、

%e3%83%91%e3%83%83%e3%83%81%e3%82%ae%e3%83%94%e3%82%b6%e3%81%af%e3%82%88

となるように改行を消して下さい

デコードすると
f:id:kkrnt:20140801213338j:plain
はい、これがフラグ(答え)です



お疲れ様でしたm(__)m