免责声明
本公众号所发布的所有内容,包括但不限于信息、工具、项目以及文章,均旨在提供学习与研究之用。所有工具安全性自测。如因此产生的一切不良后果与文章作者和本公众号无关。如有涉及公司与个人敏感信息,侵权烦请告知,我们会立即删除并致歉。
补丁分析
https://service.seeyon.com/patchtools/tp.html#/patchList?type=安全补丁&id=178
从官方下载补丁后,发现打补丁文件为com.xxx.xxx.form.util.CapUtil.class,将该文件与源文件进行对比分析后,发现其writeFile方法中新增加了对路径和文件后缀的校验,由此推断漏洞点在writeFile方法。
writeFile方法传入3个参数,分别是文件目录、文件名、文件内容,打补丁前未对路径和文件后缀进行校验。
漏洞分析
搜索调用CapUtil.writeFile方法的地方,发现在CAP4FormDesignManagerImpl类的generateInfopath方法中调用了,且这个方法传入的参数也未进行过滤。
这个方法接受一个Map参数,检测是否包含files键,files是一个列表,遍历files列表,列表中的 fileName就是文件名, fileContent就是文件内容。
CAP4FormDesignManagerImpl类是会在beanCacheMap中缓存好的对象,其对应的名字是cap4FormDesignManager。
通过ajax.do来调用:ajax.do?method=ajaxAction&managerName=cap4FormDesignManager&managerMethod=generateInfopath
这里还需要注意的是,调用generateInfopath方法是有权限限制的,登录后的用户需要有公文管理员或表单管理员权限。
漏洞利用
关注回复“20241016”获取POC。
漏洞修复
更新补丁:https://service.seeyon.com/patchtools/tp.html#/patchList?type=安全补丁&id=178
原文始发于微信公众号(良月安全):[漏洞分析]某远OA后台表单导入任意文件写入漏洞
原文始发于微信公众号(良月安全):[漏洞分析]某远OA后台表单导入任意文件写入漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论