freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

如何使用Spring4Shell-POC测试Spring4Shell漏洞
2022-05-15 15:52:41
所属地 广西

关于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

工具使用

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

python exploit.py --url "http://localhost:8080/helloworld/greeting"

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

http://localhost:8080/shell.jsp

项目地址

Spring4Shell-POC:GitHub传送门

参考资料

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

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

# 漏洞挖掘 # 漏洞分析 # 漏洞管理 # 漏洞复现 # Spring4Shell
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录