本文阅读量
反序列化篇2#
URLDNS#
整条链的调用逻辑为:
HashMap.readObject()
HashMap.hash()
URL.hashCode()
URLStreamHandler.hashCode()
URLStreamHandler.getHostAddress()
InetAddress.getByName()
要构造这个Gadget,只需要初始化⼀一个 java.net.URL对象,作为key放在java.util.HashMap 中;然后,设置这个URL对象的hashCode为初始值-1 ,这样反序列列化时将会重新计算 其hashCode ,才能触发到后⾯面的DNS请求,否则不不会调⽤用 URL->hashCode()。