受密码保护的 zip 档案无需密码即可打开

受密码保护的 zip 档案无需密码即可打开

我有一个 zip 存档,在 Linux 中受密码保护(密码是“秘密”)。但是,每当我尝试打开 zip 文件时,都不会提示我输入密码或任何内容。我还有一个 python 脚本,可以提取 zip 存档并故意传递错误的密码,但它仍然会解压缩存档。我也没有以 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。该发行版旨在“绕过”安全功能(其合法目的是突出安全缺陷)。我认为您不会在任何其他发行版中遇到此“错误”。

相关内容