如何使用Spring4Shell-POC测试Spring4Shell漏洞

admin 2025年2月13日10:18:00评论12 views字数 1160阅读3分52秒阅读模式
如何使用Spring4Shell-POC测试Spring4Shell漏洞

 关于Spring4Shell-POC 

Spring4Shell-POC是一个Docker容器化的应用程序,这个应用程序中故意设计为包含了Spring4Shell漏洞(CVE-2022-22965)。该项目提供了完整的源代码,并支持广大研究人员进行自定义修改。修改完成后,只需要重新构建Docker镜像即可。
生成的WAR文件需要在Tomcat中加载,加载完成后即可进行Spring4Shell漏洞的研究、分析和测试了。

 漏洞原理 

1、利用Spring的对象绑定功能将HTTP请求中的参数绑定到应用程序正在使用的某个对象中。
2、getCachedIntrospectionResults方法被用于在未授权情况下获取对象。
3、与CVE-2010-1622很相似,当时修复此漏洞的方式是检查类名,禁止任何class对象获取classloader和protectionDomain,然而JDK9新增的模块化功能使得CVE-2010-1622的补丁被绕过。
4、利用此漏洞,攻击者可以覆写Tomcat日志配置进而上传JSP web shell。

 工具要求 

1、Docker
2、Python 3以及所需的依赖库

 工具安装 

首先,广大研究人员需要使用下列命令将该项目源码克隆至本地:
git clone https://github.com/reznok/Spring4Shell-POC.git
接下来,使用下列命令构建和运行容器:
docker build . -t spring4shell && docker run -p 8080:8080 spring4shell
构建并运行容器后,广大研究人员可以通过下列地址来访问Spring4Shell-POC:
http://localhost:8080/helloworld/greeting
如何使用Spring4Shell-POC测试Spring4Shell漏洞

 工具使用 

下列命令将运行项目的exploit.py脚本来测试目标站点的Spring4Shell漏洞:
python exploit.py --url "http://localhost:8080/helloworld/greeting"
如何使用Spring4Shell-POC测试Spring4Shell漏洞
接下来,访问工具创建的WebShell,修改命令中的“cmd” GET参数,shell默认路径如下:
http://localhost:8080/shell.jsp
如何使用Spring4Shell-POC测试Spring4Shell漏洞

项目地址

https://github.com/reznok/Spring4Shell-POC

参考资料

https://spring.io/guides/gs/handling-form-submission/
https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities
如何使用Spring4Shell-POC测试Spring4Shell漏洞

原文始发于微信公众号(FreeBuf):如何使用Spring4Shell-POC测试Spring4Shell漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月13日10:18:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何使用Spring4Shell-POC测试Spring4Shell漏洞https://cn-sec.com/archives/1076688.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息