在 Apache Struts 2 框架中发现的一个新漏洞已被 NIST 国家数据库评为严重级别。
Struts 2 网络应用程序框架中的一个新漏洞有可能使远程攻击者在运行基于该软件早期版本的应用程序的系统上执行代码。
2025年07月06日
在 Apache Struts 2 框架中发现的一个新漏洞已被 NIST 国家数据库评为严重级别。
Struts 2 网络应用程序框架中的一个新漏洞有可能使远程攻击者在运行基于该软件早期版本的应用程序的系统上执行代码。
2025年07月06日
spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同。
spring mvc是基于方法的设计,sturts2是基于类设计的。
springmvc将url和controller方法映射。映射成功后springmvc生成一个Handler对象,对象中只包括了一个method。方法执行结束,形参数据销毁。springmvc的controller开发类似service开发。strts2每次请求都会实例一个action,每个action都会被注入属性。spring mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring mvc中,一个方法对应一个request上下文。而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通过setter getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。
2025年07月06日
近日,在Struts 2上发现了一个严重的远程代码执行漏洞(CVE-2016-3081)。在用户开启动态方法调用的情况下,会被攻击者实现远程代码执行攻击。
2016年4月21日Struts2官方发布了两个CVE,其中就有CVE-2016-3081,且官方评级为高。据悉,国内开启这个功能的网站不在少数,因此这个“Possible Remote Code Execution”漏洞的被打的可能性很高。
Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与 ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。
2025年07月06日
2016年4月26日Struts2官方发布了Apache Struts 2任意代码执行漏洞(CVE-2016-3081, S02-32),该漏洞主要原因为在开启动态方法调用(DMI)的情况下,黑客可以利用漏洞直接执行任意代码,这一漏洞影响的软件版本为2.3.20-2.3.28,不过2.3.20.2、2.3.24.2两个版本除外,建议尽快升级到相应的最新版本,并关闭DMI。
这是自2012年Struts2命令执行漏洞大规模爆发之后,该服务时隔四年再次爆发大规模漏洞。
2025年07月06日
接中心技术支持企业绿盟通报,2017年9月5日,Apache Struts发布最新的安全公告,Apache Struts 2.5.x的REST插件存在远程代码执行的高危漏洞,漏洞编号为CVE-2017-9805(S2-052)。漏洞的成因是由于使用XStreamHandler反序列化XStream实例的时候没有任何类型过滤导致远程代码执行。
相关链接如下:
https://cwiki.apache.org/confluence/display/WW/S2-052
2025年07月06日
今天接着昨天的内容:
目标:使用反射知识取到配置在xml文件中的类
回顾昨天的内容:
为了不配置多个servlet,而采用一个ActionServlet来处理很多个请求,但是
单一的Servlet中存在大量的if….else if的判断,不利于开发维护,也不满足“分”的思想
如何解决?
解决方案:
2025年07月06日
《“爱读书”--给你讲技术》,我来看书,你来进步,让我们开始吧!
书名为《轻量级JavaEE企业应用实战》,是本人在学习JavaEE框架的时候阅读的第一本书,本书对于框架及相关基础知识讲述的比较详细和浅显,适合初学者和需要全面了解JavaEE知识的人群。
本文内容为本书第四章
2025年07月06日
本文以Struts2的官方工作原理图作为主线讲解(参考部分书籍与视频)
1.初始概念
struts2是web.xml进行配置的一个过滤器,当web项目启动的时候,这个过滤器就会生效。
2.web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>zzh</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>