前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Struts2远程代码执行漏洞S2-052 复现&防御方案

Struts2远程代码执行漏洞S2-052 复现&防御方案

作者头像
ChaMd5安全团队
发布于 2018-03-29 04:20:03
发布于 2018-03-29 04:20:03
1.3K00
代码可运行
举报
文章被收录于专栏:ChaMd5安全团队ChaMd5安全团队
运行总次数:0
代码可运行

0x00 前言

2017年9月5日晚间,Apache官方发布Struts 2紧急漏洞公告(S2-052),

https://cwiki.apache.org/confluence/display/WW/S2-052,漏洞编号为CVE-2017-9805,因为Struts2 REST插件的XStream组件存在反序列化漏洞,导致远程代码执行。Struts 2.5 - Struts 2.5.12版本都会受到该漏洞影响,这个漏洞危险级别被定义为严重级别。

0x01 复现

1. 从struts2的官网下载最后受影响的版本struts-2.5.12,地址: http://archive.apache.org/dist/struts/2.5.12/struts-2.5.12-apps.zip

下载完成之后,解压压缩文件,将其中app目录下的struts2-rest-showcase.war文件放到tomcat的webapps目录下。

2. 访问浏览器http://127.0.0.1:8080/struts2-rest-showcase/页面,会显示图中的页面,选择一个ID,点击编辑。

3. 进入编辑页面,点击submit按钮,burpsuite抓包拦截此数据。

请求,将请求中的Content-Type的值改为 application/xml

然后POST的数据用如下xml内容代替。

4. 重放数据包,成功弹出计算器。

0x02 防御方案

方案一

升级Struts到2.5.13最新版本

方案二

.如果系统没有使用Struts REST插件,那么可以直接删除Struts REST插件,或者在配置文件中加入如下代码,限制服务端文件的扩展名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<constant name=”struts.action.extension” value=”xhtml,,json” />
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ChaMd5安全团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
nginx配置ssl证书实现https
SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
后端码匠
2020/08/21
7.8K0
nginx配置ssl证书实现https
Nginx怎么实现https?Nginx 安装 SSL 配置 HTTPS 超详细完整全过程
文章来源:Nginx怎么实现https?Nginx 安装 SSL 配置 HTTPS 超详细完整全过程
尊托云数
2019/09/27
5.9K0
Nginx怎么实现https?Nginx 安装 SSL 配置 HTTPS 超详细完整全过程
Nginx学习日志(四)自定义404,500,502,503等错误页面
通常在项目当中会自定义项目的错误界面,当请求不对或者请求错误什么的就会返回一个对用户比较友好的提示界面。
海加尔金鹰
2020/06/09
5.3K0
实战:第二十四章:ip:port改成域名的方式,并将http自动转https
第一步:获取SSL证书 11种免费获取SSL证书的方式:https://www.toolmao.com/1069.html 我选择的是阿里云的SSL免费版
Java廖志伟
2022/09/28
1.1K0
实战:第二十四章:ip:port改成域名的方式,并将http自动转https
docker安装nginx并配置https
配置完后,访问example.com、www.example.com 的请求会被转发到服务器的8090端口
Java那些事儿
2020/07/21
15.9K3
docker安装nginx并配置https
腾讯云SSL证书获取及Nginx配置教程
很多人应该都有属于自己网站,刚开始基本是只能用http进行访问,无法使用https安全访问,但是随着网络安全意识的不断提高,越来越多的网站开始使用HTTPS协议来保护用户的数据安全,SSL证书是实现HTTPS协议的关键组件,本文将讲解如何在腾讯云上获取SSL证书,并配置到Nginx服务器上。
小明爱吃火锅
2024/04/25
2.3K0
腾讯云SSL证书获取及Nginx配置教程
博客搭建(三):域名配置及SSL证书配置
> 现在大多数网站都支持 https 连接,而且 chrome 浏览器要求网站必须提供 https 连接,否则会提示警告(此网站不安全),所以说以后网站支持 https 连接是必不可少的。
子晋
2022/01/18
8960
https配置
SSL证书的部署类型又分为了单域名、多域名、通配符等类型,比如使用的是OV通配符证书,也就是一张证书可以保护 *.baidu.com 下的所有二级子域名
老梁
2019/09/10
2.6K0
https配置
ssl证书部署
最近项目上需要使用ssl证书,部署起来也很简单 通过docker 运行nginx 容器
用户9347382
2022/01/10
4.1K0
配置Nginx及安装SSL模块
Nginx是一个反向代理服务器。Nginx不仅可以部署网站,还可以用于配合WAF进行端口监听,如果某项目端口被该项目持续监听,同时防火墙设置拒绝外网访问该端口,Nginx可以将允许外网连接的自定义端口(未处于被监听状态,其它项目可监听该端口)访问请求转发至防火墙拒绝外网访问的端口,因为Nginx转发数据全程是在内网进行。
小新笔记坊
2024/03/12
1.7K0
使用Let's Encrypt的SSL证书配置HTTPS手记
前段时间,看见很多大会都在分享全站HTTPS的经验。HTTPS固然好,前提是SSL证书,并且签发证书的机构要靠谱。沃通的CA证书就相继被Mozilla和Google封杀了。曾经对于普通用户,权威,安全,并且免费的证书无疑就像天上的星星,可望而不可及。现在,这些星星变成了馅饼掉了下来。没错,我们可以申请安全免费的ssl证书--- Let's Encrypt。 Let’s Encrypt是电子前哨基金会(EFF)发布的免费 SSL 证书服务,Google,Mozilla和Microsoft都极力支持。很早之前就
李海彬
2018/03/19
2.6K0
使用Let's Encrypt的SSL证书配置HTTPS手记
在Nginx服务器上安装SSL证书
原因是nginx缺少SSL模块,需要重新将SSL模块添加进去,然后再启动nginx:
布禾
2020/10/29
2.3K0
在Nginx服务器上安装SSL证书
https之ssl证书配置前端+后端(koa)
原文文档:https://cloud.tencent.com/document/product/400/35244
biaoblog.cn 个人博客
2022/08/28
3K0
Centos 7安装nginx并配置https[通俗易懂]
如果启动出现:nginx: [emerg] getpwnam(“www”) failed
全栈程序员站长
2022/09/01
5.2K0
Centos 7安装nginx并配置https[通俗易懂]
Centos7安装Nginx教程,一步安装http和https
nginx是一款轻量级web服务器,主要有负载均衡和反向代理的特性。 安装准备 nginx一些模块需要依赖lib库,所以先安装lib库,执行以下命令: [root@localhost local]# yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel 下载 在官网下载安装包 安装 解压文件: tar -zxvf nginx-1.20.2.tar.gz 解压之后进入到nginx目录: cd ng
用户10384376
2023/02/26
8520
Centos7安装Nginx教程,一步安装http和https
nginx 环境下配置 ssl 证书 并301转跳https
linux 服务器安装ssl证书 [root@eisc_cn ~]# cat /www/server/panel/vhost/nginx/www.eisc.cn.conf server { listen 443 ssl; listen 80; # 需要同时监听 80 和 443端口,否则在转跳的时候出现无法访问 server_name www.eisc.cn eisc.cn; index index.php index.html index.htm default.php d
eisc
2021/04/01
1.6K0
Nginx服务器上安装SSL证书
若出现“–with-http_ssl_module”说明已经安装过,否则继续执行下列步骤
别团等shy哥发育
2023/02/25
3.4K0
Nginx服务器上安装SSL证书
宝塔配置SSL证书
特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!
收心
2022/12/10
1.6K0
MinIO+Nginx开启https域名访问
出现如上图所示,说明域名已经解析到对应的IP地址,会有人问:去哪里添加解析,答:去购买域名的厂商控制台,比如你的域名是阿里云注册的,就登陆阿里云控制台有相关解析操作流程
itze
2023/01/08
19.6K3
MinIO+Nginx开启https域名访问
如何导入SSL证书使网站支持https
无论你使用的使阿里云的云服务器还是腾讯云的云服务器,都支持免费申请ssl证书,这里以腾讯云为例介绍下如何申请ssl证书。
极简小课
2022/06/21
11.4K0
如何导入SSL证书使网站支持https
推荐阅读
相关推荐
nginx配置ssl证书实现https
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档