漏洞等级:中危 低于2019年的漏洞等级 涉及到未授权漏洞 这些漏洞已经影响到了多数用户,目前OA也给出了相应的补丁,漏洞细节尚未公布,以下是漏洞分析结果
简介
远程办公自动化是一套办公协作软件。最近,阿里云应急反应中心捕获了一些利用远程 OA 文件上传和权限绕过漏洞的剥削性示例。由于远程 OA 较旧版本的一些接口未经授权,以及对某些功能的过滤不足,攻击者可以上传恶意脚本文件,而无需通过构建恶意请求登录来控制服务器。一些远程 OA 官员为该漏洞提供了修补程序,其细节尚未公开。
首先,我们可以看到,这首先是一个未经授权的访问漏洞,然后结合使用任意文件上传漏洞。
当然,这个未经授权的访问漏洞非常好,所以首先分析漏洞。
补丁下载
可以在官方网站上下载一个远程办公软件,当然是 2020 年 10 月的补丁,可能是云弄错了。你为什么突然把它更新得像僵尸诈骗一样?
远程安装包
百度破解了版本,只能这么做。
补丁分析
首先,我们分析补丁已经改变了什么。这就是重点。
com.seeyon.ctp.common.spring.CTPHandlerInterceptor


CTPHandlerInterceptor 可以与 Filter 的春季版本进行比较,对某些请求进行过滤。如我们所见,如果 url 出现 "./"、".#"
,则直接拦截请求。因此,让我们分析一下请求过程。
boolean isAjax = "/ajax.do".equals(uri);
String url = uri;
String queryStr = request.getQueryString();
if (queryStr != null) {
url = uri + "?" + queryStr;
}
String ignoreUrl = url;
if (isAjax) {
String serviceName = request.getParameter("managerName");
String methodName = request.getParameter("managerMethod");
ignoreUrl = serviceName + "." + methodName;
}
CTPHandlerInterceptor 首先确定它是否是 Ajax 请求,也就是说,url 是否包含 ajax.do。
记住变量 crereUrl,然后对其进行分析
if (!needlessUrl && !User.isIgnoreUrl(ignoreUrl, request, response)) {
boolean state = this.checkSessionPre(request, response, handler.getClass().getCanonicalName(), isAjax);
if (!state) {
return state;
}
User.validateResource(url, true);
}
User.isIgnoreUrl 方法的作用主要是基于不光彩的 url 是否需要将用户重定向到登录页面。当然,一些 Ajax 请求不需要登录,这给我们提供了一个利用的机会。以下是 isIgnoreUrl 的简化代码。

我们可以直接分析哪里生成了 crereUrl 列表。

也就是说,只要我们的 myreUrl 是关系图的内容,我们就可以绕过登录。
请参阅这里,结合上面的修补程序 diff 内容,您了解这个漏洞是什么吗?
该漏洞是为了绕过登录和访问受保护的接口,包括(但不限于)文件上传接口。因此,当局未经授权就直接修复了漏洞。您可以将其比作对 WebLogic 的未经授权访问,造成漏洞的原因实际上是相似的。
因此,在 Internet 上共享一个示例,即未经授权访问与任意文件一起上传的 getshell。
Poc
/seeyon/autoinstall.do.css/..;/ajax.do?method=ajaxAction&managerName=formulaManager&requestCompress=gzip
请登录后发表评论
注册
社交帐号登录