我如何入侵荷兰政府:利用无辜图像进行远程代码执行
我如何入侵荷兰政府:利用无辜图像进行远程代码执行
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恶意软件开发与对抗视频教程
-
-
-