什么是 Struts2 框架
Struts 2 是一个用于创建企业级 Java 应用程序的开源框架。它是一个 MVC(模型-视图-控制器)框架,用于开发基于 Java EE(Java Platform, Enterprise Edition)的 Web 应用程序。Struts 2 主要解决了在动态 Web 应用程序中请求处理和用户界面表示分离的问题。
Struts 2 框架遇到了一些严重的安全漏洞:
这些漏洞可能导致各种安全攻击,包括但不限于远程代码执行(RCE)、跨站脚本攻击(XSS)、
跨站请求伪造(CSRF)等。以下是一些 Struts 2 框架中曾经出现过的著名漏洞:
1. 远程代码执行(RCE)漏洞:这是 Struts 2 框架中最严重的安全问题之一,它允许攻击者远程
执行服务器上的代码。这类漏洞通常是由于框架处理用户输入不当导致的,攻击者可以利用这些漏洞
执行任意代码, potentially leading to complete control over the affected system.
2. OGNL 表达式注入漏洞:Struts 2 使用 OGNL(Object Graph Navigation Language)作为其
表达式语言,不当的使用或验证不充分可能导致攻击者通过 OGNL 注入攻击访问受保护的属性或执行
恶意操作。
3. 文件上传漏洞:Struts 2 的文件上传功能可能存在缺陷,如未经验证的文件名、文件类型或文件
大小,可能导致恶意文件上传,进而可能导致服务器被上传的恶意文件破坏。
4. 跨站脚本攻击(XSS)漏洞:如果 Struts 2 没有正确地处理或转义用户输入,可能导致 XSS 攻击
,攻击者可以注入恶意脚本,当其他用户查看受影响的内容时,这些脚本会在他们的浏览器上执行。
5. 跨站请求伪造(CSRF)漏洞:Struts 2 框架本身没有提供内置的 CSRF 保护机制。如果不正确
配置或没有在应用程序中实施额外的安全措施,Struts 2 应用程序可能容易受到 CSRF 攻击。
6. 会话管理漏洞:Struts 2 的会话管理可能存在缺陷,如会话固定或会话泄露,可能导致攻击者窃取
或操纵用户会话。
开启 漏洞 靶场:
Web安全:iwebsec || vulhub 靶场搭建.(各种漏洞环境集合,一键搭建漏洞测试靶场)_iwebsec靶场-CSDN博客
(1)查看目录:
(1)cd vulhub
(2)ls
(2)启用 vulhub 漏洞:
(1)cd struts2 // 切换到对应的漏洞目录.
(2)cd s2-046 // 切换到对应的漏洞版本.
(3)docker-compose build // 建立容器
(4)docker-compose up -d // 启用漏洞环境.
(3)进行浏览:主机的 8080 端口.
进行 漏洞 测试:
(1)查看是不是 Struts2 框架.(查看数据包的信息)
(2)如果知道他是这个漏洞,则可以自己使用工具进行测试。(这里的 全部 包含很多的 Struts2 编号漏洞)
(3)漏洞的利用:
(4)如果漏洞是 S2-061 和 S2-062 进入 GitHub 直接搜索:
https://github.com/z92g/CVE-2021-31805
为了应对这些漏洞,开发者应采取以下措施:
(1)保持 Struts 2 框架的最新状态,及时应用安全补丁。
(2)在应用程序中实施严格的安全措施,如输入验证、输出编码、安全配置和最小权限原则。
(3)使用安全插件和工具来帮助检测和防止安全漏洞。
(4)定期进行安全审计和代码审查,以确保新引入的代码没有安全问题。
本文转载自: https://blog.csdn.net/weixin_54977781/article/details/138522677
版权归原作者 半个西瓜. 所有, 如有侵权,请联系我们删除。
版权归原作者 半个西瓜. 所有, 如有侵权,请联系我们删除。