“curl”以 ASCII 文本形式下载 .zip 文件(zip 文件未损坏!)

“curl”以 ASCII 文本形式下载 .zip 文件(zip 文件未损坏!)

我想从 Artifactory 下载软件包。如果我从 Artifactory UI 手动下载它,并将该文件传输到 Linux 服务器 (RHEL 8),我可以看到该文件采用正确的 ZIP 格式:

file arena-web.zip
arena-web.zip: Zip archive data, at least v2.0 to extract

如果我尝试使用来自同一 Linux 服务器的 CURL 下载它,我会得到 ASCII 文本文件,当然我无法解压缩(这是我的主要问题)

file arena-web.zip
arena-web.zip: ASCII text

我使用的curl命令:

 curl -u "user:pass" -O https://artifactory_my_domain/packages/arena-web.zip

我也尝试过-L和选项。-o

这是某种错误还是可能存在什么问题?

更新 - “文本文件版本”的内容:

{
  "repo" : "uueaw-generic-snapshot-local",
  "path" : "/packages/arena-web.zip",
  "created" : "2022-01-13T13:53:49.152Z",
  "createdBy" : "svcacct",
  "lastModified" : "2022-01-13T13:53:48.973Z",
  "modifiedBy" : "svcacct",
  "lastUpdated" : "2022-01-13T13:53:49.153Z",
  "downloadUri" : "https://artifactory_mydomain/artifactory/uueaw-generic-snapshot-local/packages/arena-web.zip",
  "mimeType" : "application/zip",
  "size" : "5412051",
  "checksums" : {
    "sha1" : "6e5069ee60b1977ad13ddf45a30c12c5fd1d8719",
    "md5" : "46fa87adefe864b13bb2216801d246b1",
    "sha256" : "a08361f71ec483044f675af07ff8ca214dc2f17a9510c2a626ed57e04670cbfb"
  },
  "originalChecksums" : {
    "sha1" : "6e5069ee60b1977ad13ddf45a30c12c5fd1d8719",
    "md5" : "46fa87adefe864b13bb2216801d246b1",
    "sha256" : "a08361f71ec483044f675af07ff8ca214dc2f17a9510c2a626ed57e04670cbfb"
  },
  "uri" : "https://artifactory_my_domain/artifactory/api/storage/uueaw-generic-snapshot-local/packages/arena-web.zip"
}

答案1

file也只是人类;这可能根本就是错误的。 (它使用启发式方法,没有什么可以保证其他文件格式不会被错误解释)

如果不:

zip 文件完全可以从有效的 ASCII 文本开始;这是文件格式宽松定义的结果。

这导致了所谓的文件格式的存在多语言者,即作为多个文件有效的文件。一个常见的例子是国际PoC杂志||GTFO,其 PDF 文件通常兼作有效的 ZIP、Windows 可执行文件、可启动磁盘映像、游戏机 ROM 映像、音乐文件以及这些文件的组合。

有关多语言者的更多示例,Ange Albertini 提供了出色的会谈关于这个主题,以及他的Github 账户包含许多 zip 多语言和变体的示例;这个是一个 ZIP(一个 JAR,里面有一个 Java .class 的 ZIP),它也是一个 Python 脚本(因此,以 ASCII 文本开头)、一个 Windows 可执行文件和一个 PDF。为什么?因为。

相关内容