当前位置:首页 > 生活百科

struts2文件上传步骤(struts2实现文件上传功能)

栏目:生活百科日期:2025-04-09浏览:0

继3月6日struts2爆出漏洞S2-045后,今天又爆出一个漏洞。Struts2官方已经确认该漏洞(S2-046),并定级为高危漏洞。S2-046漏洞的报告者来自三家:qualcomm(高通)、dbappsecurity(杭州安恒)、HPE(惠普企业)。

Struts2的使用范围及其广泛,国内外均有大量厂商使用该框架。

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

漏洞分析

使用Jakarta插件处理文件上传操作时可能导致远程代码执行漏洞。

使用恶意的Content-Disposition值或者使用不合适的Content-Length头就可能导致远程命令执行。该漏洞与S2-045(CVE-2017-5638)相似,但使用了不同的攻击向量。

触发漏洞需要满足的条件:

JakartaStreamMultipartRequest已开启。也就是说,Struts2需要通过Jakarta stream parser配置(非默认)。在Struts2配置文件中检查&<constant name=”struts.multipart.parser” value=”jakarta-stream” /&>

上传的文件大小根据Content-Length头的声明要大于Struts2默认允许的2GB大小

文件名中包含OGNL payload

漏洞的危害

攻击者可通过修改HTTP请求头部中的Content-Length字段大于Struts2允许的最大值(2GB),并修改Content-Disposition中的filename字段构造恶意代码利用该漏洞,在受影响服务器上执行系统命令,进一步可完全控制该服务器,造成拒绝服务、数据泄露、网站遭篡改等影响。由于该漏洞利用所需组件默认启用,因此漏洞危害较为严重

漏洞检测

通过以下方式进行检测:

查看web目录下/WEB-INF/lib/目录下的struts2-core-x.x.x.jar文件,如果x代表的版本号在2.3.5到2.3.31以及2.5到2.5.10之间且未修改默认配置则存在漏洞。

解决方案

目前网上已经有人公开了漏洞POC,为了保护您的资产安全,请按照下面方法及时修复该漏洞。

S2-046PoC如下:

1. 严格过滤Content-Typefilename里的内容,严禁ognl表达式相关字段

2. 如果你正在使用基于Jakarta的文件上传Multipart解析器,请将Apache Struts升级到2.3.32或2.5.10.1。

3. 和先前的漏洞一样,也有相应的变通方案,即采用其他Mutipart解析器实施方案。Apache也提供2个插件作为解决方案(通过链接:
https://github.com/apache/struts-extras了解)——如果使用的是Apache Struts 2.3.8 – 2.5.5或者2.3.20 – 2.5.5版本,即可采用该解决方案。

4. 另外也可以从堆中移除File Upload Interceptor,定义自有堆并设为默认,该解决方案针对Struts2.5.8 – 2.5.10有效。

“struts2文件上传步骤(struts2实现文件上传功能)” 的相关文章

互联网怎么创业,互联网最挣钱82项目

互联网创业一直是被很多人看好的创业模式,在互联网发达的今天,互联网创业者可以说是无所不在,。因为互联网创业投入少,成本低,相比传统生意创业要简单,但是互联网创业...

坚果pro参数详细(坚果手机体验)

有些人天生自带光环,这句话来形容锤子科技也不为过。锤子科技每次召开发布会,都是国内手机圈的一大盛事,吸引无数目光。锤子科技的话题性之所以那么高,可能是因为自带聚...

加盟开一家2元店需要多少钱(开两元店进货攻略)

伴随着经济社会的发展,如今想要创业的人在不断增加,如果你前期没有太多资金支持的情况下,我们可以先从小本生意开始做起。就比如当下非常火爆的两元店,因为这种店铺当中...

html文件制作工具(手机编写html5软件)

这次我们更进一步,在这篇文章中,我们将构建一个简单的CLI,允许用户生成HTML页面。我们首先要生成一个标准的空白页面,然后让用户输入参数,比如文件名和标题,先...

tplink网站是多少(tplink的wifi网速太慢的原因)

TPlink无线路由器的设置方法图解首先第一步先连接上你的路由器,也可以手机连上你的WIFI信号,再打开浏览器,在网址栏输入路由器的网关默认IP地址为19231...

5位水表怎么看吨数m3要怎么算(2分钟学会看各种水表)

您知道水表是怎么看的吗?水表上的数字分别代表什么呢?今天蜜罐蚁小编给大家介绍下有关水表方面的知识,很多网友不知道家里的水表怎么看,不知道家里水表用了多少吨水,应...

cdr文件用什么打开手机,快速查看Coreldraw文件版本的方

【快速快看CDR版本、无需安装CDR软件,正确打开方式】由于CorelDraw版本众多,有时候客户发过来的CDR文件无从判断是什么版本,于是乎,网上就有专门的C...

lol一直重新连接进不去怎么办(lol游戏一直重新连接的解

传说联盟是由美国开发的计算机端竞争游戏,其中有数百个英雄和排名系统,这些系统受到许多球员的欢迎.一些使用Win7系统的用户也想玩League的联盟,但在下载安装...

个人如何开发小程序,微信小程序开发入门教程

小程序越来越火,现在个人也能制作自己的小程序了,但是你知道怎么做,要注意什么吗?接下来就跟大计科普一下小程序个人开发的两种方法,以及个人开发微信小程序都要注意什...

企业网站程序制作过程(免费企业网站模板和建站方法)

偶然机会看到PbootCMS这个程序,对做一般的企业站,简直真的是简单到想哭,开发者有心了,免费开源。这个程序基本上每个月都更新,最近的更新:V1.4.207月...