一、什么是DNS rebinding?

在dns协议中,请求和响应完成一台机器对一个域名的查询,响应信息包含请求域名站点对应的IP地址。假设你向DNS服务器A请求域名youself.domain.com,第一次得到的回复是 IP地址1 ,第二次得到的回复是 IP地址2 ,此时我们说DNS进行了重绑定,也就是DNS rebinding。当然,你可以把A站点的解析地址从IP1替换成IP2,也可以把A站点的解析IP1绑定到B站点上去。总之DNS重绑定改变了DNS域名与IP的绑定情况。

二、DNS重绑定攻击

利用DNS重绑定完成一系列的攻击,尤其是绕过一些跨域防护机制。

1、攻击方式一,绕过SSRF限制:

例如很多SSRF检查的代码逻辑如下-->

(1)对请求进行DNS解析获得目标IP;

(2)检查目标IP进行检查,是否在白名单中;

(3)如果(2)没有问题,利用curl等工具发起访问;

那么通过DNS重绑定就可以绕过这一检查。绕过原理:

第一次请求的响应报文中返回符合白名单的IP地址;但是TTL很短,可以为1甚至0;

第二次请求的响应报文中返回恶意IP地址,从而绕过SSRF检查;

2、攻击方式二,绕过php的ssrf检查:

这里要涉及到php的一个函数问题-->

 //关于函数gethostname和dns_get_record
/*
1、如果站点绑定多个IP,那么gethostname则会随机返回一个;
2、dns_get_record函数返回一个array;
*/

绕过原理:

所以如果有使用第一个函数,或者第二个函数但是只取了array的第一个,那么久存在问题,dns绑定多个ip也可以绕过,因为curl时候是会多个ip都访问的。(正常ip关闭服务,恶意ip开启即可)

3、攻击方式三:

攻击原理-->

(1)假设用户一般正常访问A,那么你也注册一个A,上面搞点水坑啥的,不管了,反正有攻击性的东西,切记记住账户密码,搞定cookie信息。

(2)你注册B,且B的DNS的TTL很短(例如1s),访问B的人会执行B上的js脚本(你写的),保存cookie信息,就是(1)中你记录下的cookie信息。

(3)B上还需要脚本,控制超出B的TTL后重定向到B,此时B的DNS解析换成A的。那么实际上就等于带着A的cookie的访问了A,也就被你挂的马感染了。

4、当然,也可以做一些有趣的事情,例如有大神用它来盗取WiFi密码,也是挺好玩的:

传送门:http://bobao.360.cn/learning/detail/358.html

DNS rebinging攻击方式的更多相关文章

  1. DNS 攻击方式及攻击案例

    [赛迪网-IT技术报道]2010年1月12日晨7时起,网络上开始陆续出现百度出现无法访问的情况反馈, 12时左右基本恢复正常:18时许百度发布官方版本公告:对事故原因说明为:"因www.ba ...

  2. 《转》DNS放大攻击

    原文链接:http://blog.sina.com.cn/s/blog_90bb1f200101iazl.html 放大攻击(也称为杠杆攻击,英文名字DNS Amplification Attack) ...

  3. Kali下Ettercap 使用教程+DNS欺骗攻击

    一.Ettercap 使用教程 EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具.它具有动态连接嗅探.动态内容过滤和许多其他有趣的技巧.它支持对许多协议的主动和被动分析,并包含许多用于网络和 ...

  4. linux系统服务器可能被攻击的几种攻击方式

    linux系统随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注,这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解 ...

  5. DNS常见攻击与防范

    DNS常见攻击与防范 转自:http://www.williamlong.info/archives/3813.html 日期:2015-7-10 随着网络的逐步普及,网络安全已成为INTERNET路 ...

  6. C#不用union,而是有更好的方式实现 .net自定义错误页面实现 .net自定义错误页面实现升级篇 .net捕捉全局未处理异常的3种方式 一款很不错的FLASH时种插件 关于c#中委托使用小结 WEB网站常见受攻击方式及解决办法 判断URL是否存在 提升高并发量服务器性能解决思路

    C#不用union,而是有更好的方式实现   用过C/C++的人都知道有个union,特别好用,似乎char数组到short,int,float等的转换无所不能,也确实是能,并且用起来十分方便.那C# ...

  7. web上常见的攻击方式及简单的防御方法

    SQL注入最常见的攻击方式,所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大 ...

  8. 计算机网络之DNS常见攻击

    DNS欺骗 在Internet上存在的DNS服务器有绝大多数都是用bind来架设的,使用的bind版本主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同 ...

  9. dns隧道攻击原理及常用工具流量分析

    DNS协议是一种请求应答协议,也是一种可用于应用层的隧道技术.虽然DNS流量的异常变化可能会被发现,但是在基于传统socket隧道已经濒临淘汰,TCP.UDP通信大量被安全设备拦截的大背景下,DNS. ...

随机推荐

  1. 函数适配器bind2nd 、mem_fun_ref 源码分析、函数适配器应用举例

    一.适配器 三种类型的适配器: 容器适配器:用来扩展7种基本容器,利用基本容器扩展形成了栈.队列和优先级队列 迭代器适配器:(反向迭代器.插入迭代器.IO流迭代器) 函数适配器:函数适配器能够将仿函数 ...

  2. 字符编解码的故事(ASCII,GBK,Unicode,Utf-8区别)

    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们认为8个开关状态作为原子单位很好,于是他们把这称为"字节". 再后来,他们又做了一 ...

  3. ItelliJ基于Gradle创建及发布Web项目(二)

    上一篇介绍了IteliJ创建WEB项目的过程,这一篇介绍一下和本地WEB服务器(以Tomcat为例)的关联方法和发布流程. WEB服务器的关联 1. 点击IDE右上角的一个带有三角形标识的按钮,如下图 ...

  4. JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof

    JVM性能调优监控工具jps.jstack.jmap.jhat.jstat.hprof

  5. Python中使用UUID

    import uuid ... ... print uuid.uuid1() 生成的方法还有uuid2..n,具体参见官网LINK,包括参数细则

  6. nyoj746 整数划分(四)

    整数划分(四) 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 暑假来了,hrdv 又要留学校在参加ACM集训了,集训的生活非常Happy(ps:你懂得),可是他最近遇到 ...

  7. vss安装及服务器端、客户端配置图文教程

    安装VSS 一.双击setup. 之后点完成.就安装完了! 服务器端VSS配置 一.选择开始——所有程序——打开 一直下一步  到完成 二.然后再打开 说明:把这个enable rights and  ...

  8. js 内置对象常用方法

    1 内容概述 js包含一些内置对象,如Array,Function,String等,这些是基本的,常用的js类,所以了解它们十分重要:把他们的方法,用例子和文字简要的记录下来,方便今后参看. 2 Ar ...

  9. dp之完全背包poj1787(完全背包以及路径记录 推荐)

    题意:有四种硬币,1分,5分,10分,25分,分别有a,b,c,d种,给出一个n分钱,要求你求出组成n分钱最多需要的硬币数量,并且输出组成它的各种硬币的数量...... 学到的东西:这个题目我是用两种 ...

  10. JS学习笔记(5)--一道返回整数数组的面试题(经验之谈)

    说明: 1. 微信文章里看到的,作者是马超 网易高级前端技术经理,原文在网上搜不到,微信里可以搜“为什么你的前端工作经验不值钱?”,里面写着“转载自网易实践者社区”.(妈蛋,第二天网上就有了http: ...