File tree Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Expand file tree Collapse file tree 2 files changed +43
-0
lines changed Original file line number Diff line number Diff line change 22
22
23
23
[ Shiro框架相关的安全问题 - 7个] ( https://github.com/4ra1n/JavaSecInterview/tree/master/shiro )
24
24
25
+ [ Fastjson组件相关的安全问题 - 6个] ( https://github.com/4ra1n/JavaSecInterview/tree/master/fastjson )
26
+
25
27
[ Log4j2组件相关的安全问题 - 7个] ( https://github.com/4ra1n/JavaSecInterview/tree/master/log4j2 )
26
28
27
29
[ 内存马专题 - 7个] ( https://github.com/4ra1n/JavaSecInterview/tree/master/memshell )
Original file line number Diff line number Diff line change
1
+ # Fastjson
2
+
3
+ - 使用` JSON.parse() ` 和` JSON.parseObject() ` 的不同(★)
4
+
5
+ 前者会在JSON字符串中解析字符串获取` @type ` 指定的类,后者则会直接使用参数中的` class ` ,并且对应类中所有` getter ` 和` setter ` 都会被调用
6
+
7
+
8
+
9
+ - 什么情况下反序列化过程会反射调用` getter ` (★)
10
+
11
+ 符合` getter ` 规范的情况且不存在` setter `
12
+
13
+
14
+
15
+ - 如果不存在` setter ` 和` getter ` 方法可以反射设置值吗(★)
16
+
17
+ 需要服务端开启` Feature.SupportNonPublicFiel ` 参数,实战无用
18
+
19
+
20
+
21
+ - Fastjson在反序列化` byte[] ` 类型的属性时会做什么事情(★)
22
+
23
+ 将会在反序列化时候进行` base64 ` 编码
24
+
25
+
26
+
27
+ - 谈谈常见的几种Payload(★★★)
28
+
29
+ 首先是最常见的` JdbcRowSetImpl ` 利用` JDNI ` 注入方式触发,需要出网
30
+
31
+ 利用` TemplatesImpl ` 类比较鸡肋,需要服务端开启特殊参数
32
+
33
+ 不出网的利用方式有一种` BasicDataSource ` 配合` BCEL ` 可实现不出网` RCE `
34
+
35
+ 另外某个版本之后支持` $ref ` 的功能,也可以构造一些Payload
36
+
37
+
38
+
39
+ - 谈谈1.2.47版本之前的绕过(★★★)
40
+
41
+ 首先是利用解析问题可以加括号或大写L绕过低版本,高版本利用了哈希黑名单,之所以要哈希是因为防止黑客进行分析。但黑名单还是被破解了,有师傅找到可以绕过了类。在1.2.47版本中利用缓存绕过
You can’t perform that action at this time.
0 commit comments