LoginSignup
0
0

SECCON online 2015 「Unzip the file」解説

Posted at

はじめに

本記事ではSECCONオンライン2015の「Unzip the file」を解説します。

問題

解き方

問題の把握

question.txtには以下のように書かれています。

Unzip the file
unzip

つまり、「unzipファイルを解凍せよ」とのことです。

問題ファイルの調査

fileコマンドを使ってunzipファイルの種別を確認します。

$ file unzip
unzip: Zip archive data, at least v2.0 to extract, compression method=deflate

問題文からも容易に推測はできますが、案の定zipファイルでした。

unzipフォルダの解凍

unzipコマンドでunzipフォルダの解凍を試みます。

$ unzip unzip.zip
Archive:  unzip.zip
[unzip.zip] backnumber08.txt password:(↵Enter)
   skipping: backnumber08.txt        incorrect password
   skipping: backnumber09.txt        incorrect password
   skipping: flag                    incorrect password

どうやらunzipフォルダは何かしらの方法で暗号化されているみたいです。
中にflagといういかにもな名前のファイル/フォルダが含まれており、unzipフォルダを復号することでflagファイルを確認できそうです。

unzipフォルダの復号

同じくunzipファルダに含まれているbacknumber08/09.txtがヒントになりそうです。そこで、この名前を検索エンジンにかけてみると同名のファイルが平文で見つかりました。このことから、既知平文攻撃による解読が有効だとわかります。

既知平文攻撃

既知平文攻撃はpkcrackというツールにより実現可能です。

まず、backnumber08.txtをzip化します。

$ zip backnumber08.txt

同一フォルダ内に、backnumber08.txt、backnumber08.zip、unzip.zipが入っている状態で次のコマンドを実行します。

$ pkcrack -C unzip.zip -c backnumber08.txt -P backnumber08.zip -p backnumber.txt -d output.zip -a

実行後、flagファイルが平文で生成されます。
fileコマンドを実行するとflagがwordファイルであることがわかるため、ファイル名をflag.docxに変えて開くと、flagを入手できます。

まとめ

本問はzipの暗号化方式の脆弱性を警鐘している。

参考

・入門セキュリティコンテスト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0