某软件监控页面RCE漏洞分析

前言

今年某行动中,某OA连续发了好几个高危漏洞补丁,搜索了一下,目前网络上还没有分析文章,正好最近有时间做一下漏洞分析和学习

漏洞说明

后台监控页面对传入参数为进行处理,导致命令执行

修复原理

补丁代码直接删除了后面一大段代码,我们分析一下这一段代码危害
在这里插入图片描述

首先登陆系统后访问下面链接,进入monitor页面,访问后台监控页面的jsp
http://x.x.x.x/ctp/sysmgr/monitor/status.do

在这里插入图片描述

点击访问Cache Dump页面
在这里插入图片描述

这里访问会加载index.jsp,同时会在session设置GoodLuckA8,后续才能访问到漏洞页面
在这里插入图片描述

cacheDump.jsp 这里判断是否session存在GoodLuckA8了
在这里插入图片描述

抓这个页面的包,继续操作
在这里插入图片描述

cacheDump.jsp 这里传入b、m、p三个参数
在这里插入图片描述

这里符合条件会调用eval方法
在这里插入图片描述

跟进到eval方法,拼接beanName、func、param这个三个参数
在这里插入图片描述

进行ScriptEvaluator.eval 方法,可以看到这里用到groovy,继续跟进77行
在这里插入图片描述

最后这块编译文件,执行groovy代码
在这里插入图片描述

漏洞复现

p参数这里设置成下面的groovy代码,然后进行url编码,即可导致RCE

1); println "cmd /c calc".execute().text //

漏洞分析完,poc其实挺容易构造,完整的漏洞数据包有点敏感,暂时不公布了

效果:
在这里插入图片描述

免责申明
本文中提到的漏洞分析过程仅供研究学习使用,请遵守《网络安全法》等相关法律法规

猜你喜欢

转载自blog.csdn.net/weixin_55436205/article/details/130373508