MaxKB远程命令执行漏洞分析(CVE-2024-56137)
赛博韭菜 发表于 安徽 漏洞分析 253浏览 · 2025-01-05 14:37

漏洞通告

漏洞分析

根据文献了解这个是一个概念漏洞,是模块存在rce,并且1.9.0已经修复了;

关键漏洞触发点在FunctionExecutor->exec_code

_exec_code被_exec_sandbox调用分析_exec_sandbox代码

传递进来的代码段被写入到了py文件里

通过subprocess.run来触发写入py文件的代码段

exec_code在debug方法中

可以看到code是通过debug_instance.get('code')获取的

debug_instance是通过上层函数传递的继续向上分析

上层是post函数调用,FunctionLibView类继承了from rest_framework.views import APIView,这是一个Django框架,并且是函数的入口点接口是debug post请求

路由寻找

查看urls.py方法,看到了路由function_lib/debug指向Debug类,而且使用urls.py文件使用app_name(空间命名),那么应该还存在一个项目的 URL 配置文件

全局搜索function_lib.urls关键字

目前获取到触发漏洞的url地址是/api/function_lib/debug,参数是code

漏洞复现

根据官方文档搭建环境

登录后台

点击函数库,并创建函数代码

import subprocess

def runcmd():
    cmd = subprocess.run(["whoami"],capture_output=True,text=True)
    return cmd.stdout

点击调试,命令执行成功。

查看url地址,与推断的url地址一致

0 条评论
某人
表情
可输入 255