我如何入侵荷兰政府:利用无辜图像进行远程代码执行

我如何入侵荷兰政府:利用无辜图像进行远程代码执行

hai dragon 安全狗的自我修养 2025-02-15 23:03

赋予动机:

在一次安全会议上,我看到一个穿着 T 恤的人,上面写着“我黑了荷兰政府,我得到的只是这件糟糕的 T 恤。
出于好奇,我走近他,问他是怎么得到的。我决心要得到那个很酷的赃物。

照片由 
阿德里安
 on 
Unsplash

范围:

我开始寻找机会,并偶然发现了一份符合 
https://gist.github.com/R0X4R/81e6c50c091a20b060afe5c259b58cfa
 错误搜索条件的网站列表。这份清单成为我的起点。

目标:

我使用 httpx 来评估列出的每个网站的实时状态、技术堆栈、HTTP 状态代码和标题。这使我能够获得对基础设施的宝贵见解。

当我检查返回 200 OK 响应的网站的功能时,我注意到一个网站正在使用服务。我尝试使用 Nuclei 进行扫描。但是,使用 Nuclei 未检测到任何漏洞。GeoServer

发现:

我发现该服务允许我访问其功能,而无需身份验证。我启动 Burp Suite 并开始与应用程序交互,探测系统内的漏洞和潜在的利用点。

所以,我对 GeoServer 做了一些研究。它基本上是一个用于共享地理空间数据的开源服务器。它支持 WFS、WMS
WCS
 等标准协议。此外,它还附带了 JAI-EXT API
,该 API 默认启用,并提供用于图像处理
的高级对象。

JAI-EXT 项目
包含一种名为 Jiffle
 的映射代数语言。Jiffle
 是一种用于处理光栅图像的简单脚本语言。它的主要目标是让您用更少的代码完成更多的工作。

经过深入研究,于 2022 年 4 月 13 日发现了 JT-JIFFLE 扩展的漏洞,被确定为 CVE-2022-24816

开发:

该漏洞存在于 JAI-EXT 库对 Jiffle 脚本(一种映射代数语言)的处理中。
Jiffle 脚本旨在在受控环境中安全地编译和执行。但是,由于验证不当,图像或其他数据中嵌入的恶意 Jiffle 代码可能会被注入并在易受攻击的系统上执行。
然后,这些恶意代码可以利用 JAI-EXT 使用的 Janino Java 编译器,最终导致具有完整系统权限的远程代码执行 (RCE)。

这个解释保持简单,同时强调了核心问题:不正确的代码注入导致通过 Jiffle 脚本和 Janino 编译器进行 RCE。

https://github.com/geosolutions-it/jai-ext/commit/cb1d6565d38954676b0a366da4f965fef38da1cb

通过查看补丁 [JAI-EXT-PATCH],可以快速确定该方法中添加了 Javadoc 注释转义。正如我们在上面看到的,Jiffle 使用此方法将 .it.geosolutions.jaiext.jiffle.parser.node.ScriptwritescriptModelJava source code

一种方法是首先使用 WPS 构建器演示网页制作合适的 WPS XML 请求:

此有效负载会导致 verbose :javax.media.jai.util.ImagingException

当 Janino 编译器遇到以 a 开头的未注释行而不是预期的关键字(如 class、enum 或 interface)时,它会在将源代码转换为字节码时遇到失败。*

要将 Java 代码注入文件中,我们还必须通过包含字符串来纠正剩余的注释。我们的 payload 将采用以下形式:/*

由 Jiffle 生成的 Java 代码,可以覆盖在程序结束时初始化 result 变量时使用的 Double 类。

当访问我们作的 Double 类的静态属性 NaN 时,它会启动静态代码块的执行。用作概念验证的 Double 类概述如下:

执行命令变得简单明了。我们使用以下 Double 类来启动“”命令的执行:cat /etc/passwd

cat /etc/passwd

将此与初始有效负载相结合以转义 Java 注释会导致以下请求:

执行上述请求会导致异常,其中包含已执行命令的输出:java.lang.ExceptionInInitializerError

/etc/passwd

我创建了一个 Nuclei 模板来检测此漏洞,您可以在此 GitHub 链接中找到该模板:
CVE-2022–24816.yaml

时间线:
2022 年 12 月 22 日报告
确认于 2022 年 12 月 23 日
2023 年 3 月 24 日获得赃物

感谢您花时间阅读我的博客。如果您觉得这些内容有帮助或有趣,请考虑给它拍手叫好!👏 非常感谢您的支持。

其它相关课程

图片

图片

图片

图片

新课

图片

详细目录

mac/ios安全视频

图片

QT开发底层原理与安全逆向视频教程

图片

linux文件系统存储与文件过滤安全开发视频教程(2024最新)

图片

linux高级usb安全开发与源码分析视频教程

图片

linux程序设计与安全开发

图片

****- 图片

  • w
    i
    n
    d
    o
    w
    s

















  • 图片

  • w
    i
    n
    d
    o
    w
    s




    (




    )

  • 图片

  • U
    S
    B


    (




    )

  • 图片





  • (



    )

  • 图片

  • i
    o
    s

  • 图片

  • w
    i
    n
    d
    b
    g

  • 图片









  • (



    )

  • 图片
    图片
    图片

  • 图片

  • windows恶意软件开发与对抗视频教程

  • 图片

  • 图片

  • 图片