DNS受污染的途径主要要有两种: ① 是攻击者监测到DNS查询的请求报文时,伪装成DNS服务器向发出请求主机发送响应报文。 因为DNS报文通常是无连接的UDP报文,没有确认机制,源主机不能识别出这个报文并非出自DNS服务器。攻击者并不需要丢弃真正DNS服务器发回来的响应报文,因为DNS的机制会导致源主机只接受最先到达的响应报文(甚至不管是谁发的)而忽略后继到达的其他报文。这样,源主机得到的就是攻击者伪造的域名解析结果。 ② 是本地DNS服务器的缓存已受到污染,里面缓存的是错误的结果。 DNS服务器通常将DNS查询的结果缓存在本地一段时间,这本意是为了减少重复DNS查询,从而降低DNS报文占用 的网络带宽。可如果某次DNS查询的结果受到污染,则后继一段时间内向该DNS服务器查询的结果都会受到污染。