一、Spring Data Rest简介
Spring Data REST是一个构建在Spring Data之上,为了帮助开发者更加容易地开发REST风格的Web服务。在REST API的Patch方法中(实现RFC6902),path的值被传入setValue,导致执行了SpEL表达式,触发远程命令执行漏洞。
二、靶场环境启动:sudo docker-compose up -d
三、访问漏洞地址,返现spring接口
四、抓包
五、修改请求包头为PATCH ,
Content-Type: application/json-patch+json;new byte[]{command}:command为我们要执行的命令的十进制数。
影响范围
受影响的版本
Spring Data REST versions < 2.5.12, 2.6.7, 3.0 RC3
Spring Boot version < 2.0.0M4
Spring Data release trains < Kay-RC3
不受影响的版本
Spring Data REST 2.5.12, 2.6.7, 3.0RC3
Spring Boot 2.0.0.M4
Spring Data release train Kay-RC3