URLDNS利用链
前言
简而言之,URLDNS也就是 当HashMap的key传入为URL类型对象的话,这个URL对象就会执行URL类的hashCode()方法 ,从而触发DNS请求,通常用来探测是否存在反序列化漏洞
两条链子简介
URL类-->hashCode()方法-->1.hashcode=!-1-->不执行DNS解析
-->2.hashcode=-1-->handler.hashCode()(hander为URLStreamHandler类对
象)-->getHostAddress(u)-->getByName(host)-->做一次DNS解析
HashMap类-->put(k,v)-->putVal()-->hash(k)-->k.hashCode()
HashMap链子
打开HashMap源码,有个put(k,v)方法,用来传参,它会返回一个hash(key)
查看hash()方法,它会返回一个hashCode()方法