0%

漏洞原理

要求开发者模式,且poc第一个参数是debug,触发点在DebuggingInterceptor上,查看intercept函数,从debug参数获取调试模式,如果模式是command,则把expression参数放到stack.findValue中,最终放到了ognl.getValue中

影响版本

Struts 2.0.0 - 2.3.15.1

阅读全文 »

漏洞原理

Struts2的标签库使用OGNL表达式来访问ActionContext中的对象数据。为了能够访问到ActionContext中的变量,Struts2将ActionContext设置为OGNL的上下文,并将OGNL的跟对象加入ActionContext中。
在Struts2中,如下的标签就调用了OGNL进行取值。

阅读全文 »

漏洞原理

在使用基于Jakarta插件的文件上传功能时,有可能存在远程命令执行,导致系统被黑客入侵。恶意用户可在上传文件时通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令。

影响版本

Struts2.3.5 – 2.3.31 Struts2.5 – 2.5.10

阅读全文 »

漏洞原理

Apache Struts 1插件的Apache Struts 2.3.X版本中存在远程代码执行漏洞,该漏洞出现于Struts2的某个类中,该类是为了将Struts1中的Action包装成为Struts2中的Action,以保证Struts2的兼容性。在Struts2中的Struts1插件启用的情况下,远程攻击者可通过使用恶意字段值,构造特定的输入,发送到ActionMessage类中,从而导致任意命令执行,进而获取目标主机系统权限

影响版本

Apache Struts 2.3.x系列中启用了struts2-struts1-plugin插件的版本

阅读全文 »

漏洞原理

Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,可被远程攻击。

影响版本

Struts 2.1.2 - Struts 2.3.33
Struts 2.5 - Struts 2.5.12

阅读全文 »

漏洞原理

Struts2在使用Freemarker模板引擎的时候,同时允许解析OGNL表达式。导致用户输入的数据本身不会被OGNL解析,但由于被Freemarker解析一次后变成离开一个表达式,被OGNL解析第二次,导致任意命令执行漏洞。

影响版本

Struts 2.0.1-2.3.33
Struts 2.5-2.5.10

阅读全文 »

漏洞原理

alwaysSelectFullNamespace为true。
action元素没有设置namespace属性,或者使用了通配符。
命名空间将由用户从url传递并解析为OGNL表达式,最终导致远程代码执行漏洞

影响版本

Struts 2.3–2.3.34
Struts2.5–2.5.16

阅读全文 »

漏洞描述

Apache Struts于2020年8月13日披露 S2-059 Struts 远程代码执行漏洞(CVE-2019-0230),在使用某些tag等情况下可能存在OGNL表达式注入漏洞,从而造成远程代码执行,风险极大。腾讯安全专家提醒Apache Struts用户尽快升级到2.5.22或以上版本,避免遭遇黑客攻击。

Apache Struts2框架是一个用于开发Java EE网络应用程序的Web框架,应用十分广泛。

影响版本

Apache Struts 2.0.0 - 2.5.20

阅读全文 »

漏洞原理

当Struts2开启devMode模式时,将导致严重远程代码执行漏洞。如果WebService 启动权限为最高权限时,可远程执行任意命令,包括关机、建立新用户、以及删除服务器上所有文件等等。

影响版本

当Struts开启devMode时,该漏洞将影响Struts 2.1.0–2.5.1,通杀Struts2所有版本。

阅读全文 »

漏洞概述

Apache+Tomcat 是很常用的网站解决方案,Apache 用于提供 web 服务,而 Tomcat 是 Apache 服务器的扩展,用于运行 jsp 页面和 servlet。Tomcat 有一个管理后台,其用户名和密码在 Tomcat 安装目录下的 conf\tomcat-users.xml 文件中配置,不少管理员为了方便,经常采用弱口令。 Tomcat 支持在后台部署 war 包,可以直接将 webshell 部署到 web 目录下,如果 tomcat 后台管理用户存在弱口令,这很容易被利用上传 webshell。

知识点:什么是war包

war 包是一种打包格式
Java web工程,都是打成war包,进行发布,打成war包的好处是不会缺少目录,并且只管理好一个发布文件就好,并且tomcat服务器能够自动识别,将war包放在tomcat容器的webapps下,启动服务,即可运行该项目,该war包会自动解压出一个同名的文件夹。
war 包的结构(是一个web 项目编译后的结果)

阅读全文 »