网页视频抓取软件 格式工厂(一个一个文件可以有六种格式,而且变出来的新文件MD5哈希)
优采云 发布时间: 2022-02-08 09:03网页视频抓取软件 格式工厂(一个一个文件可以有六种格式,而且变出来的新文件MD5哈希)
您可能听说过格式工厂,它是一种转换文件的工具。
但是今天,硅星的人看到了一个很厉害的东西:一个文件不仅可以有六种格式,而且新文件的MD5哈希值和源文件一样……
需要声明一下,4月1日我并不是要欺骗大家的感受:以下是真实的,不是愚人节的玩笑。
让我们一步一步来看看。
黑客圈里有个期刊叫PoC||GTFO,全名是The International Journal of Proof of Concept or Get The Fuck Out(翻译为《International Journal of Proof of Concept or Get The Fuck Out》?杂七杂八的东西逆向工程和黑客,期刊发表方式为在线pdf,自由传播,鼓励镜像。
而最新的 PoC||GTFO 0x19 这个问题也很有意思:它本身就是一个 pocorgtfo19.pdf 文件,但是扩展名可以手动修改成三个“完全不同”(和文件格式一样),但是“相同”(如在 MD5) 文件中。
这三个相同但不同的文件分别具有扩展名 .pdf.zip 和 .html。你可以在GitHub[1]上下载这个文件(大约65MB)(点击“阅读原文”),然后自己尝试修改扩展。如果无法访问,硅星也将文件上传到百度网盘[2]。
如果我们对 .pdf.zip 和 .html 这三个文件进行 MD5 检查,我们会发现它们的 MD5 值完全一样——这没什么,因为它不会对文件产生任何影响,理论上它们仍然是同一个文件(只是扩展名不同):
但它的有趣之处在于它可以在三个不同的扩展下正常打开,并且它们各有含义。
如果你打开.pdf版本,你可以阅读期刊:
将扩展名改为.zip,然后解压,即可得到本期PoC||GTFO所引用作品的原文件:
最后我们把格式改成.html,我们可以在浏览器中打开,我们会得到如下静态页面:
事情还没有结束,更有趣的事情还在后面。这个页面说:把我放在这里,这样我就可以解析自己了。这是什么意思?
既然你现在打开的是一个.html文件,那么正确的做法是将.html文件拖回上一段所在的地方:
这个html自己解析,居然解决了四个文件?? ? ?
解决了四个新文件:image.png、Microsoft executable.ex、video.mp4 和另一个与原创 .pdf 完全相同的 .pdf 文件)。
如果你再去查看这四个新文件的MD5值,世界观可能会崩溃:它们的MD5值还是和原来的.pdf一样。
并且需要注意的是:这三个新文件(.png .ex 和 .mp4) 不是直接从原文件改扩展名得到的,而是用.html文件作为解析器。二级自己解析得到的文件。
因为在 macOS 上,Silicon Stars 不打开 .ex 文件;如果我们打开 mp4 文件,我们会得到一个非常短的赛车视频:
在解析后的页面中,这个小工具的作者是这样解释的:这个文件是一个 HTML,但同时它是一个多语言的 PDF。
Polyglot 字面意思是多语种。在计算机科学中,它描述了多种计算机语言的“混合”,这些语言编写在一个文件中,可以由编译器针对这些语言进行编译。
用普通程序员的话来说,Polyglot 是一个 PDF 和 HTML 编译器都可以通过的程序。一旦翻译*敏*感*词*类语言,它就是一个文件,可以以图片、视频和文档的形式打开,也可以作为可执行程序运行...
作者继续解释:它不仅是HTML和PDF的多语言,而且还实现了与其他四个文件(即.png .ex .mp4 和.pdf 刚刚解析)的MD5冲突。
这是什么魔法?? ?
刚才我们还有一个文件没有打开,就是.png。如果用Chrome浏览器打开,可以看到如下图:
它实际上描述了文件的结构。简单来说:故意修改一个文件的编码“排版”,加上html、png、mp4、pe的头部和内容。
在遗传学中,有一个术语叫做嵌合体,它描述了一种生物体,它同时具有多组DNA,表现出不同的特征。例如,*敏*感*词*如果成功,将产生最典型的生物嵌合体。
而这个html/pdf文件就像电脑上的一个嵌合体。看起来像是一种文件,但实际上收录了其他各种文件的“特征”……
网友们对这款小玩意给予了很高的评价:
无限接近魔法
哈哈很酷!前进到 SHA-2!
LMAO。MD5 别担心,你并不是完全没用,你只是变成了一个 meme :-)
注意这些碰撞的碎片(双关语,fragment-shrapnel-shell-shell-shell)
工作准则
这个小工具的主要作者是 Ange Albertini 和 Marc Stevens。
Albertini 是 PoC||GTFO 的编辑之一,也是该期刊 GitHub“官方页面”的所有者。他在 Google 位于瑞典的苏黎世办事处担任安全工程师,主要负责这个小工具的逆向工程。
Marc Stevens 为该项目的哈希冲突提供了重要帮助。他在荷兰国家研究所CWI从事密码学研究。2017年与谷歌合作,首次完成SHA-1碰撞破解,这就是著名的SHAttered事件。
前面说过,MD5早在多年前就已经被证明可以碰撞和破解,但是碰撞起来既费时又费力。并且 Albertini 和 Stevens 共同开发了一个“一键脚本”,可以轻松实现两个(甚至更多)文件的 MD5 碰撞。
“任意两个文件的碰撞是多年前实现的,问题是每次都需要几个小时,没有捷径。这里我们提供了一个特定文件格式的技巧和一个预先计算的碰撞前缀来让碰撞完成.
该技术的工作原理大致是这样的:通过预先计算,了解JPG、PNG、PDF、MP4等常见文件格式的前缀(可以理解为文件内容的“目录”)如何兼容,然后在文件A上单独Do文章,这样A文件就可以收录四个不同文件的数据:b.jpg、c.png、d.pdf和e.mp4。
现在,这些研究人员可以在 JPG、PNG、PDF、MP4、GIF 等常用文件格式之间快速碰撞——不仅他们可以,您也可以。他们在 GitHub 上开源了这些技术 - corkami/Collision [3],“git clone, run, done”,Albertini 写道。
说实话,这个技术并没有太多创造价值的用途……只是1)证明MD5真的太不安全了,建议弃用;2) 可用于黑客攻击。
安全研究员陈越举了一个简单的哈希碰撞攻击示例:“比如杀毒软件对可执行文件非常严格,但是一个exe文件伪装成jpg文件,而且图片看起来还不错,所以通过了,并且然后进入系统进行攻击。” (当然,杀毒现在没那么傻了,安全行业一直高度关注哈希冲突。)
这种攻击造成的损害可能更具社会性。
比如某政客的网站有一段视频总结了他的政治理念和政纲,黑客制作了一段与原视频哈希值完全相同但含义相反的视频,然后注入到网站 on,给政客丢脸,让他们失去选民的信任。
这样看,基于这种技术的黑客攻击有很大的潜力......
这个小工具的其他贡献者是 Rafał Hirsz,他是 Albertini 的同事,负责 JavaScript;Kurt Pfeifle,PDF 文档/PostScript 语言专家,PDF 协会成员;以及为 Formatting help 项目做出贡献的 QuarksLab 研究员 Philippe Teuwen;和独立视觉艺术家 Gustavo Torres 的 .mp4 视频。
由于文件格式和哈希算法确实不是 Silicon Stars 的专长,我们不会详细说明...
如果你有兴趣,可以下载 PoC||GTFO 的 issue 0x19,自己玩一下这个扩展,然后去 GitHub -corkami/Collision 了解技术细节。
玩得开心。
[1] 网页链接
[2]网页链接提取码:jx77
[3] 网页链接
[4] 视频 1
网页链接;
视频 2
网页链接
PingWest品玩招聘季
我们期待优秀人才的参与
有趣的科技,一切都与你有关