Advertisement

Java安全——URLDNS链

阅读量:

URLDNS利用链分析

前言

简要来说,URLDNS指的是当HashMap的键值被设定为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)。

![在这里插入图片描述](https://ad.itadn.com/c

全部评论 (0)

还没有任何评论哟~