0

0

代码审计 | Zoho 从未授权访问到远程 RCE

蓮花仙者

蓮花仙者

发布时间:2025-06-26 12:02:39

|

1029人浏览过

|

来源于php中文网

原创

zoho manageengine servicedesk plus(sdp)是美国卓豪(zoho)公司的一款基于 itil 架构的 it 软件。这款软件涵盖了事件管理、问题管理、资产管理、it项目管理以及采购与合同管理等多种功能模块。

该系统主要在国外使用,例如通过 fofa 的查询可以看到:

代码审计 | Zoho 从未授权访问到远程 RCE接下来,我们来分析 CVE-2021-44077 漏洞的起因,从未授权访问开始。

0x01 未授权访问根据 Web.xml 文件,可以看到 RestAPI 的请求将由 struts 处理:

  
    action
    org.apache.struts.action.ActionServlet
  
  
    action
    /RestAPI/*
  

此外,还有一段配置,根据注释可以看出,以下 URL 需要登录认证,例如 xxx.do:

    
      
        Secured Core Context
        *.do
        /app
        /ui/*
        *.cc
        *.ls
        /SoftwareFileUploader.up
        /WOResolutionFileUploader.up
        *.json
        *.jsp
        /servlet/*
        /ze/*
        /aplusinteg
        /RestAPI/WC/TwoFactorAction
      
      
        *
      
    

同时,还配置了一些不需要登录的 URL:

  
    
      Secured Core Context
      /approval/*
      /purchase/ApprovalDetails.jsp
      /jsp/AuthError.jsp
      /AuthError.jsp
      /jsp/pagenotfound.jsp
      /jsp/exceptionerror.jsp
      /ze/*
      /servlet/HdFileDownloadServlet
      /workorder/CloseWorkOrder.jsp
      /PurchaseRequestFileUploader.up
      /PurchaseOrderFileUploader.up
      /workorder/SDPOutlookAddIn.jsp
      /j_security_check
      /RestAPI/TwoFactorAction
    
  

在代码 org.apache.catalina.realm.RealmBase#findSecurityConstraints 中使用了上述配置信息。

然而,令人困惑的情况是,当构造 /RestAPI/ImportTechnicians 这种不在上述配置中的请求时,是否需要登录呢?

通过调试发现如下图所示,在经过 findSecurityConstraints 的一系列匹配后,由于没有匹配成功,最终返回 null。程序进入 if 语句块,继续执行下一个管道操作,因此 /RestAPI/ImportTechnicians 无需认证。同理,类似 /RestAPI/xxxx 的访问接口也无需认证。

黑点工具
黑点工具

在线工具导航网站,免费使用无需注册,快速使用无门槛。

下载

代码审计 | Zoho 从未授权访问到远程 RCE代码审计 | Zoho 从未授权访问到远程 RCE代码审计 | Zoho 从未授权访问到远程 RCE0x02 任意文件上传在 com.adventnet.servicedesk.setup.action.ImportTechniciansAction#execute 中有一个明显的文件写入操作,且文件内容来自上传表单。

代码审计 | Zoho 从未授权访问到远程 RCE根据配置文件,可以构造相应的请求,执行后会在 bin 目录下保存上传的文件。

  
    
    
    
  

代码审计 | Zoho 从未授权访问到远程 RCE0x03 命令执行在 com.manageengine.s247.util.S247Util#installAgentProgress 中调用 bin 目录下的 msiexec.exe,结合刚才的文件上传,因此可以上传一个名为 msiexe.exe 的文件,然后调用该接口。

代码审计 | Zoho 从未授权访问到远程 RCEinstallAgentProgress 在 com.manageengine.s247.actions.S247Action#s247AgentInstallationProcess 这个 action 中被调用。

代码审计 | Zoho 从未授权访问到远程 RCE最后,将未授权访问和文件上传结合起来,就可以完成一次未授权的命令执行。

代码审计 | Zoho 从未授权访问到远程 RCE总结寻找未授权访问原因时花了一些时间,最初以为是在 Filter 中进行的鉴权,但排查了几个 Filter 后没有发现。接着一步步调试,最终发现是在 Tomcat Pipeline 机制中进行的鉴权。反复对比配置文件,也没找出配置错误的点,因为它不仅配置了需要认证的 URL,也配置了不需要认证的 URL,这让我迷惑了许久,算是踩了一个大坑。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

114

2023.10.26

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

169

2024.02.23

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

97

2024.02.23

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

162

2024.02.23

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

151

2024.02.23

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

198

2024.02.23

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

233

2024.02.23

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

160

2024.02.23

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

31

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

微信小程序开发之API篇
微信小程序开发之API篇

共15课时 | 1.2万人学习

Laravel---API接口
Laravel---API接口

共7课时 | 0.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号