前言

今年某行动中,某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其实挺容易构造,完整的漏洞数据包有点敏感,暂时不公布了

效果:

免责申明

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

点击收藏 | 1 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖