DNS rebinging攻击方式
一、什么是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攻击方式的更多相关文章
- DNS 攻击方式及攻击案例
[赛迪网-IT技术报道]2010年1月12日晨7时起,网络上开始陆续出现百度出现无法访问的情况反馈, 12时左右基本恢复正常:18时许百度发布官方版本公告:对事故原因说明为:"因www.ba ...
- 《转》DNS放大攻击
原文链接:http://blog.sina.com.cn/s/blog_90bb1f200101iazl.html 放大攻击(也称为杠杆攻击,英文名字DNS Amplification Attack) ...
- Kali下Ettercap 使用教程+DNS欺骗攻击
一.Ettercap 使用教程 EtterCap是一个基于ARP地址欺骗方式的网络嗅探工具.它具有动态连接嗅探.动态内容过滤和许多其他有趣的技巧.它支持对许多协议的主动和被动分析,并包含许多用于网络和 ...
- linux系统服务器可能被攻击的几种攻击方式
linux系统随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注,这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解 ...
- DNS常见攻击与防范
DNS常见攻击与防范 转自:http://www.williamlong.info/archives/3813.html 日期:2015-7-10 随着网络的逐步普及,网络安全已成为INTERNET路 ...
- C#不用union,而是有更好的方式实现 .net自定义错误页面实现 .net自定义错误页面实现升级篇 .net捕捉全局未处理异常的3种方式 一款很不错的FLASH时种插件 关于c#中委托使用小结 WEB网站常见受攻击方式及解决办法 判断URL是否存在 提升高并发量服务器性能解决思路
C#不用union,而是有更好的方式实现 用过C/C++的人都知道有个union,特别好用,似乎char数组到short,int,float等的转换无所不能,也确实是能,并且用起来十分方便.那C# ...
- web上常见的攻击方式及简单的防御方法
SQL注入最常见的攻击方式,所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大 ...
- 计算机网络之DNS常见攻击
DNS欺骗 在Internet上存在的DNS服务器有绝大多数都是用bind来架设的,使用的bind版本主要为bind 4.9.5+P1以前版本和bind 8.2.2-P5以前版本.这些bind有个共同 ...
- dns隧道攻击原理及常用工具流量分析
DNS协议是一种请求应答协议,也是一种可用于应用层的隧道技术.虽然DNS流量的异常变化可能会被发现,但是在基于传统socket隧道已经濒临淘汰,TCP.UDP通信大量被安全设备拦截的大背景下,DNS. ...
随机推荐
- pandas set_index和reset_index的用法
1.set_index DataFrame可以通过set_index方法,可以设置单索引和复合索引. DataFrame.set_index(keys, drop=True, append=False ...
- 常用的SQL
--时间计算: select GETDATE() ,GETDATE()) ,GETDATE()) ,GETDATE()) ,GETDATE()) ,GETDATE()) ,GETDATE()) --查 ...
- querySelector与getElementBy等的区别
获取元素DOM对象有很多种方法,以前一直在用getElementById和getElementsByTagName等,现在对这些方法和querySelector做一个总结. 常见的获取元素的方法有3种 ...
- [Informix] unload load
select tabname from systables where tabname like 'aa%' select * from syscolumns where tabname like ...
- Object-C中的类-类的声明
1.关键字命名:为了避免与已有的c,C++关键字冲突,ObjectC关键字都有@开始: 如:@classs,@interface,@private,@try,@catch,@protocol等. 2 ...
- Android 使用PLDroidPlayer播放网络视频 依据视频角度自己主动旋转
近期由于项目需求 .须要播放网络视频 .于是乎 研究了一番 ,说说我遇到的那些坑 如今市面上有几个比較主流好用的第三方框架 Vitamio ( 体积比較大,有商业化风险 github:https:// ...
- C#获取局域网MAC地址
效果: 说明:获取本局域网的MAC地址(非本机的MAC地址) 代码: /// <summary> /// 获取网卡物理地址 /// </summa ...
- SignalTap ii的使用
1.实现原理 SignalTap II获取实时数据的原理是在工程中引入Megafunction中的ELA(Embedded Logic Analyzer),以预先设定的时钟采样实时数据,并存储于FPG ...
- Phonegap创建项目语法
1:在本地磁盘新建一个文件夹存放要开发的项目,比如在D盘建一个yun文件夹2 2:然后在dos系统下,d:命令进入d盘,cd yun进入yun文件夹, 3:然后phonegap create yun2 ...
- Linux(Ubuntu/Debian/CentOS/RedHat)下交叉编译boost库
我用的软件版本如下(其他版本编译方法与此完全相同): Boost Ver: 1.55.0Compiler : GNU gcc 4.6 for ARM 1. 确保ARM编译成功安装,并配置好环境变量.2 ...