蓝凌OA未授权分析

admin 2025年1月2日23:39:29评论12 views字数 1083阅读3分36秒阅读模式

漏洞描述

蓝凌OA未授权导致RCE。

漏洞分析

首先根据POC中地址定位文件

蓝凌OA未授权分析

定位JSP文件,根据URL以及路径+参数等综合定位,得到其对应的JSP文件

蓝凌OA未授权分析

这里获取 s_bean 参数,然后循环,调用 getBean 从容器中获取该 bean 对象,这里POC中 s_bean 参数传入的是sysFormulaSimulateByJS ,说明获取一个 sysFormulaSimulateByJS 实例,全局搜索一下,查看spring的配置文件(通常是spring.xml)之类的中对 bean 的描述

蓝凌OA未授权分析

获取到 bean 对应的完整类名,定位该类,注意:在许多OA等项目中,通常习惯把Java等代码文件打包为jar放在Lib目录,还有就是通常这类Java相关的文件存在在WEB-INF目录下,我们只需要使用IDEA打开WEB-INF目录,然后把lib目录(不一定叫lib,注意观察具体是哪一个目录存放的JAR文件)Add as Library

蓝凌OA未授权分析

直接全局搜索 sysFormulaSimulateByJS 定位该类对应的定义

蓝凌OA未授权分析

蓝凌OA未授权分析

回到最开始的POC请求接口处,可以看到这里通过 getBean 获取到类实例对象后接着调用了 getDataList 方法,问题也就是在这个方法中。

蓝凌OA未授权分析

来着对应的类定义中查看其方法实现,注意这里的 this.formulaSimula 方法调用。

蓝凌OA未授权分析

蓝凌OA未授权分析

注意如下代码,也就是上图中81-82行代码.

FormulaParser parse = FormulaParserByJS.getInstance(returnData, new SysFormulaSimulateByJS.SimulateVarGetter((SysFormulaSimulateByJS.SimulateVarGetter)null), (String)null);result = parse.parseValueScript(script, type);

跟进 parseValueScript 方法分析

蓝凌OA未授权分析

继续 parseValueScript 方法分析

蓝凌OA未授权分析

蓝凌OA未授权分析

恶意代码被拼接到了 m_script 变量中,我们再看看这个变量流入了哪些地方

蓝凌OA未授权分析

注意这里,可以看到流入了 interpreter.eval 这个方法中,我们看看这个 interpreter.eval 方法

蓝凌OA未授权分析

根据方法属实类的类名定位看了逻辑挺多,这个包不像是该 OA 自写的,所以百度该报发现原来这个包的 eval 方法可以实现Java代码动态执行,其实就是我们熟知的Beanshell

蓝凌OA未授权分析

蓝凌OA未授权分析

蓝凌OA未授权分析

最终也是该处导致代码执行。

结语

其实还存在一处同类型漏洞接口,且整个漏洞产生于该文件的产生点一模一样。

原文始发于微信公众号(安全之道):蓝凌OA未授权分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月2日23:39:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   蓝凌OA未授权分析https://cn-sec.com/archives/2496688.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息