su18 / blogtalk

0 stars 0 forks source link

Fastjson 68 commons-io AutoCloseable | 素十八 #26

Open su18 opened 3 years ago

su18 commented 3 years ago

https://su18.org/post/fastjson-1.2.68/

你救赎的人 终将成为你的光

fynch3r commented 3 years ago

臭宝,你好强啊~我好喜欢

su18 commented 3 years ago

@0range228 臭宝,你好强啊~我好喜欢

我太菜了,只能分析别人的POC

fa1c0n1 commented 2 years ago

很好奇他是怎么想到用 java.lang.AutoCloseable 作为期望类去作文章的,他是如何思考的。。浅蓝的那篇文章也只是写了结论:

"第一个问题是期望类的黑名单,里面包括了大部分常用的父接口和父类,却唯独少了一个 java.lang.AutoCloseable。这也就是为什么 AutoCloseable 为什么可以通过校验的第一个原因,第二个原因是TypeUtils#mappings里有 AutoCloseable 类。"

TypeUtils#mappings里面有几百个类,为什么就想到用AutoCloseable呢..

... 结论式分析做多了,偶尔会有挫败感的原因就是这种漏洞研究的差距...

su18 commented 2 years ago

@fa1c0n1 很好奇他是怎么想到用 java.lang.AutoCloseable 作为期望类去作文章的,他是如何思考的。。浅蓝的那篇文章也只是写了结论:

"第一个问题是期望类的黑名单,里面包括了大部分常用的父接口和父类,却唯独少了一个 java.lang.AutoCloseable。这也就是为什么 AutoCloseable 为什么可以通过校验的第一个原因,第二个原因是TypeUtils#mappings里有 AutoCloseable 类。"

TypeUtils#mappings里面有几百个类,为什么就想到用AutoCloseable呢..

... 结论式分析做多了,偶尔会有挫败感的原因就是这种漏洞研究的差距...

可以看我之前的文章 fastjson:我一路向北,离开有你的季节,思路其实是在 fastjson 不断的攻防过程中,对其 checkAutoType 校验函数逻辑的不断绕过中产生的。checkAutoType 方法在迭代过程中使用黑白名单的形式修修补补,安全研究员自然盯着其中校验逻辑的差异来挖掘其中的绕过手段。 另外就是思路的积累,在以往的漏洞中出现过的手段也可以用来发掘新的漏洞利用方式。 至于使用 AutoCloseable 能玩出什么活,那就靠研究和对 Java 基础 API 的理解了。 学习过程中确实会有很多”结论式“分析,这避免不了,也是学习和积累的过程,脑子里的思路多了,下次就会有自己的想法了。

fa1c0n1 commented 2 years ago

@su18

@fa1c0n1 很好奇他是怎么想到用 java.lang.AutoCloseable 作为期望类去作文章的,他是如何思考的。。浅蓝的那篇文章也只是写了结论:

"第一个问题是期望类的黑名单,里面包括了大部分常用的父接口和父类,却唯独少了一个 java.lang.AutoCloseable。这也就是为什么 AutoCloseable 为什么可以通过校验的第一个原因,第二个原因是TypeUtils#mappings里有 AutoCloseable 类。"

TypeUtils#mappings里面有几百个类,为什么就想到用AutoCloseable呢..

... 结论式分析做多了,偶尔会有挫败感的原因就是这种漏洞研究的差距...

可以看我之前的文章 fastjson:我一路向北,离开有你的季节,思路其实是在 fastjson 不断的攻防过程中,对其 checkAutoType 校验函数逻辑的不断绕过中产生的。checkAutoType 方法在迭代过程中使用黑白名单的形式修修补补,安全研究员自然盯着其中校验逻辑的差异来挖掘其中的绕过手段。 另外就是思路的积累,在以往的漏洞中出现过的手段也可以用来发掘新的漏洞利用方式。 至于使用 AutoCloseable 能玩出什么活,那就靠研究和对 Java 基础 API 的理解了。 学习过程中确实会有很多”结论式“分析,这避免不了,也是学习和积累的过程,脑子里的思路多了,下次就会有自己的想法了。

嗯嗯我看了~ fj的之前的漏洞我也全部详细调试分析过也发了博客,都挺好理解的。就是1.2.68 AutoCloseable这个会让我比较纠结于作者是如何发现、利用的。。算了,搞这个还是不能操之过急,想不通的,就先暂且进行结论式的积累吧😄

Esonhugh commented 2 years ago

@fa1c0n1

@su18

@fa1c0n1 很好奇他是怎么想到用 java.lang.AutoCloseable 作为期望类去作文章的,他是如何思考的。。浅蓝的那篇文章也只是写了结论:

"第一个问题是期望类的黑名单,里面包括了大部分常用的父接口和父类,却唯独少了一个 java.lang.AutoCloseable。这也就是为什么 AutoCloseable 为什么可以通过校验的第一个原因,第二个原因是TypeUtils#mappings里有 AutoCloseable 类。"

TypeUtils#mappings里面有几百个类,为什么就想到用AutoCloseable呢..

... 结论式分析做多了,偶尔会有挫败感的原因就是这种漏洞研究的差距...

可以看我之前的文章 fastjson:我一路向北,离开有你的季节,思路其实是在 fastjson 不断的攻防过程中,对其 checkAutoType 校验函数逻辑的不断绕过中产生的。checkAutoType 方法在迭代过程中使用黑白名单的形式修修补补,安全研究员自然盯着其中校验逻辑的差异来挖掘其中的绕过手段。 另外就是思路的积累,在以往的漏洞中出现过的手段也可以用来发掘新的漏洞利用方式。 至于使用 AutoCloseable 能玩出什么活,那就靠研究和对 Java 基础 API 的理解了。 学习过程中确实会有很多”结论式“分析,这避免不了,也是学习和积累的过程,脑子里的思路多了,下次就会有自己的想法了。

嗯嗯我看了~ fj的之前的漏洞我也全部详细调试分析过也发了博客,都挺好理解的。就是1.2.68 AutoCloseable这个会让我比较纠结于作者是如何发现、利用的。。算了,搞这个还是不能操之过急,想不通的,就先暂且进行结论式的积累吧😄

哎 回来捡捡前辈们的研究 确实是受益匪浅。 文章写的也是真的好。