一、什么是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. session过期后iframe页面如何跳转到parent页面

    session过期后如果在iframe里操作就会返回到login.html,可是这个页面还在iframe里面如果再次登陆就会出现iframe嵌套的现象,我们这样来解决. 在login.html里面加上 ...

  2. C#:依据目录填充树视图

    #region 依据目录填充树视图 /// <summary> /// 依据文件夹目录,填充树视图 /// </summary> /// <param name=&quo ...

  3. 在windows10下搭建ubuntu环境

    虽然win10下搞了一个ubuntu子系统,但是还是各种不习惯,经过一番研究,我还是选择下面的组合来搭建: Git Bash + ConEmu + MinGW15.3 + vim + chocolat ...

  4. nyoj983 首尾相连数组的最大子数组和

    首尾相连数组的最大子数组和 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 给定一个由N个整数元素组成的数组arr,数组中有正数也有负数,这个数组不是一般的数组,其首尾是 ...

  5. ubuntu 16.04 安装 ITDB

    其实标题本不应该是这个 之前也部署过itdb,这款软件本身不必多言,来自希腊的精品.最近因为单位需要,又要重新部署.前几年部署itdb的时候用的是ub14,但目前最新的是ub16,于是就部署呗.但在后 ...

  6. spring-boot 集合mybatis 的分页查询

    spring-boot 集合mybatis 的github分页查询 一.依赖包 <!-- mysql 数据库驱动. --> <dependency> <groupId&g ...

  7. 将多个文件夹内的txt合并

    import os import re def text_create(name): """ 创建txt文件夹 """ desktop_pa ...

  8. LinkQ 组合查询与分页

    1.以开头查 public List<Car> Select1(string a){ return con.Car.Where(r => r.Name.StartsWith(a)). ...

  9. 基于 jQuery支持移动触摸设备的Lightbox插件

    Swipebox是一款支持桌面.移动触摸手机和平板电脑的jquery Lightbox插件.该lightbox插件支持手机的触摸手势,支持桌面电脑的键盘导航,并且支持视频的播放. 在线预览   源码下 ...

  10. 关于Netfilter NF_HOOK宏的outdev參数bug

    1.首先指出.NF_HOOK系列宏的outdev參数的传递方式(直接传递一个net_device结构体指针)是不对的 正确的方式要么是不传递.要么是传递指针的地址,即地址的地址. 2.接下来指出,仅仅 ...