Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Fastjson

  • 使用JSON.parse()JSON.parseObject()的不同(★)

前者会在JSON字符串中解析字符串获取@type指定的类,后者则会直接使用参数中的class,并且对应类中所有gettersetter都会被调用

  • 什么情况下反序列化过程会反射调用getter(★)

符合getter规范的情况且不存在setter

  • 如果不存在settergetter方法可以反射设置值吗(★)

需要服务端开启Feature.SupportNonPublicFiel参数,实战无用

  • Fastjson在反序列化byte[]类型的属性时会做什么事情(★)

将会在反序列化时候进行base64编码

  • 谈谈常见的几种Payload(★★★)

首先是最常见的JdbcRowSetImpl利用JDNI注入方式触发,需要出网

利用TemplatesImpl类比较鸡肋,需要服务端开启特殊参数

不出网的利用方式有一种BasicDataSource配合BCEL可实现不出网RCE

另外某个版本之后支持$ref的功能,也可以构造一些Payload

  • 谈谈1.2.47版本之前的绕过(★★★)

首先是利用解析问题可以加括号或大写L绕过低版本,高版本利用了哈希黑名单,之所以要哈希是因为防止黑客进行分析。但黑名单还是被破解了,有师傅找到可以绕过了类。在1.2.47版本中利用缓存绕过