'Java反序列化-URLDNS'
一、反序列化的想法
readObject中的代码会自动执行,给予攻击者在服务器上运行代码的能力。
-
1、直接通过入口类的readObject直接调用危险方法。
-
2、入口类参数包含可控类,该类有危险方法。
-
3、继续套娃,入口类包含可控类,该类有调用其他有危险方法的类,readObject时调用。
pojo类中添加代码:
1 | private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException { |
流程:正常进行序列化与反序列化,调用readObject,ObjectInputStream输入流,读取defaultReadObject对象。执行calc命令。