GitHub 热榜:一款让黑客们都爱不释手的开源工具!

公众号关注 “GitHub科技”
设为 “星标”,每天带你逛 GitHub!

GitHub 热榜:一款让黑客们都爱不释手的开源工具!
来自量子位

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

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

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

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

GitHub 热榜:一款让黑客们都爱不释手的开源工具!

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

GitHub 热榜:一款让黑客们都爱不释手的开源工具!

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

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

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

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

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

GitHub 热榜:一款让黑客们都爱不释手的开源工具!

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

GitHub 热榜:一款让黑客们都爱不释手的开源工具!

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

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 块的附加数据。藏匿数据就放在这里。

GitHub 热榜:一款让黑客们都爱不释手的开源工具!图片来自 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

end




重磅!交流已成立


公众号运营至今,离不开小伙伴们的支持。
为了给小伙伴们提供一个互相交流的技术平台,特地开通了公众号交流群。
群里有不少技术大神,不时会分享一些技术要点,更有一些资源收藏爱好者不时分享一些优质的学习资料。(免费,不卖课!)
需要进群的朋友,可长按扫描下方二维码,备注:GitHub科技

GitHub 热榜:一款让黑客们都爱不释手的开源工具!

▲长按扫码

本篇文章来源于微信公众号:GitHub科技

原创文章,作者:software,如若转载,请注明出处:https://www.sldh123.com/1913.html

(0)
上一篇 4月 6, 2021 6:32 上午
下一篇 4月 19, 2021 6:32 上午

相关推荐

发表回复

您的电子邮箱地址不会被公开。