Web - WebGIS Writeup
** 非预期解法 通过弱密码登录面板非出题人预期 **
** CVE-2025-30220 是正解 但是我PoC找错了**
分析响应
这是一个网页地图 从GET /geoserver/china/ows可以知道是用geoserver搭建的
在GET /响应体找到线索 重点在地图轮廓
进入geoserver后台
经查阅 geoserver默认密码是admin/geoserver 尝试后成功登入
每个选项挨个看了 发现Sandbox Filesystem 但是无法读取文件内容可能受到某种限制 但是确定了flag在根目录
从关于页面可以知道Geoserver的版本号2.27.0
利用CVE漏洞
在nvd和exploit-db搜索Geoserver 2.27.0 找到CVE-2025-30220
从exploit-db找到PoC
利用PoC尝试获取/flag文件内容 失败 报错No LAYERS has been requested
多次尝试 看来CVE-2025-30220行不通 可能是InlineFeature被禁止
重审题目
现在已知Flag在文件系统的绝对路径 已知可以用XXE让geoserver读取Flag 并且出题人提示地图轮廓线
那么是不是要对地图轮廓线的渲染进行XXE注入攻击
观察轮廓线渲染 数据来自WMS GetMap接口 可以尝试注入SLD_BODY 让geoserver读取Flag内容然后渲染到轮廓线上
构造XML Payload 尝试XXE注入
1 |
|
构造GET请求
GET /geoserver/wms?service=WMS&request=GetMap&layers=china:nationalBorder&width=1024&height=1024&bbox=7000000,1000000,15000000,7000000&srs=EPSG:3857&format=image/png&SLD_BODY=Payload
服务器报错 XML外部实体解析被禁止
在管理面板全局设置启用Unrestricted XML External Entity Resolution 重新发送请求
成功从图片上获取到Flag
感谢出题人审阅 辛苦了