ksnctfにチャレンジ 第19問目です。
※ksnctfは常駐型のCTFサイトです。 ※問題のページはコチラです。
Zip de kure
パスワード付きZIPファイルの解凍を目指します。 ZIPパスワードの解析は
特定のソフトの乱数生成のバグなどを利用する 少ない桁であると分かっている場合は総当り もう1つが 既知平文攻撃
です。 特定の暗号化方式で 一部の暗号文と平文が分かっている場合 他の暗号文の元の平文も求まるものがあり ZIPではこの攻撃が有効で、CTFではよく使われます。
昔の SECCON にもあった気がします。
また、ZIPはパスワードがわからなくても中に入っている データのリストは取得できるので 有名な .dll や データの名前が確認できた場合 この方法が有効だったりします。
さて
$ unzip -l flag.zip
Archive: flag.zip
Hint:
- It is known that the encryption system of ZIP is weak against known-plaintext attacks.
- We employ ZIP format not for compression but for encryption.
Length Date Time Name
--------- ---------- ----- ----
304 06-03-2012 18:14 flag.html
255964 06-03-2012 18:10 Standard-lock-key.jpg
--------- -------
256268 2 files
Hint としてもろに known-plaintext って書いてありますね。 安心して実行できます。 pkcrack を使用して
Standard-lock-key.jpg
が使えそうなデータなので検索してみると これ がそうですね。
以上から
$ pkcrack -C flag.zip -c Standard-lock-key.jpg -p ./Standard-lock-key.jpg -d flag_.zip
-C : 暗号zip
-c : 暗号zip内で平文が分かるデータ
-p : 平文
-d : 出力するzip名
$ unzip flag_.zip
で無事に展開できました。