struts2 代码执行 (CVE-2021-31805)
时间: 2024-06-30 21:00:54 浏览: 290
Struts 2是一个流行的Java Web应用程序框架,它允许开发人员使用MVC(模型-视图-控制器)架构构建Web应用。CVE-2021-31805是一个严重的安全漏洞,它被称为Struts2漏洞或“S2-057”,影响了Struts 2.3.28及更低版本。这个漏洞涉及到远程代码执行(RCE),攻击者可以通过发送恶意请求到受影响的应用中,利用此漏洞来执行任意代码。
漏洞细节:
- 该漏洞源于Struts 2中的文件上传功能,特别是当用户上传包含特殊字符的文件名,可能导致文件路径解析错误,从而绕过访问控制。
- 攻击者可以构造恶意的Action调用URL,通过文件上传字段将恶意脚本嵌入到服务器上,当处理这些请求时,脚本会被执行,从而获取系统权限或执行预定义的操作。
修复措施:
- 应尽快升级Struts 2到2.3.32或更高版本,因为官方发布了修复补丁。
- 对上传文件进行严格的验证和清理,避免使用可能被滥用的文件名解析。
- 使用安全的文件上传配置,如限制文件类型、大小和上传目录。
相关问题--
1. 这个漏洞是如何利用文件上传功能进行攻击的?
2. 如何检查我的Struts 2应用是否受到CVE-2021-31805影响?
3. 在应用升级后,如何配置安全策略来防止类似漏洞再次发生?
相关问题
CVE-2021-31805
CVE-2021-31805是一个远程命令执行漏洞,该漏洞是由于对CVE-2020-17530的修复不完整而引起的。CVE-2020-17530是由于Struts2对某些标签属性的属性值进行二次表达式解析而导致的漏洞。当这些标签属性中使用了%{x}并且x的值可被用户控制时,用户可以传入%{payload}来执行OGNL表达式。在CVE-2021-31805漏洞中,仍然存在部分标签属性会导致攻击者构造的恶意OGNL表达式执行,从而导致远程代码执行。该漏洞可能影响的版本有待进一步确认。
根据给出的引用信息,无法提供关于漏洞的具体细节或利用方式。请注意,这是一个安全漏洞,为了保护系统安全,建议及时修复该漏洞或采取相应的安全防护措施。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [apache stucts 2远程命令执行漏洞 (CVE-2021-31805) poc检测工具](https://download.csdn.net/download/weixin_59679023/85194448)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [S2-062 远程命令执行漏洞复现(cve-2021-31805)](https://blog.csdn.net/qq_44110340/article/details/124279481)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
cve-2021-44228复现
CVE-2021-44228是一个已知的安全漏洞,它影响了某些版本的Apache Struts框架。这个漏洞被称为Struts S2-057或Log4j RCE(远程代码执行),因为它是通过Log4j库中的某种注入攻击得以利用的。
复现CVE-2021-44228通常需要以下步骤:
1. 确认受影响的应用环境:检查你的应用是否使用了受影响的Apache Struts版本(如2.x)并且启用了Log4j 2.x作为日志管理器。
2. 检查是否存在漏洞利用条件:Log4j 2.x中存在一个设计错误,允许恶意的日志输入包含特殊格式的命令,这可能导致任意代码执行。
3. 创建恶意请求:构造一个包含特定Log4j 2.x漏洞利用payload的HTTP请求,该payload通常是`%XX%`格式,其中`XX`代表可执行命令的二进制编码。
4. 发送请求:通过工具(如curl、Postman或自动化脚本)向目标服务器发送包含恶意payload的GET、POST或其他类型的请求。
5. 检测结果:如果成功,你可能会观察到未经授权的操作或者服务器响应异常,这表明可能已经执行了远程代码。
请注意,这是一个高度技术性的过程,并且可能涉及到安全风险。实际操作中应遵循严格的渗透测试规则,避免对未经授权的目标进行攻击。
阅读全文