框架漏洞学习日记——第四天(spring rce-2022-22965)_白白白无的博客-爱代码爱编程
课少了,重新回来学一下框架漏洞,这次是直接上手代码,审了一下发现点还挺明显的
首先是这次学习的框架spring
一.框架介绍
spring framework
它是Java最流行的一个框架,基于Spring我们可以直接调用实现一些简单的业务逻辑即可使用,同时也包含了许多高级的功能,比如面向切面编程,也可以非常简单的和其他组件进行集成,比如说我们用Spring访问数据库Redis......它都已经提供了相应的接口。许多网站都在使用该框架
二.环境准备
所需:spring framework-5.3x
apache-tomacate8.5.78-src
apache-tomacate8.78
编辑器为IDEA
本地环境需要自己搭建并尝试运行,这里已经成功运行,过程就不再细说
主要文件:AccessLogValve.java(日志处理类)
三.代码审计
shell生成重点就是红框标出的这一部分,当该方法收到的日志时间与本地日志时间不同时,就会重写日志(每次tomcat启动时获取系统时间,运行时做判断,如果时间改变,也就是filedateformat改变就会重写文件内容)
传入请看下面
根据我的poc,我是将pattern属性值设置成了我们的木马内容,在accesslogvelue调用setpattern的方法时,还将pattern值也封装到了logElements,最终进入到result中,也就是log(result)。
总结:该漏洞利用链较为明显,修复方式打补丁即可,也可通过waf设置规则过滤