安全矩阵

 找回密码
 立即注册
搜索
查看: 1281|回复: 0

hvv 0day分析第二弹,某微oa远程代码执行

[复制链接]

252

主题

252

帖子

1307

积分

金牌会员

Rank: 6Rank: 6

积分
1307
发表于 2022-8-1 09:02:34 | 显示全部楼层 |阅读模式
原文链接:hvv 0day分析第二弹,某微oa远程代码执行


漏洞原理
某微使用Java动态编译对Java代码进行编译并直接实例化,未对Java代码进行任何过滤导致远程代码执行
漏洞分析
先看sink点
编辑
对Java代码进行动态编译获得Class类后进行实例化,只要var1,var2可控便可以执行恶意类的static和无参构造方法,找到调用该类的方法InterfaceRegisterCustomOperationCmd.execute,这里可直接让我们的http请求调用该方法,详细见上篇文章
编辑
首先获取到user,检查权限,这里导致这是一个后台的漏洞,必须获取特殊权限账号session,当然管理员也可以,配合某扫描器红队专版的任意管理员登录漏洞 可打前台,params是对http参数的封装,所有value值均可控,这里我们赋值method为add
编辑
赋值var18为weaver.interfaces.workflow.action.javacode.Action 开头,否则找不到该类时会直接return
编辑
赋值Javacode为我们恶意类代码,赋值dtinfo_CustomParameterData为{"XX":" ,这里是为了使得解析json时抛出异常,使得var24为null,跳过下面的for循环,否则for循环会导致空指针异常
编辑
最后一步逻辑,var18中必须包含weaver.interfaces.workflow.action.javacode ,才能走到我们的sink函数javaCodeToObject,加上前面对var18的限制,我们赋值var18为weaver.interfaces.workflow.action.javacode.Action.weaver.interfaces.workflow.action.javacode.testCalc,这里的testCalc是我们的恶意类
完整payload
编辑
修复
某微官方将该路由加入了黑名单,访问返回404。
tips:被安全规则拦截的路由返回头:errorMsg: securityIntercept


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-28 19:09 , Processed in 0.013852 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表