JSON 之FastJson解析

复现fastjson反序化漏洞(fastjson≤1.2.80) 文章利用JNDI-Injection-Exploit工具,主要讲解如何利用JNDI注入复现fastjson反序化漏洞 阅读详情
   一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)

Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
public   static   final  Object parse(String text);   // 把JSON文本parse为JSONObject或者JSONArray 
public   static   final  JSONObject parseObject(String text);   // 把JSON文本parse成JSONObject    
public   static   final   T parseObject(String text, Class clazz);   // 把JSON文本parse为JavaBean 
public   static   final  JSONArray parseArray(String text);   // 把JSON文本parse成JSONArray 
public   static   final   List parseArray(String text, Class clazz);   //把JSON文本parse成JavaBean集合 
public   static   final  String toJSONString(Object object);   // 将JavaBean序列化为JSON文本 
public   static   final  String toJSONString(Object object,   boolean  prettyFormat);   // 将JavaBean序列化为带格式的JSON文本 
public   static   final  Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。

二、FastJson解析JSON步骤
 
      A、服务器端将数据转换成json字符串
           首先、服务器端项目要导入阿里巴巴的fastjson的jar包至builtPath路径下(这些可以到fastjson官网下载:http://code.alibabatech.com/wiki/display/FastJSON/Home-zh )
JSON <wbr>之FastJson解析然后将数据转为json字符串,核心函数是:
public static String createJsonString(Object value)
       {
              String alibabaJson = JSON.toJSONString(value);
              return alibabaJson;
       }
B、客户端将json字符串转换为相应的javaBean
  首先客户端也要导入fastjson的两个jar包
1、客户端获取json字符串
public class HttpUtil
{
   
    public static String getJsonContent(String urlStr)
    {
        try
        {// 获取HttpURLConnection连接对象
            URL url = new URL(urlStr);
            HttpURLConnection httpConn = (HttpURLConnection) url
                    .openConnection();
            // 设置连接属性
            httpConn.setConnectTimeout(3000);
            httpConn.setDoInput(true);
            httpConn.setRequestMethod("GET");
            // 获取相应码
            int respCode = httpConn.getResponseCode();
            if (respCode == 200)
            {
                return ConvertStream2Json(httpConn.getInputStream());
            }
        }
        catch (MalformedURLException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "";
    }

   
    private static String ConvertStream2Json(InputStream inputStream)
    {
        String jsonStr = "";
        // ByteArrayOutputStream相当于内存输出流
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len = 0;
        // 将输入流转移到内存输出流中
        try
        {
            while ((len = inputStream.read(buffer, 0, buffer.length)) != -1)
            {
                out.write(buffer, 0, len);
            }
            // 将内存流转换为字符串
            jsonStr = new String(out.toByteArray());
        }
        catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return jsonStr;
    }
}

2、使用泛型获取javaBean(核心函数)
        public static T getPerson(String jsonString, Class cls) {
        T t = null;
        try {
            t = JSON.parseObject(jsonString, cls);
        } catch (Exception e) {
            // TODO: handle exception
        }
        return t;
    }
public static List getPersons(String jsonString, Class cls) {
        List list = new ArrayList();
        try {
            list = JSON.parseArray(jsonString, cls);
        } catch (Exception e) {
        }
        return list;
    }
public static List> listKeyMaps(String jsonString) {
        List> list = new ArrayList>();
        try {
            list = JSON.parseObject(jsonString,
                    new TypeReference>>() {
            });

        } catch (Exception e) {
            // TODO: handle exception
        }
        return list;
    }
FastJSON2 学习笔记 FASTJSON2是FASTJSON项目的重要升级,目标是为下一个十年提供一个高性能的JSON库。官方如是说。 阅读详情

相关推荐

使用FastJson将Json字符串解析为对象

Fastjson的用法一、介绍漏洞描述:影响版本安全版本二、依赖三、语法对象转jsonjson转对象 一、介绍 近日,阿里云应急响应中心监测到fastjson爆发新的反序列化远程代码执行漏洞,黑客利用漏洞,可绕过autoType限制,直接远程执行任意命令攻击服务器,风险极大。 漏洞描述: fastjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,造成远程命令执行漏洞。经研究,该漏洞利用门槛较低,可绕

DreamsArchitects的博客 1990

web渗透工程师——初级面试总结

根据sql注入各自的特点可以分为联合注入、二次注入、宽字节注入、堆叠注入等,根据http报文中的不同位置可以有cookie注入、referer注入、x-forwarded-for注入等。产生sql注入漏洞主要因为没有对接受到的参数进行过滤、验证和处理直接拼接到了sql语句中,然后直接执行该sql语句,这样就会导致恶意用户传入一些精心构造的sql代码,与后台sql语句拼接后形成完整的sql语句执行,达到攻击者的目的。大小写绕过 、编码绕过、注释绕过、关键字/关键函数替换、参数污染、缓存区溢出、特殊符号。

m0_61506558的博客 3126

服务器测试之网卡性能调优

nvidia下载mlnx_ofed:https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/intel下载驱动固件:https://www.intel.com/content/www/us/en/download-center/home.html。然而,你可以根据实际情况手动调整中断相关配置。老生常谈了,一些性能相关的设置项打开,节能的关闭,虚拟化相关的VMX/SR-IOV/IOMMU最好也都关掉。

qq_41897488的博客 4907

fastjson解析json数据

一:测试json数据如下: { 'cat':'it', 'language':[ {'id':1,'ide':'eclipse','name':'Java'}, {'id':2,'ide':'XCode','name':'Swift'}, {'id':3,'ide':'Visual Stdio','name':'C#'} ...

无名小卒菜的博客 6986

OpenBullet2 学习研究2-Conditions条件之KeyCheck的使用

上一节我们学习了如何安装Openbullet2以及如何新建一个配置,最后我们再配置里面新建一个Http的请求块,帮助我们发送了第一个请请求。这一节我们来学习check块。当我们发送请求以后,请求返回的内容是否是我们想要的,或者请求发送正确没有,这个我们怎么判断呢?这个时候就要用到check块了。

958

android广告SDK原理详解(附源码)

广大的开发者吃糠咽菜开发了一两款APP,获取了一些流量后自然就会想到流量变现,一般情况下大家会选择到百度联盟或者Google Admob这些广告服务提供商注册开发者账号,在自己的APP里面加上几行广告位代码,集成他们的广告SDK包。然后谋事在人,成事在天,只有每天看报表查查收益。   也有一些开发者为了能够提高自己的变现水平,同时接入了好几家的sdk,哪家出的收益高一点我就出哪家的广告,但是这

rmcgogo的博客 1万+

android 使用fastjson解析json数据

在build.gradle添加fastjson的依赖 dependencies { ...... compile 'com.alibaba:fastjson:1.2.21' } 现有一个json字符串,格式如下 { 'msg': '返回的数据', 'code': 200, 'list': [{ 'name': '张三', 'ID': 1 }, { 'n...

JohnLiu的博客 4329

MCP详解:手把手教你理解和如何使用各种开源MCP服务

MCP 作为一种开放协议,为 AI 模型与外部世界的连接提供了标准化的解决方案。它不仅降低了开发门槛,还极大地扩展了 AI 应用的边界。无论是开发者还是普通用户,都可以通过 MCP 更高效地利用 AI 技术,实现更多智能化的功能。

王哥儿聊AI的博客 6054

java fastjson 解析json

给大家整理了一些有关【F,JS】的项目学习资料(附讲解~~):https://edu.51cto.com/course/27963.htmlhttps://edu.51cto.com/course/33944.htmlJava Fastjson 解析 JSON 教程 作为一名新入行的开发者,学习如何在 Java 中使用...

weixin_36587269的博客 319

mot_challenge官方评估代码

mot_challenge官方代码使用介绍 评估mot17验证集:每个视频序列的后一半帧作为验证集 下载源码:git clone https://hub.fastgit.org/JonathonLuiten/TrackEval.git 官网上下载data样例,放在TrackEval/下,结构如下: data |-- gt | |-- bdd100k | |-- davis | |-- kitti | |-- mot_challenge | | |-- MOT15-train |

qq_37866436的博客 4892

SPAD IMX479规格_VOP

对于VOP的定义,很多人可能是不理解这一路的供电,实际上这一路供电是非常重要的,这是给器件SPAD供电,决定SPAD是否work,在大部分的paper以及大部分公司,基本都是叫VOP,名称是SPAD breakdown voltage power supply,严格意义上叫Operating Voltage,工作电压。当然有些公司也有一些其他叫法就不提了。其实大家可以明显的看出,典型值-20.5没有发生变化,市面上绝大多数VOP的典型值也都是在-20V这边。

致力于lidar应用开发 701

java fastjson2 解析JSON用法解析

你可以为Fastjson2设置自定义的日期格式,通过配置。// 设置自定义日期格式 SerializeConfig config = new SerializeConfig();// 将日期对象转换为 JSON 字符串 String jsonString = JSON . toJSONString(date , config);// 输出: 2025-01-13 14:30:00 } }

cheng_ji的专栏 2329

Python爬虫实战:利用最新技术爬取抖音话题挑战视频

本文将详细介绍如何使用Python最新技术栈构建一个高效的抖音话题挑战视频爬虫。我们将从环境配置开始,逐步讲解请求模拟、数据解析、反反爬策略、数据存储等关键环节,并提供完整的代码实现。本文适合有一定Python基础的开发者学习高级网络爬虫技术。关键词:Python爬虫、抖音API、话题挑战、视频爬取、反反爬本文详细介绍了如何使用Python最新技术栈构建抖音话题挑战视频爬虫。我们从基础请求开始,逐步实现了数据解析、反反爬策略、数据存储等核心功能,并探讨了分布式和增量爬取等高级主题。更智能的反反爬策略。

2201_76125261的博客 1744

fastjson解析json数组

import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.montnets.ott.entity.weix.OtWeiBatchgetMaterial; import com....

csdnofzyk的专栏 5490

【异常】OpenClaw 项目 `fetch failed` 报错问题排查与解决方案Response interrupted: TypeError: fetch failed

针对无超时控制、异常兜底缺失导致的请求中断,封装标准化的安全请求工具,一次性解决超时控制、异常捕获、日志埋点三大问题,全项目替换原生。:将项目运行的 Node.js 版本升级至 18.x 及以上 LTS 版本,使用 Node.js 内置的稳定版。实现的网络请求环节,包括但不限于:第三方开放接口调用、内部服务接口通信、跨域资源请求、外部配置拉取等场景。:针对无法升级 Node.js 版本的存量环境,通过社区稳定兼容包替换原生。类型异常,直接造成业务请求响应中断。第二步:业务代码改造,替换原生。

奶爸的编程之路,也就一周冷个三天 366

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Json解析之FastJson

1、FastJson介绍 FastJson是阿里巴巴提供的一个Json处理工具包,具有极快的性能,超越任其他的Java Json parser。使用起来非常方便。 2、例程 首先下载fastjson-1.1.27-android.jar包并导入工程中: DataBean.java: package com.heqiang.testactivity; public class DataB

寒江蓑笠的专栏 3444

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android JSON:Gson,FastJson解析库的使用和对比分析

/ 获取一个泛型的数据类型//打印结果是zhangsan 12//lisi 13。

2401_89722372的博客 1878

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

在Scala中使用fastJson 解析json字符串

一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson; 功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖; 二、 在Scala中使用 也可使用fastJson 解析jso...

阿正的博客 4466

fastjson解析多层数据_【第16篇】通过fastjson去解析json数组数据

编程之家收集整理的这篇文章主要介绍了【第16篇】通过fastjson去解析json数组数据,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。package ivyy.taobao.com.domain.fastjson;import java.util.Iterator;import com.alibaba.fastjson.JSONArray;import com.alibaba.f...

weixin_42501373的博客 771

java fastjson 解析_Java对【JSON数据的解析】--fastjson解析法

要求:解析下面JSON数据String string = “{no:1,name:’Android’,employees:[{name:’zhangsan’,age:20},{name:’lisi’,age:21},{name:’wangwu’,age:22}]}”;代码:package com.qf.demo4;import java.util.ArrayList;import com.alib...

weixin_42349769的博客 348

使用FastJson解析Json数据

使用Fastjson解析Json数据

parallel0的专栏 6万+

使用fastjson解析json格式数据

#在java中解析json数据内容

ABU009的博客 1248

使用fastjson解析JSON数据

web传输数据目前比较流行的是json格式了,那么如何使用java将json数据解析出来呢?本文讲述了如何使用fastjson解析json数据,详细代码和注释。

qq_42864422的博客 3836

fastjson解析JSON数据乱序导致的问题

本文作者:合肥工业大学 电子商务研究所 钱洋 email:1563178220@qq.com 。 内容可能有不到之处,欢迎交流。 未经本人允许禁止转载。 文章目录问题背景 问题背景 在编写网络爬虫时,经常要处理JSON数据。其中,针对JSON字符串,可利用fastjson将其转化成JSON对象,例如: JSONObject jsonfile = JSONObject.parseObject(sta...

qy20115549的博客 4237
上一篇: fastjson对Date的处理
下一篇: java导出excel表格:
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值