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. ...
随机推荐
- selenium 获得 cookie 信息
#coding=utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("https://ww ...
- MySQL主从不一致的几种故障总结分析、解决和预防
(1).主从不一致故障,从库宕机,从库启动后重复写入数据报错解决与预防:relay_log_info_repository=TABLE(InnoDB)参数解释说明:若relay_log_info_re ...
- unity,List元素第一个成员最好是string类型
例如 List<CmyObj> m_list=new List<CmyObj>(); class CmyObj{ string m_name; int m_value; } c ...
- C union共用体
共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型.您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值.共用体提供了一种使用相同的内存位置的有效方式. 共用体定义: ...
- UIScrollView 的基本用法
转自:http://unmi.cc/use-uiscrollview/ iPhone/iPad 中 UIScrollView 还是经常要用到的,这里作了一个使用它最简单的例子,一个 ScrollVie ...
- PL/SQL developer连接oracle出现“ORA-12154:TNS:could not resolve the connect identifier specified”问题的解决
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/50728536 本文出自[我是干勾鱼的博客] 使用PL/SQL developer ...
- linux 终端 查看上一页
问题描述: 我在终端中使用”dpkg -l”命令显示主机中安装的软件时,发现内容很多,而当命令执行完毕后,只显示终端最后一屏的内容.前面的都无法查看,这个是很让人憋屈的.下面就这一个问题说一下我的解决 ...
- Linux(Ubuntu/Debian/CentOS/RedHat)下交叉编译boost库
我用的软件版本如下(其他版本编译方法与此完全相同): Boost Ver: 1.55.0Compiler : GNU gcc 4.6 for ARM 1. 确保ARM编译成功安装,并配置好环境变量.2 ...
- MySQL 找回密码
Windows: 1.关闭正在运行的MySQL. 2.打开DOS窗口,转到mysql\bin目录. 3.输入mysqld --skip-grant-tables回车.如果没有出现提示信息,那就对了. ...
- 问题-Ctrl+F7跟踪值时提示“Function to be called, TGGLPolyhedron3d.AsString, was eliminated by linker”
问题现象:F9运行程序后,选中一个对象,Ctrl+F7跟踪值时,调用对象的某一个方法提示“Function to be called, TGGLPolyhedron3d.AsString, was e ...