DNS重绑定攻击
虽然DNS重绑定攻击有10年历史了,但我今天才知道有这样的攻击
一,概念
DNS重绑定:就是同一个域名先后绑定了不同的IP地址
攻击原理:利用浏览器同源策略进行绕过,同源策略只匹配协议,域名,端口号,所以浏览器对同一个域名不同的ip也认为是安全的
攻击过程:
- 黑客控制DNS服务器,浏览器请求aaa.com服务;(这个请求多半是钓鱼,诱导受害者点击链接,发起请求)
- 黑客响应正常的aaa.com域名的ip,这个aaa.com是黑客自己的网站,黑客在该网站上布置恶意代码(可以让浏览器主动发起恶意请求(POST)的代码,所以这个时间段发起的恶意请求发送在黑客网站上)
- 然后TTL时间到了,浏览器再次发起aaa.com的DNS请求
- 黑客控制的DNS服务器响应给的ip是内网的(需要提前踩点,知道内网某个ip,确定攻击目标)
- 浏览器会向内网发送恶意请求,从而达到攻击目的
注: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,可以攻击。
四,防御
- 通过控制2次的DNS查询请求的间隔低于TTL值,确保两次查询的结构一致。
- 用户的角度:更改路由器的配置,过滤DNS响应中的私有IP范围等可疑IP地址。
- 开发人员的角度:内部的网络设备应该验证其自己的主机是否与所请求的主机匹配。如HTTP服务器添加“主机”标头验证。(Web服务器应验证所请求的Host标头是否与其预期值完全匹配,如果不满足,则使用403 Forbidden HTTP状态代码进行响应)。
- 另一种有效方法是使用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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)