晓查 发自 凹非寺
量子位 报道 | 公众号 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之后,有一片发布者会员账号AT块得附加数据。藏匿数据就放在这里。
△支持来自Twitter用户等angealbertini
Twitter通常会压缩图像并删除所有不必要得元数据,但是可以在“ DEFLATE”得末尾添加更多数据。
如果整个图像文件符合避免重新编码得要求,压缩包内容就不会从发布者会员账号AT块内得DEFLATE流中剥离。
这种方法不仅限于嵌入zip、mp3等文件,只要数据能压缩到3MB以内,都可以嵌入到png支持中。
Buchanan表示,这种方法可能被黑客用于藏匿恶意代码,他本人已将该漏洞利用报告给“漏洞赏金”程序,但却被Twitter告知这不是bug。
能传输“加密”文件,怎么能说是bug呢?应该是隐藏功能才对。(手动狗头)
带压缩包得支持地址:
感谢分享i.imgur感谢原创分享者/kNhGrN3.png
David Buchanan得Twitter:
感谢分享twitter感谢原创分享者/David3141593/status/1371974874856587268
项目地址:
感谢分享github感谢原创分享者/DavidBuchanan314/tweetable-polyglot-png
— 完 —
量子位 QbitAI · 头条号签约
感谢对创作者的支持我们,第壹时间获知前沿科技动态