GeoServerKiller:GeoServer全CVE综合检测利用工具(新增QVD-2026-526270day模块)"

admin 2026-10-18 02:52:44 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

GeoServer Killer:GeoServer 全 CVE 综合检测利用工具(新增 QVD-2026-52627 0day 模块)

原创

Joy
Joy

安全很忙

2026年8月15日 17:47
湖北

在小说阅读器读本章

去阅读

本文仅供授权测试与安全研究使用,请遵守《网络安全法》及相关法律法规。未经授权对他人系统进行测试属于违法行为。

一、背景

GeoServer 是全球使用最广泛的开源 GIS 服务器之一,近两年漏洞密度显著上升:CVE-2024-36401(JXPath RCE,已进 CISA KEV)、CVE-2023-25157(OGC Filter SQL 注入)、CVE-2025-58360(WMS XXE,已进 KEV)、CVE-2025-30220(WFS XXE)……

2026 年 8 月 12 日,安全研究员\"秋风\"(@q1uf3ng)公开了 GeoServer jsonArrayContains 未授权 SQL 注入 0day,奇安信编号QVD-2026-52627(CVSS 9.8)。该漏洞无需认证即可通过 WFS 的 CQL\_FILTER 参数注入任意 SQL,数据库连接用户具备超级用户或 pg\_execute\_server\_program 权限时可直接 RCE。鹰图数据显示国内风险资产 5320 个、全球 34038 个,官方目前尚未发布补丁。

在红队评估和蓝队自查两类场景下,都需要一个能把这一堆 CVE \"一键核对\"的工具。于是我把近期的 GeoServer 漏洞整理成了一个图形化综合工具 ——GeoServer Killer,本次版本已同步支持 QVD-2026-52627 的检测与利用。

二、工具概览

  • 纯 Java 单文件 GUI(Java Swing),一个 jar 免安装,Windows / Linux / macOS 全平台
  • 自动信息收集:上下文路径探测(/geoserver、根路径)、多源版本识别(About 页 / web 首页 / REST API)、GetCapabilities 图层枚举、默认口令核对
  • 一键检测 14 项,双击漏洞行直接打开对应利用面板
  • 利用能力全覆盖:RCE / SQL 注入 / XXE 任意文件读 / SSRF / 路径穿越读写 / SSTI / JNDI,并支持内存马注入与 GeoServer 数据库凭据离线解密

三、支持的漏洞清单

编号 类型 等级 说明 认证
CVE-2024-36401 RCE 严重(9.8) JXPath 属性名表达式注入(KEV) 无需
CVE-2023-25157 SQL注入 严重(9.8) OGC Filter CQL 注入 无需
QVD-2026-52627 SQL注入 严重(9.8) jsonArrayContains 注入 → PostgreSQL RCE/盲注 无需
CVE-2024-24749 文件读取 中危(5.9) GWC 路径遍历(Win+Tomcat) 无需
CVE-2025-58360 XXE 严重(9.8) WMS GetMap XXE(KEV) 无需
CVE-2025-30220 XXE 高危(9.1) WFS DescribeFeatureType 实体注入 无需
CVE-2024-29198 SSRF 高危(7.5) TestWfsPost SSRF 无需
CVE-2023-43795 SSRF 高危(8.6) WPS Execute SSRF 无需
CVE-2023-41339 SSRF 高危(8.6) WMS SLD 远程加载(可打 NTLM) 无需
CVE-2022-24816 RCE 严重(9.8) Jiffle 脚本注入(WPS) 无需
CVE-2024-45747 SSTI 高危(7.2) FreeMarker 模板注入 需认证
CVE-2023-51444 文件写入 严重(9.8) REST Coverage 路径遍历 需认证
CVE-2022-24847 RCE(JNDI) 高危(7.2) evaluate 属性名 JNDI 注入 需认证
默认口令 认证 高危 admin/geoserver 弱口令 —

四、重点:QVD-2026-52627 模块

4.1 漏洞原理(一分钟版)

根因在 GeoTools JDBC 模块。GEOT-7589 为 PostgreSQL 12+ 引入 jsonb\_path\_exists 优化时产生回归:encodeJsonArrayContains 只转义了第二个参数(JSONPath 指针),第三个参数expected被原样拼接进 SQL:

return ”(@.%s == \\”%s\\”)”.formatted(jsonPath[lastIndex], value);

正常生成的 SQL:

jsonb_path_exists(”data”::jsonb, '$ ? (@.a == ””)')

一个单引号即可依次逃逸 JSONPath 字符串 → SQL 字符串 → 外层表达式,注入任意 SQL:

CQL_FILTER=jsonArrayContains(”data”,'/a','x') ; SELECT pg_sleep(4) -- ') = true

利用条件:启用 WFS 且不要求认证;后端为 PostgreSQL/PostGIS;图层含可按 JSON 解析的数据列;RCE 需数据库用户为超级用户或具备 pg\_execute\_server\_program。影响 GeoServer 2.24.x / 2.25.x / 2.26.x(2.24 之前版本无该函数,不受影响)。

三种利用模式与权限的关系:

数据库权限 预编译语句 可达效果
PostgreSQL 超级用户 已禁用(可堆叠) 直接 RCE(COPY TO PROGRAM)
PostgreSQL 普通用户 已禁用(可堆叠) 盲执行任意 SQL
任意用户 启用 时间盲注提取数据(无需高权限)

4.2 工具的检测设计

检测一个\"未授权 + 需要特定数据列\"的漏洞,比利用更难做准。这个模块的实现思路:

  1. 版本门控:版本 < 2.24.0 直接跳过,避免无谓请求;
  2. JSON 列自动发现:按 data / json / props / properties / payload / attributes... 等 12 个常见 jsonb 列名逐一探测,命中的列名自动回填到利用面板;
  3. 布尔时间盲注验证:pg_sleep(CASE WHEN 1=1 THEN 4 ELSE 0 END),实测延时 ≥ 2.5s 判定存在——不依赖报错回显,适配各种部署;
  4. 正/负控制双请求:1=1 延时而 1=2 不延时才认定漏洞,防止\"服务器本来就慢\"造成的误报;
  5. 零破坏:检测阶段只发起 SELECT 语义的时间探测,不写不删。

4.3 利用面板功能

  • 验证:正/负控制 + 堆叠可用性三重确认,自动定位 JSON 列;
  • 权限探测:盲注提取 current_user / current_database() / version(),判断超级用户与堆叠能力,并直接给出可用模式建议;
  • 执行命令(RCE):COPY (SELECT 1) TO PROGRAM '' 堆叠执行,前置校验堆叠可用性与命令合法性;
  • 执行 SQL(盲):堆叠执行任意语句,破坏性语句会二次提示;
  • Dump 表数据:时间盲注 ASCII 二分逐字符提取——库/表清单、指定表的列与前 N 行,预编译启用、非超级用户环境下依然可用。

五、使用流程

三步走:

  1. 信息收集:填 http://target:8080,点「开始探测」,自动完成路径、版本、图层枚举;
  2. 漏洞总览:点「一键检测」,14 项并行核对,红色即存在;
  3. 双击漏洞行打开对应利用面板,图层/路径已自动带出。

建议先跑「信息收集」再「一键检测」——部分检测项依赖版本与图层信息,探测齐了误报更低。

另外附带的数据库解密页签:从目标服务器取回 geoserver.jceks、masterpw/default/passwd 和 workspaces/ 目录后,可离线还原主密码与所有 datastore 的数据库连接明文口令(内置 GeoServer 密钥派生逻辑,无需目标在线)。

六、这个版本把误报认真压了一遍

工具好不好用,关键看检测结果可不可信。本版对检测层做了一次全面修订:

模块 原问题 修订
CVE-2024-24749 端点有任何响应即报漏洞(几乎恒真) 改为真实穿越读取 WEB-INF/web.xml 验证,版本判断仅兜底
CVE-2023-25157 关键词匹配过宽 增加合法 CQL 基线请求做响应差分,特征收紧到 PSQLException / ORA- / SQLException 等
CVE-2022-24816 检测阶段直接执行 whoami 改为静态块抛标记异常的无害探测,检测不再执行系统命令
CVE-2025-58360 /etc/hostname 探测条件过松 以\"实体解析尝试签名\"(报错含路径)+ 内容签名双重判定
WPS 系模块 端点写死无回退 /ows → /wps → /wms 端点链自动回退
CVE-2023-51444 只尝试第一个路径即返回 全部上下文路径遍历,2xx 才判定成功

原则就一条:检测阶段的探测必须无害且可证伪。

七、蓝队怎么防(重点)

针对 QVD-2026-52627,官方补丁未出,建议立即:

  1. 收敛暴露面:限制 / 关闭 WFS 公网暴露,或强制认证;
  2. 数据库权限最小化:撤销 GeoServer 连接用户的超级用户及 pg_execute_server_program 权限(这一步可直接掐断 RCE 链);
  3. WAF 规则:拦截 CQL_FILTER 中出现 jsonArrayContains、COPY、PROGRAM、pg_sleep、pg_read_file 等关键字的请求;
  4. 监控告警:关注含单引号 / SQL 关键字、以及耗时异常(≥4s 量级)的 WFS GetFeature 请求——时间盲注的流量特征很明显;
  5. 自查版本:
curl http://target:8080/geoserver/rest/about/version.json

2.24.x – 2.26.x 且满足利用条件的,按存在处理。

八、环境搭建与获取

本地复现建议使用 vulhub 搭建靶场(PostgreSQL 后端 + jsonb 列图层),全程合法合规。

免责声明:本工具仅供授权渗透测试、安全研究与教学用途。使用者需对目标系统具备书面测试授权,因使用本工具造成的任何后果由使用者自行承担。请及时关注官方补丁并升级。

本工具仅限星球内部获取!!!


一周4500万次攻击,全球wp2shell漏洞遭大规模利用" 网络安全文章

一周4500万次攻击,全球wp2shell漏洞遭大规模利用"

wp2shell漏洞披露后首周即遭大规模利用,攻击者从近15万个独立网络来源发起超过4500万次攻击尝试,规模约为Drupalgeddon的20倍。攻击者不再精确定位而是广泛扫描,安全团队需将响应窗口压缩至小时级,结合WAF、网络分段、容器隔离和实时遥测等补偿性控制措施,在补丁完成前降低暴露风险。建议制定紧急漏洞响应流程并利用遥测数据识别实际攻击活动。
阿波罗全球管理公司遭数据泄露,金融机构面临持续网络攻击风险" 网络安全文章

阿波罗全球管理公司遭数据泄露,金融机构面临持续网络攻击风险"

本文汇总近期重大安全事件:HeadMare组织攻陷视频会议服务器植入后门;WorkL数据库泄露数十万信息;攻击者诱骗AI助手下发恶意软件;微软EntraID爆出10分RCE漏洞;安卓Manic恶意软件利用Wi-Fi网状网络窃取离线数据;macOS屏幕共享漏洞遭挖矿利用。建议企业紧急排查相关漏洞并强化供应链与终端防护。
评论:0   参与:  0