FOG远程命令执行(CVE-2024-39914)漏洞分析

admin 2024年8月11日10:10:38评论22 views字数 1294阅读4分18秒阅读模式

 

前言

今天来分析一下FOG远程命令执行(CVE-2024-39914)漏洞,这个漏洞是七月份爆出来了,目前最新版已经修复,如果需要复现可以下载1.5.10.34之前的版本,我用的是1.5.10版本分析。

源码下载地址:

https://github.com/FOGProject/fogproject/releases/tag/1.5.10

漏洞分析

这个漏洞网上公布信息说是在FOG /fog/management/export.php 中存在命令注入漏洞

打开下载的代码,web源代码在packages下的web目录

FOG远程命令执行(CVE-2024-39914)漏洞分析

然后找到存在漏洞的文件看一下

FOG远程命令执行(CVE-2024-39914)漏洞分析

然后解读一下这里的几行代码

23行中将session中的foglastreport值反序列化为对象,24行判断反序列化后的对象是否是ReportMaker类型,如果不是的话对调用getClass方法,这里跟进一下getclass方法

FOG远程命令执行(CVE-2024-39914)漏洞分析

FOG远程命令执行(CVE-2024-39914)漏洞分析

因为传进来的参数是:ReportMaker,所以前面的判断都是不成立的,然后看467行,ReflectionClass是PHP中的一个反射类,这里的这个代码的功能是动态的去实例化这个类,然后看下接下来的代码,因为export.php调用这个类时只写了一个参数,那么$props就是默认的参数false,470行的判断不成立,然后继续往下看,475行获取反射类的构造函数,然后可以在export.php最下面那行跟进去看下,有构造函数的,然后就继续往下看if里的代码,又有if (count($args) === 1)  换个判断,然后往上找这个参数值是什么

FOG远程命令执行(CVE-2024-39914)漏洞分析

func_get_args这个函数的作用是返回调用函数参数的个数,然后如下图,调用时传了一个参数

FOG远程命令执行(CVE-2024-39914)漏洞分析

然后走进479行代码,将传的参数给ReportMaker这个类的构造函数,最后返回。

然后跟进export.php27行代码outputReport方法看下

FOG远程命令执行(CVE-2024-39914)漏洞分析

可以看到147行和148行使用过滤器接收两个get传参,但是过滤器这里用的是默认的过滤参数,这里并不会进行任何的过滤,这里如果不知道这个过滤器都过滤了什么,可以将代码单独拿出来,执行一下看看过滤了什么。

接下来看一下payload是怎么写的

POST /fog/management/export.php?filename=$(echo+'kpvyggzrnonvuycaipvl'+>+qzjtyryy.php)&type=pdf HTTP/1.1

是发送了一个post请求,参数是通过url传递,filename这个参数是命令执行的关键,这里主要看一下对filename都进行了哪些处理

FOG远程命令执行(CVE-2024-39914)漏洞分析

这里相当于什么也没干,只要filename变量存在的话然后判断一下是否是字符串类型

接下来往后看,这里将文件名拿出来

FOG远程命令执行(CVE-2024-39914)漏洞分析

这里也是没做什么处理

FOG远程命令执行(CVE-2024-39914)漏洞分析

然后来到case这里,找一下pdf对应的数字是几

FOG远程命令执行(CVE-2024-39914)漏洞分析

跟进

FOG远程命令执行(CVE-2024-39914)漏洞分析

可以看到pdf2

FOG远程命令执行(CVE-2024-39914)漏洞分析

这里将filename变量写到文件名上

FOG远程命令执行(CVE-2024-39914)漏洞分析

然后这里又将恶意代码放到了数组里,赋值给了cmd

FOG远程命令执行(CVE-2024-39914)漏洞分析

然后这里去执行了这个命令,最终导致任意命令执行

FOG远程命令执行(CVE-2024-39914)漏洞分析

 

原文始发于微信公众号(道一安全):【漏洞分析】FOG远程命令执行(CVE-2024-39914)漏洞分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年8月11日10:10:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   FOG远程命令执行(CVE-2024-39914)漏洞分析https://cn-sec.com/archives/3054260.html

发表评论

匿名网友 填写信息