- Fastjson反序列化漏洞分析:挖掘思维与研究方法
恩师小迪
json安全网络
致谢首先,感谢我的小迪老师的指导与启发,让我有机会深入学习这个经典漏洞案例理解前辈们的安全研究思路。引言当分析一个广泛使用的库时,我们应该思考:为什么一个JSON解析库需要这么多特殊功能?大多数JSON库只做一件事:把JSON字符串转成对象,或者反过来。但Fastjson不同,它实现了更多功能。作为学习者,我们需要理解那些发现Fastjson漏洞的前辈们的研究方法。下面我们一起分析这个经典漏洞的发
- Java之微信 APIv3 商家转账到零钱SDK版
相思比梦长
JAVAjava商家转账到零钱微信转账平台证书APIv3
1、测试类TransferTest:importcom.alibaba.fastjson.JSON;importcom.wechat.pay.java.core.RSAConfig;importcom.wechat.pay.java.core.exception.HttpException;importcom.wechat.pay.java.core.exception.MalformedMess
- 使用 OkHttp 与 FastJSON 发送 POST 请求
李少兄
Javaokhttpjava
目录前言一、依赖配置Maven依赖配置Gradle依赖配置二、常量定义三、学生对象定义四、常规情况:发送单个学生信息代码实现代码解释五、多线程情况:发送多个学生信息线程池基础知识代码实现代码解释六、注意事项和优化建议常规情况异步请求处理多线程情况前言在现代Java开发中,与外部服务进行数据交互是极为常见的需求。其中,发送HTTPPOST请求以提交数据更是屡见不鲜。OkHttp作为一款高效且功能强大
- 解析JSON的这 6 种方案(带示例)
浪九天
企业级开发效率提升javaspringspringbootspringcloud
目录1.使用Gson详细解释运用场景代码示例2.使用Jackson详细解释运用场景代码示例3.使用JSON.simple详细解释运用场景代码示例4.使用org.json详细解释运用场景代码示例5.使用FastJSON详细解释运用场景代码示例6.使用Moshi详细解释运用场景代码示例在Java中,有多种方案可以用于解析JSON数据,以下为你详细介绍6种常见的方案:1.使用Gson详细解释Gson是G
- 开源项目
cs294639693
阿里阿里的开源项目很多,这也跟@淘宝正明的开源态度密不可分。有很多重量级的项目,例如LVS、Tengine,或者很有实践价值的中间件,例如MetaQ(分布式消息系统)、dubbo(RPC框架)、cobar(数据库中间件),或者是Java世界的工具,例如druid、fastjson。都说国内Java公司的技术架构大部分来自阿里系,我觉得一方面来自阿里员工,一方面也可以来自阿里的开源项目。地址有几个:
- Springboot应用json数据传给前端首字母大写变小写的问题
珠峰日记
css3cssspringjqueryhtml
对接.net数据,属性首字母大写传给前端后自动转成了小写。解决思路网上有三种:1)如果没有使用fastjson(阿里巴巴出品),使用@JsonProperty("XXXX")的注解方式可以解决问题,XXXX就是转换成Json的属性名,但注意,只有放在getter上才是有效的,直接在属性上加没效果.(这说明spring默认的jackson类库处理是基于访问器。2)如果使用了fastjson,就用@J
- maven项目pom文件以war包方式导入依赖,修改依赖中某个子依赖版本失败
HPF_99
javamavenjava
在开发中,有一个项目扫描到安全漏洞,要升级jackson版本法一:直接在pom.xml文件中导入完整的依赖com.alibabafastjson2.13.5这样可以直接将原来的依赖修改。如以上方法不行,查看maven库;打包插件是否有问题法二:因pom文件导入的依赖过多,先用idea中maven组件找到依赖来源。找到一个依赖是以jar方式导入,此依赖pom文件中确实导入了jackson,这种的话,
- 深入剖析 Java 反序列化:FASTjson 漏洞与 Shiro 漏洞
阿贾克斯的黎明
网络安全phpweb安全开发语言
目录深入剖析Java反序列化:FASTjson漏洞与Shiro漏洞引言Java反序列化原理示例代码FASTjson漏洞分析漏洞成因示例代码防护措施Shiro漏洞分析漏洞成因示例代码(模拟攻击场景)防护措施总结引言在Java应用开发中,反序列化是一项重要的技术,但同时也隐藏着巨大的安全风险。FASTjson和Shiro作为Java开发中常用的工具和框架,其反序列化漏洞曾引发了广泛关注。本文将深入探讨
- 2.Spring Boot 中Json的使用,Jackson注解详解
张大仙是个妖怪
#SpringBootspring-bootJacksonobjectMapperJsonPropertyJsonIgnore
一.前言1.介绍我们常在项目中使用的Json转换工具是fastjson,事实上spring本身集成了非常优秀的json工具,分别为Jackson,Gson,JSON-B,但是官方项目中默认推荐使用Jackson,所以本文着重介绍使用Jackson进行json的转换以及Jackson的注解使用2.项目例子此文章用到的例子在spring-boot项目中,传送门此篇文章用到项目模块:还有更多:sprin
- FastJson系列化使用toJSONString时null值问题
bingbingYang_88
java开发语言
FastJson系列化使用toJSONString时null值问题问题描述问题分析解决方法:问题描述在使用fastjson调用JSON.toJSONString(JSON.parseObject(demo),features);fastJson包版本com.alibabafastjson2.0.53方法将一个String转换成一个对象时,如果对象obj的属性字段有值为null时,该字段会被系列化成
- Maven pom.xml配置详解
木西爷
mavenxml
pom.xml是什么?pom.xml(项目对象模型-ProjectObjectModel的缩写)是Maven项目的核心配置文件,用于管理项目的依赖、插件、构建配置等。举例说明:以阿里巴巴的fastjson为例:4.0.0标签指定-->com.alibaba.fastjson2fastjson2-parent2.0.23../pom.xmlcom.alibabafastjsonfastjson1-c
- flink判断两个事件之间有没有超时(不使用CEP)
单线程的Daniel
flink大数据
1.为啥不使用cep呢,cep的超时时间设置不好配置化,无法满足扩展要求2.超时怎么界定。A事件发生后,过了N时间,还没有收到B事件,算超时。代码如下:importcom.alibaba.fastjson.JSONObject;importlombok.extern.slf4j.Slf4j;importorg.apache.flink.api.common.state.ValueState;imp
- web安全渗透测试十大常规项(一):web渗透测试之Fastjson反序列化
HACKNOE
Web渗透测试基础实验室web安全java网络安全
渗透测试之Java反序列化1.Fastjson反序列化1.1FastJson反序列化链知识点1.2FastJson反序列化链分析1.3.1FastJson1.2.24利用链分析1.3.2FastJson1.2.25-1.2.47CC链分析1.3.2.1、开启autoTypeSupport:1.2.25-1.2.411.3.2.2fastjson-1.2.42版本绕过1.3.2.3fastjson-
- Fastjson 反序列化任意代码执行漏洞修复
乐大师
实战秘籍系统安全安全fastjson
腾讯云主机安全扫描报告,有几台主机存在“Fastjson反序列化任意代码执行漏洞”。安全报告漏洞信息如下:CVE编号pcmgr-345005披露时间2022-05-23漏洞描述Fastjson是一个Java语言编写的高性能功能完善的JSON库。由于其简单易用,已经被广泛使用在缓存序列化、协议交互、Web输出、Android客户端等多种应用场景。FastjsonDevelopTeam于2022年5月
- FastJson反序列化
Finlinlts
安全
概述Fastjson允许用户在输入JSON串时通过“@type”键对应的value指定任意反序列化类名。Fastjson自定义的反序列化机制时会自动调用指定类中的setter方法及部分getter方法,那么当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流程进入特定类的特定setter或者getter方法中,若指定类的指定方法中有可被恶意利用的逻辑
- java 泛型 json_Java泛型与Json反序列化
KateZeng
java泛型json
Java的JSON库有很多,本文分析google的Gson和alibaba的fastjson,在Java泛型场景反序列化的一些有意思的行为。考虑下面的json字符串:["2147483648","2147483647"]用fastjson在不指定类型的情况下解析,下面的代码输出啥:JSON.parseArray(s).forEach(o->{System.out.println(o.getClas
- 使用HttpClient发送http请求
DesireYang
Javajavahttpjson
使用HttpClient发送http请求一、引入httpclient.jar和fastjson.jar依赖jarorg.apache.httpcomponentshttpclient4.5.12com.alibabafastjson1.2.73如果依赖下载失败,需要降低版本org.apache.httpcomponentshttpclient4.5.2com.alibabafastjson1.2.
- Caused by: java.io.NotSerializableException: org.apache.parquet.schema.MessageType
黄瓜炖啤酒鸭
Flink依赖冲突
目前没解决,本地代码可以运行,打包集群运行也没问题,可能是zeppelin哪里的依赖包冲突。scala任务代码Headdefault%flink.confflink.execution.packagesorg.apache.flink:flink-connector-kafka_2.11:1.11.2,com.alibaba:fastjson:1.2.60,org.apache.flink:fli
- Java Map 深拷贝方法
qq_41482600
java基础java开发语言
1、JSON.parseObject(JSON.toJSONString(map))importcom.alibaba.fastjson.JSON;importorg.apache.commons.lang3.SerializationUtils;importjava.util.HashMap;importjava.util.Map;publicclassJSONDemo{publicstatic
- SpringBoot:RabbitMQ-延迟队列
csdnlaoban
程序员java-rabbitmqspringbootrabbitmq
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!com.alibabafastjson1.2.46org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtest属性配置在application.propertie
- java FastJSON自定义序列化和反序列化(扩展点)方法总结!10个步骤让你轻松掌握
墨瑾轩
一起学学Java【一】开发语言java
关注墨瑾轩,带你探索编程的奥秘!超萌技术攻略,轻松晋级编程高手技术宝库已备好,就等你来挖掘订阅墨瑾轩,智趣学习不孤单即刻启航,编程之旅更有趣嘿,小伙伴们!今天我们要一起探讨一个非常实用的话题——如何使用FastJSON自定义序列化和反序列化。你知道吗?FastJSON是阿里巴巴开源的一个高性能JSON库,广泛应用于Java项目中。虽然FastJSON提供了丰富的内置功能,但有时候我们还需要根据具体
- fastjson判断是否JSON字符串
康惠桀
javajson
fastjson判断是否JSON字符串在Java中,使用fastjson库判断一个字符串是否为JSON格式的字符串,可以通过尝试解析这个字符串为JSON对象来实现。如果解析成功,则说明字符串是一个合法的JSON格式。以下是一个简单的示例代码:importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;publiccla
- Java中String类型的字符串转换成JSON对象和JSON字符串
柳小同学
javajson
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、Java字符串String类型转换成Json对象二、序列化1.引入fastjson依赖2.序列化的使用三、反序列化1.引入fastjson依赖2.反序列化的使用一、Java字符串String类型转换成Json对象在开发中会遇到接收前端传入一个Json对象,然后Json对象里面又有一个字段是Json字符串,例如{"code"
- java 校验字符串是否是 json 格式
oneSeventeenCode
javajavajson
java校验字符串是否是json格式packagenet.qh.boss.sms.utils;importcom.alibaba.fastjson.JSONObject;importcom.baomidou.mybatisplus.core.toolkit.StringUtils;publicclassJsonUtils{/***@description校验字符串是否是json格式*/public
- 判断字符串能否转json
qq_26517369
json
packagecom.jlit.msgPush.utils;importorg.apache.commons.lang.StringUtils;importorg.json.JSONArray;importorg.json.JSONException;importorg.json.JSONObject;/*importcom.alibaba.fastjson.JSON;importcom.alib
- 【详解】RedisTemplate序列化、反序列化扩展支持FastJson:GenericFastJson2JsonRedisSerializer
牛肉胡辣汤
redis
目录RedisTemplate序列化、反序列化扩展支持FastJson:GenericFastJson2JsonRedisSerializer1.为什么需要自定义序列化器?2.实现GenericFastJson2JsonRedisSerializer2.1引入依赖2.2编写序列化器2.3配置RedisTemplate3.测试自定义序列化器1.添加依赖2.创建自定义的GenericFastJson2
- chrome游览器JSON Formatter插件无效问题排查,FastJsonHttpMessageConverter导致Content-Type返回不正确
chengpei147
chromejson前端javaspringboot
问题描述chrome游览器又一款JSON插件叫JSONFormatter,游览器GET请求调用接口时,如果返回的数据是json格式,则会自动格式化展示,类似这样:但是今天突然发现怎么也格式化不了,打开一个json文件倒是可以格式化,但是请求接口返回json就是无法格式化问题原因反复卸载重装插件都没有解决,所以想到会不是接口返回的数据有问题,排查发现接口返回的ResponseHeaders中cont
- java枚举转json
软件老王
枚举json
1、背景java后端的枚举类型,要展示到前端,提供给用户进行下拉选择,java后端需要封装enum为json字符串提供给前端,需要首先将枚举类型转为list,然后再转为json字符串。2、方案方案也很简单,使用EnumSet.allOf(TestEnum.class),将数据获取到再塞到list中就可以了。代码如下:importcom.alibaba.fastjson.JSONObject;imp
- 解决时间戳转换为json报错问题!!!
明天更新
日后嚣张的资本json
错误如下:com.alibaba.fastjson2.JSONException:cannotcasttojava.sql.Timestamp,fromclassjava.lang.Long问题原因:我们在数据中的时间戳格式为:2024-11-2210:44:15转换为josn后变成了:createTime->{Long@14296}1732243455000然后我们再将json转换为具体的对象的
- openfeign如何修改接口上的地址???
明天更新
日后嚣张的资本java
使用场景:假设在这里配置了路径,但是我又想通过数据库动态配置地址,该如何操作呢???请看代码示例:(使用openfeign的拦截器进行处理)---->请看大屏幕:接口:packagemairuirobot.iwarehousecontrol.framework.functions.iwc.feign;importcom.alibaba.fastjson.JSONObject;importmairu
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include