- 1
- 0
- 约7.02千字
- 约 11页
- 2026-07-17 发布于湖南
- 举报
7、反序列化常见面试题
基础知识:
1.请解释Java反序列化漏洞的根本原因,并说明为何攻击者可以通过反序列化执行任意代码?
答案
Java反序列化的核心问题在于其默认机制允许通过0bjectInputStream的read0bject方法还原任意对象。攻击者通过构造恶意序列化数据,利用以下两点实现代码执行:
动态行为触发:某些类的read0bject方法在反序列化时会隐式执行代码(如HashMap的哈希计算触发equals/hashCode)。
Gadget链组合:利用类路径中可用的类(如ApacheCommonsCollections的InvokerTransformer)构造调用链,最终通过反射调用Runtime.exec等危险方法。例如,InvokerTransformer允许通过反射调用任意方法,攻击者将其串联到AnnotationInvocationHandler的动态代理触发点,形成完整的利用链。
2.JDK的SecurityManager如何影响反序列化漏洞的利用?它的局限性是什么?
答案
SecurityManager通过沙箱机制限制反序列化时的敏感操作(如文件读写、类加载):
//示例策略文件配置
permissionjava.io.SerializablePermissionenableSubclassImplementat
原创力文档

文档评论(0)