百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

图片可隐藏zip和mp3文件,只需修改后缀名,这个bug火了

yund56 2025-03-02 19:34 8 浏览

晓查 发自 凹非寺
量子位 报道 | 公众号 QbitAI

明明下载的是一张图片,只需修改后缀名,图片就变成了一首歌,一串Python代码。

国外黑客David Buchanan利用Twitter的漏洞,可以用图片伪装的方式传输一份“加密”文件,前提是不超过3MB

他成功把这种藏匿文件的GitHub源代码压缩到图片中。

现在你只要去他的Twitter,把这张图片下载下来,并将文件后缀名从.png修改为.zip,即可解压为Github代码。

(注:亲测Mac自带解压工具报错,第三方工具可正常解压。)

对于有十几年网龄的老网民来说,这并不是一项新技术。早年就有人将文本文件或种子文件藏匿在jpg图片中。

这种方法的特点在于,把文件打包到图片中并不影响正常显示,但一般来说文件大小不过几十KB。

随着网络发展,越来越多的平台允许用户上传大尺寸无损图片,这就给藏匿大文件提供了契机。

Buchanan的新方法现在将藏匿文件体积增加到3MB,你甚至能放入一首歌。

Twitter上就有现成的例子,Buchanan放出了一张surprise.mp3的图片。如果后缀名修改为.mp3,就变成了一首歌。

至于这个surprise,自然毫无意外是Rick Astley的《Never Gonna Give You Up》这首歌。恭喜你,又被“瑞克摇”了。

Buchanan的这一发现已经连续多天成为GitHub热门项目,最终在周末登上日榜第一。

使用方法很简单,只需要将pack.py文件下载到本地,运行以下代码:

python3 pack.py cover.png file.zip output.png

其中,cover.png是封面图片,file.zip是你要藏匿的文件,output.png是输出结果的文件名。

从外观上来看,output.png和cover.png是一样的,但多出一个压缩包的大小。

原理

用图片隐藏压缩包的原理并不复杂,png图片文件的格式如下。在Zlib之后,有一片IDAT块的附加数据。藏匿数据就放在这里。

图片来自Twitter用户@angealbertini

Twitter通常会压缩图像并删除所有不必要的元数据,但是可以在“ DEFLATE”的末尾添加更多数据。

如果整个图像文件符合避免重新编码的要求,压缩包内容就不会从IDAT块内的DEFLATE流中剥离。

这种方法不仅限于嵌入zip、mp3等文件,只要数据能压缩到3MB以内,都可以嵌入到png图片中。

Buchanan表示,这种方法可能被黑客用于藏匿恶意代码,他本人已将该漏洞利用报告给“漏洞赏金”程序,但却被Twitter告知这不是bug。

能传输“加密”文件,怎么能说是bug呢?应该是隐藏功能才对。(手动狗头)

带压缩包的图片地址:

https://i.imgur.com/kNhGrN3.png

David Buchanan的Twitter:

https://twitter.com/David3141593/status/1371974874856587268

项目地址:

https://github.com/DavidBuchanan314/tweetable-polyglot-png

— 完 —

量子位 QbitAI · 头条号签约

关注我们,第一时间获知前沿科技动态

相关推荐

重生之我在头条学html网页编程,这一世我一定学好,成为编程高手

有人要问了html是什么东西?就是用来设计网页的一种语言会不会很难啊?这是很多朋友担心的,我告诉大家这是最简单最基础也最容易学习的一款入门级语言,当初我也是经常因为学不会C语言而苦恼自从学习了html...

如何在网页3D CAD中创建一个三维管道模型

前言在网页CAD中进行三维建模是一项有趣的任务。本文将介绍如何利用mxcad3d来创建三维管道模型。该工具提供了一系列三维建模功能的API,使得建立复杂的管道结构变得简单直观。安装在此之前,需要先安装...

网页模版如何用

网页模版已成为如今网站建设的核心工具。随着互联网需求的增长,越来越多的企业和组织需要建立自己的网站,以展示他们的品牌和服务。在这个过程中,网页模版为他们提供了一种简单而高效的方式来构建网站。所谓网页模...

AI嵌入式Flowcode编程网页开发人员入门指南

WebDeveloper允许使用FlowcodeIDE环境开发具有交互性的网页。可以在2D面板中添加特殊网页组件,以创建网页的视觉表示,并可以使用流程图添加交互功能。它的引入意味着Flowcod...

用Deepseek制作网页版的汉诺塔游戏保姆级教程

在deepseek中输入:“帮我做一个网页版的汉诺塔演示游戏,游戏包含2层、3层、4层、5层的汉诺塔游戏演示,制作自动求解演示按钮,点击按钮就可以生成出步数,同时自动演示最优解动画。”最后把生成的程序...

TaskBuilder前端页面CSS样式规则设置

在前端页面设计器内,点击底部的“CSS样式”选项卡,可以打开CSS样式设计器,在此查看和设计当前页面的CSS样式规则,如下图所示:3.3.6.1引入外部样式文件如果要在页面中引入外部CSS文件,可以点...

使用 Python、FastHTML 和 Uvicorn 构建简单的博客网站

FastHTML是2024年7月推出的PythonWeb框架,是一个简单但功能强大的框架,允许开发人员使用纯Python构建Web应用程序。(不需要复杂的模板引擎)。Fast...

用AI可以生成HTML网页了,很多初级前端都要失业了

即使你完全不懂html,javascript,css,也能做出漂亮的网页,这在以前是不可想象的,而现在确是可行的,因为有这样一个项目:openUI。openUI不仅仅能生成html页面,还能生成自适应...

python原始套接字socket下载http网页文件到txt

python原始套接字socket下载http网页文件到txtimportsocketdefdownload_webpage(url,output_file):try:...

高效排版:实现DeepSeek生成内容Word格式排版并导...

高效排版:实现DeepSeek生成内容Word格式排版并导出的经典方法,步骤简洁高效:DeepSeek生成内容复制出来容易出现乱码,下面介绍一种比较高效简单的方法!一、核心三步法1.调整模型模式在D...

打工人福音!3分钟教你学会word精美排版

昨天大熊介绍了word一键排版的三种办法,今天我们来详细讲讲第二种办法,用html代码实现一键排版,然后再导出pdf实现精美效果。打工人,打工魂,你是不是也有以下烦恼?下面是我经过多次和Deepsee...

使用 HTML 创建可折叠的交互式组件,一行 JS 代...

如果你想创建一个可折叠的交互式组件,使用<details>元素即可,一行JavaScript也不用写。<details>组件定义了一个可折叠的容器,它的第一个元素必须...

新手小白1分钟学会Word——文档的编辑1.1

天空一声巨响,迷人的我闪亮登场,亲爱的家人们,周末好呀!话不多说,咱们继续开干!昨天说到本节还有个小尾巴,那咱们就把这个小尾巴了结了,然后开始新篇章~四、保存文档我们对文档编辑完之后最重要的一步就...

超强!DeepSeek+HTML制作数据看板,老板看了都点赞

DeepSeek以极强的推理能力,支持生成各种代码,比如Python、SQL、Matlab、JS、HTML等,你可以拿这些代码放到编译器里,就能直接跑出结果,比如机器学习算法、exe应用、可视化图表、...

什么是Tailwind CSS

什么是TailwindCSSTailwindCSS是一个实用优先(Utility-First)的CSS框架,其核心思想是通过直接在HTML中组合预定义的类名来快速构建界面样式,无需编写传...