DNS重绑定攻击

虽然DNS重绑定攻击有10年历史了,但我今天才知道有这样的攻击

一,概念

DNS重绑定:就是同一个域名先后绑定了不同的IP地址

攻击原理:利用浏览器同源策略进行绕过,同源策略只匹配协议,域名,端口号,所以浏览器对同一个域名不同的ip也认为是安全的

攻击过程:

  1. 黑客控制DNS服务器,浏览器请求aaa.com服务;(这个请求多半是钓鱼,诱导受害者点击链接,发起请求)
  2. 黑客响应正常的aaa.com域名的ip,这个aaa.com是黑客自己的网站,黑客在该网站上布置恶意代码(可以让浏览器主动发起恶意请求(POST)的代码,所以这个时间段发起的恶意请求发送在黑客网站上)
  3. 然后TTL时间到了,浏览器再次发起aaa.com的DNS请求
  4. 黑客控制的DNS服务器响应给的ip是内网的(需要提前踩点,知道内网某个ip,确定攻击目标)
  5. 浏览器会向内网发送恶意请求,从而达到攻击目的

注:DNS查询请求,基本流程:浏览器缓存 -> 系统缓存 -> 路由器 缓存 -> ISP DNS解析器缓存 -> 根域名服务器 -> 顶级域名服务器 -> 权威域名服务器

二,利用条件:存在TTL且可控;能够控制被浏览器认可的DNS服务器或者自建DNS服务器;诱导受害者点击链接;提前知道内网ip,踩好点。

三,局限性:

DNS缓存问题,虽然会设置为TTL,但有些公共DNS服务器,比如114.114.114.114还是会记录进缓存,不按照标准协议来。8.8.8.8会按照DNS协议标准来。

DNS缓存机制:Linux dns默认不缓存,winodws和mac会缓存。

应用环境问题:java应用默认TTL为10,测试时可修改配置;PHP默认为0,可以攻击。

四,防御

  1. 通过控制2次的DNS查询请求的间隔低于TTL值,确保两次查询的结构一致。
  2. 用户的角度:更改路由器的配置,过滤DNS响应中的私有IP范围等可疑IP地址。
  3. 开发人员的角度:内部的网络设备应该验证其自己的主机是否与所请求的主机匹配。如HTTP服务器添加“主机”标头验证。(Web服务器应验证所请求的Host标头是否与其预期值完全匹配,如果不满足,则使用403 Forbidden HTTP状态代码进行响应)。
  4. 另一种有效方法是使用HTTPS而不是HTTP,发生重新绑定时,目标服务将具有对www.hacker.com无效的SSL证书,因此安全警告将阻止你的请求。

 

——————————————————————————

DNS重攻击利用原理及概念:https://baijiahao.baidu.com/s?id=1648890356408669815&wfr=spider&for=pc

            https://baijiahao.baidu.com/s?id=1721006062674077553&wfr=spider&for=pc

DNS重攻击利用:http://www.admintony.com/UEditor-1-4-3-3-SSRF-AND-DNS-rebinding-attack.html#more

 

posted @ 2022-03-31 17:36  A思  阅读(268)  评论(0编辑  收藏  举报