パスワードで保護されたzipアーカイブは、パスワードなしで開くことができます。

パスワードで保護されたzipアーカイブは、パスワードなしで開くことができます。

Linuxではパスワードで保護されたzipアーカイブがあります(パスワードは「secret」です)。ただし、zipファイルを開こうとするたびにパスワードなどを入力するように求められません。また、zipアーカイブを抽出し、意図的に間違ったパスワードを渡すPythonスクリプトがありますが、それでもアーカイブの解凍が行われます。また、rootがファイル権限を無視するのが好きだと聞いたので、rootとして実行しませんでした。私は何が間違っていましたか?

「evil」フォルダをzipファイル「evil.zip」に圧縮し、次のコマンドを使用してパスワードを指定しました。

zip --pasword secret -r evil.zip evil

Pythonスクリプトunzip.pyの内容は次のとおりです。

import zipfile
zFile = zipfile.ZipFile("evil.zip")
zFile.extractall(pwd="oranges")

Kali Linux 1.0.9およびZip(v. 3.0)を実行しています。

また、パスワードの代わりに暗号化コマンドを使用してみました。

zip --encrypt -r evil.zip evil

パスワードの入力を求められ、パスワードがパスワードに設定されます。

私はこのメッセージで終わりました。

Traceback (mostrecent call last) :
 File "unzip.py", line 3, in <module>
  zFile.extractall(pwd="oranges")
 File "/usr/lib/python2.7/unzip.py", line 980, in extractall
  self.extract(zipinfo, path, pwd)
 File "/usr/lib/python2.7/unzip.py", line 968, in extract
  return self._extract_member(member, path, pwd)
 File "/usr/lib/python2.7/unzip.py", line 1011, in _extract_member
  source = self.open(member, pwd=pwd)
 File "/usr/lib/python2.7/unzip.py", line 952, in open
  raise RuntimeError("Bad password for file", name)
RuntimeError: ('Bad password for file', <zipfile.ZipInfo object at 0x23a0118>)

その後、フォルダは解凍されたままになります。

答え1

アーカイブのファイルは、ディレクトリ構造ではなく暗号化され、パスワードで保護されます。抽出できるという意味です。目次暗号化されていても(ファイルではない)アーカイブから取得できます。

何らかの方法でアーカイブを暗号化して不可能にするには、GnuPGのようなものを使用することをお勧めします。

答え2

おそらくこれはKaliを実行しているからです。このディストリビューションはセキュリティ機能を「バイパス」するように設計されています(セキュリティ上の欠陥を強調する合法的な目的で)。他のディストリビューションでは、この「バグ」は発生しないと思います。

関連情報