前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Spring4Shell-POC测试Spring4Shell漏洞

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

作者头像
FB客服
发布2022-06-08 15:35:23
6920
发布2022-06-08 15:35:23
举报
文章被收录于专栏:FreeBufFreeBuf

关于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以及所需的依赖库

工具安装

首先,广大研究人员需要使用下列命令将该项目源码克隆至本地:

代码语言:javascript
复制
git clone https://github.com/reznok/Spring4Shell-POC.git

接下来,使用下列命令构建和运行容器:

代码语言:javascript
复制
docker build . -t spring4shell && docker run -p 8080:8080 spring4shell

构建并运行容器后,广大研究人员可以通过下列地址来访问Spring4Shell-POC:

代码语言:javascript
复制
http://localhost:8080/helloworld/greeting

工具使用

下列命令将运行项目的exploit.py脚本来测试目标站点的Spring4Shell漏洞:

代码语言:javascript
复制
python exploit.py --url "http://localhost:8080/helloworld/greeting"

接下来,访问工具创建的WebShell,修改命令中的“cmd” GET参数,shell默认路径如下:

代码语言:javascript
复制
http://localhost:8080/shell.jsp

项目地址

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

参考资料

https://spring.io/guides/gs/handling-form-submission/

https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-30,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于Spring4Shell-POC
  • 漏洞原理
  • 工具要求
  • 工具安装
  • 工具使用
  • 项目地址
  • 参考资料
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com