九、【漏洞复现】Struts 2 远程代码执行漏洞s2-046(CVE-2017-5638)

2023-09-22 15:38:25

九、【漏洞复现】Struts 2 远程代码执行漏洞s2-046(CVE-2017-5638)

9.1、漏洞原理

Struts 2是一个基于MVC设计模式的Web应用框架,本质上相当于一个Servlet,在MVC设计模式中,Struts2作为控制器来建立模型与视图进行数据交互。  攻击者通过发送恶意构造的HTTP数据包利用该漏洞(通过构造HTTP请求头中的Content-type)在服务器上执行系统命令,进一步完全控制该服务器,造成拒绝服务,数据泄露,网站篡改等后果。  该漏洞无需任何前置条件(如开启dmi,debug等功能),以及启用任何插件,危害较为严重。 

9.2、影响范围

Struts 2.3.5 – Struts 2.3.31 Struts 2.5 – Struts 2.5.10

不受影响的版本 Struts 2.3.32 Struts 2.5.10.1 

9.3、框架识别

主要使用定向漏洞检测工具或使用Goby、AWVS、指纹识别类平台识别 

快速检测方式

使用知道创宇SeeBug​​照妖镜​​可以直接检测站点是否存在本漏洞

9.4、漏洞复现

直接上工具

9.5、修复建议

  1. 更新Apache Struts2框架至最新版本,该版本已修复了该漏洞。
  2. 如果无法立即更新,可以将以下代码添加到struts.xml文件中的<constant>标签中,以禁用OGNL表达式:

<constant name="struts.ognl.allowStaticMethodAccess" value="false" />

  1. 配置Web应用程序的防火墙以阻止所有非必要的流量。
  2. 监控Web应用程序的日志文件和网络流量,以检测任何异常活动。
  3. 在应用程序中使用安全编码实践,例如输入验证和输出编码,以减轻其他漏洞的风险。
  4. 定期进行漏洞扫描和安全审计,以确保应用程序的安全性。
更多推荐

CodeTON Round 6 (Div. 1 + Div. 2, Rated, Prizes!)

A.MEXanizedArrayAC代码:#include<iostream>#include<algorithm>#include<cstring>usingnamespacestd;constintN=210;inta[N];intn,k,x;voidsolve(){cin>>n>>k>>x;if(x<k-1){c

vue-cli-service build 不同环境的配置

目录🤜背景🤜vue-cli-service介绍🤜环境变量和模式🤜配置不同模式🤜index.html使用环境变量🤜验证🤜参考资料🤜背景在项目部署时,我们需要在测试环境和生产环境使用不同的变量。vue-cli提供了vue-cli-servicebuild打包命令,然而vue-cli-servicebuild

如何安装 Wnmp 并结合内网穿透实现外网访问内网Wnmp 服务

文章目录前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1注册账号3.2下载cpolar客户端3.3登录cpolarwebui管理界面3.4创建公网地址4.固定公网地址访问前言WNMP是Windows系统下的绿色Nginx+Mysql+PHP环境集成套件包,安装完成后即可得到一个Nginx+My

APP广告变现策略:如何实现盈利与用户体验的平衡?

如何把握流量变现和用户体验的平衡呢?这是许多APP开发者在商业化进程中都会关心并迫切需要解决的问题。以下是总结的一些方法和策略。一、深入了解用户需求在开发产品或进行商业决策时,我们要始终以用户需求为出发点。通过市场调研、用户调研和数据分析等方式,我们可以深入了解用户的需求和习惯,并以此为基础进行产品设计和优化。二、优化

文案内容千篇一律,软文推广如何加深用户印象

随着互联网技术的发展,企业营销的方式逐渐转向软文推广,但是现在软文推广的内容同质化越来越严重,企业应该如何让自己的软文推广保持差异性,在用户心中留下独特的印象呢?下面就让媒介盒子告诉你。一、&nbsp;找出产品独特卖点市场上同一类型的产品,缺点各有各的不同,但优点大同小异,因此我们需要找出产品独特卖点,将其表现出来,在

能进大厂?阿里云ACE认证到底有多香!

中国云计算火爆的当下,阿里云一枝独秀,市场占有率比排名后5名的总和还要多。在全球的云计算市场上,阿里云也是排名第三,超过谷歌云。这足以说明了市场对于阿里云产品解决方案的需求之大。而阿里云云计算架构师ACE认证是针对云架构师,解决方案架构师,云运维专家等技术人员的阿里云高级别技术认证。该认证体系已被阿里巴巴集团、交付伙伴

安卓恶意应用识别(三)(批量反编译与属性值提取)

前言上篇说到对安卓APK反编译,本篇实现批量反编译和批量特征提取及计算,主要就是通过python代码与cmd进行批量化交互,我在写文章之前,尝试批量下载了安卓apk(大约10来个),发现现在这个应用软件不是一般的大啊,无奈电脑内存不太够,现仅将已下载10个apk作为示例展示。1.批量反编译思路是这样:第一步:调用cmd

一文熟悉Latex论文排版

相信计算机专业或者写过专业论文的同学都知道,使用Office或者WPS来控制论文的格式有多么复杂和繁琐,甚至有时候花在改论文格式上的时间甚至超过了写论文的时间,因此我们急需要使用一种更加专业实用的排版工具来满足我们的论文排版需求,因此,Latex应运而生!1.LaTex概述LaTex是一个专业的排版工具,LaTex在世

窜货采买第三方怎么选择

窜货溯源服务听起来并不难,无非就是买货,但是否能买到货,同时在买到之后能否顺利完成溯源工作,也是非常有学问的,很多品牌会选择第三方服务商进行采买合作,这样可以规避品牌自己操作时的不合规性,因为自查如果不严谨的话,是容易造成“假数据”的,所以类似窜货采买这种涉及较多面的治理动作,与第三方合作会更加正确。要看第三方是否有相

RabbitMQ —— 延迟队列

前言前面荔枝梳理了有关死信队列的知识,延伸过来我们可以借助死信队列来理解延时队列。在实际需求中我们总是不可避免地需要一些定时任务,为了避免大量的计时操作消耗性能,我们常常采用的是延时队列来存储相应的消息,这时候死信队列的特点就出现了,死信队列使用的一个前提就是消息的TTL过期。在这篇文章中,荔枝会梳理延迟队列的相关知识

记RestTemplateBuilder奇诡的坑

前言在紧张的开发工作中,总能遇到一些奇怪的问题。今天的主角是RestTemplateBuilder。问题描述由于某些原因,我需要一个不检查HTTPS证书的RestTemplate。但是不管我怎么搞,就是依然会被检查到证书而抛出请求异常!在构建RestTemplate时,我使用了RestTemplateBuilder.(

热文推荐