zoho manageengine servicedesk plus(sdp)是美国卓豪(zoho)公司的一款基于 itil 架构的 it 软件。这款软件涵盖了事件管理、问题管理、资产管理、it项目管理以及采购与合同管理等多种功能模块。
该系统主要在国外使用,例如通过 fofa 的查询可以看到:
接下来,我们来分析 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 的访问接口也无需认证。
代码小浣熊
代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节
51 查看详情


0x02 任意文件上传在 com.adventnet.servicedesk.setup.action.ImportTechniciansAction#execute 中有一个明显的文件写入操作,且文件内容来自上传表单。
根据配置文件,可以构造相应的请求,执行后会在 bin 目录下保存上传的文件。
0x03 命令执行在 com.manageengine.s247.util.S247Util#installAgentProgress 中调用 bin 目录下的 msiexec.exe,结合刚才的文件上传,因此可以上传一个名为 msiexe.exe 的文件,然后调用该接口。
installAgentProgress 在 com.manageengine.s247.actions.S247Action#s247AgentInstallationProcess 这个 action 中被调用。
最后,将未授权访问和文件上传结合起来,就可以完成一次未授权的命令执行。
总结寻找未授权访问原因时花了一些时间,最初以为是在 Filter 中进行的鉴权,但排查了几个 Filter 后没有发现。接着一步步调试,最终发现是在 Tomcat Pipeline 机制中进行的鉴权。反复对比配置文件,也没找出配置错误的点,因为它不仅配置了需要认证的 URL,也配置了不需要认证的 URL,这让我迷惑了许久,算是踩了一个大坑。
以上就是代码审计 | Zoho 从未授权访问到远程 RCE的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/481382.html
微信扫一扫
支付宝扫一扫