Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2019-9673 — 分析报告 | Kitploit
工具/GitHubGitHub/mgrube/cve-2019-9673
漏洞分析漏洞利用IDS/IPS规避Web应用程序漏洞利用钓鱼攻击社会工程学
GitHubmgrube/cve-2019-9673

CVE-2019-9673

分析报告

查看仓库
417年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2019-9673: Freenet 内容过滤器漏洞

注意:我已将此漏洞完整披露给 Freenet 团队,并与他们共同验证了该补丁。该补丁现已部署在最新版本的 Freenet 中。

我最近在 Freenet 中发现了一个安全漏洞,攻击者可能利用该漏洞 对目标进行去匿名化,或通过 Freenet 发送恶意文档。

影响

该漏洞影响使用 Firefox 作为浏览器的 Freenet 用户。它允许在用户计算机上进行去匿名化及其他恶意行为。 它存在于 1483 及之前的所有版本中。

漏洞利用

此漏洞利用的是 Firefox 与 Freenet 在处理 MIME 类型方面的脱节。 Freenet 附带了针对许多不同内容类型的过滤器 - 为确保只有格式良好且不含脚本的内容能够 在无需向用户发出大量警告的情况下被渲染,人们付出了 大量的努力。

Freenet 在按应有方式处理数据,以及允许用户指定是否希望以其他方式处理数据方面, 通常做得很好。

另一方面,Firefox 在确定文件 MIME 类型的方式上则更为细致。 具体如此处文档所述。该页面记录的大多数 流程都在攻击者的控制范围之外,尤其是当攻击必须通过 Freenet 进行时。然而,有一件事_确实_ 在攻击者的控制之内,那就是所插入数据的 MIME 类型。当数据被插入 Freenet 网络时,用户可以指定 MIME 类型 - 当 该字段留空时,数据会被视为 application/octet-stream,并得到所有关于警告的 适当处理。

然而,查看 Mozilla 文档的 HTTP 部分,我们看到 Firefox 实际上会 对数据的 MIME 类型做出自己的推测,前提是提供内容的应用程序未满足某些条件。 具体而言,当应用程序未发送 Content-Encoding 头时,Firefox 会嗅探内容以决定如何处理它。如果第一个数据块是非文本数据, Firefox 会将文件视为扩展名所指示的 MIME 类型。

事实证明,Freenet 并未在其响应中发送此头,这使我们能够将其转化为可用的东西。 由于我们的数据可以以 text/plain 这一 MIME 类型插入,这显然不会得到 精密的过滤,但可以根据文件扩展名所指示的任何 MIME 类型进行传送,因此我们 现在有了一种传送未经过滤的 HTML 文档(或 PDF、或 .docx……)的方法。这意义重大, 因为通常所有危险内容都会被建议下载到文件夹或临时空间,并在 浏览器之外打开。

演示

这是漏洞利用过程的快速视频 - 在此例中用于传送一个未经过滤的 HTML 文件。

Freenet Filter Bypass

如需一个可运行的示例,请安装 1483 或更早版本并导航到:

http://127.0.0.1:8888/SSK@Xv~K9QDJQTjy4x8jOO8rfqK42JDliBes4GKS0RLLcdA,dCD8gDm0c1-JwuDAx9ENqZbGWU3BSmje0XOaMoc6iFw,AQACAAE/astley.html

对于任何想在家亲自尝试的人,你可以在此处获取最新存在漏洞的 Freenet 版本。

攻击场景

那么我们如何在现实世界中利用这一点呢?

事实证明,如果你在用户正在浏览的 Freenet 页面中链接到你的恶意内容,Freenet 会确保将该文件视为其扩展名所指示的类型。Freenet 会看到我们的第一个数据位是二进制数据,并警告用户我们的文件是恶意的。

:(

这意味着,如果我们希望目标查看我们带有 JS 的恶意页面,就必须从外部链接到该页面。这其实没什么问题,因为 Freenet 最流行的消息系统并非通过 Freenet 的 Web 代理运行。

例如,如果本文中的演示 URI 被链接在 FMS 内,就不会有额外检查,我们的载荷便可以运行。

要对一些 Freenet 用户进行去匿名化,所需做的一切就是创建带有吸引人标题的内容,插入一个第一个数据块为二进制数据的文件,然后创建一个有说服力的网页,在后台静默地报告 IP 地址和活动。将此与 BeEF 框架之类的工具集结合使用,你就会获得一些有趣的机会。

当然,我们也可以将其用作传播恶意 PDF、.docx 或其他文件的载体,从而在用户机器上获得更持久的立足点。

修复

修复这个漏洞非常简单 - 从现在起,FProxy 在传送内容时将始终传递 Content-Encoding HTTP 头。此头告诉 Firefox 浏览器严格按 FProxy 定义的方式处理 MIME 类型。因此,text/plain 类型的数据将_始终_以纯文本形式渲染,而不会被当作任何其他 MIME 类型处理。

结论

总而言之,这个漏洞相当简单 - 但它却能够对 Freenet 的功能产生重大影响。MIME 类型检查非常重要,从这个漏洞中学到的一个重要教训是,当数据从一个程序传递到另一个程序时,MIME 类型并不总是以一致的方式得到处理。

TL;DR

只需将 MIME 类型为 text/plain 且第一个数据块仅含二进制数据的内容插入 Freenet。Firefox 会将其视为文件扩展名指定的任何类型,并将其直接传送给用户,而不是由 Freenet 过滤。将其发送给 FMS 或 Frost 上的受害者。收集他们的 IP 地址,或让他们运行二进制载荷。获利!

下载工具