DNS重绑定
DNS是什么:
互联网中域名与ip地址一一对应,人可以辨认域名(如njupt),机器只能识别ip(如114.5.1.4),而机器对域名解析为ip地址依赖于专门的域名解析服务器来完成,这就是DNS域名服务器。
DNS TTL:
全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存时间,数值越小,修改记录各地生效时间越快。当各地的DNS(LDNS)服务器接受到解析请求时,就会向域名指定的授权DNS服务器发出解析请求从而获得解析记录;该解析记录会在DNS(LDNS)服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向授权DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
同源策略:
如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源,而不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。
DNS重绑定攻击:
攻击者控制DNS服务器回复被害者对自己域名的查询,该域名先是绑定在攻击者服务器的ip上,同时攻击者在自己域名加载的网页上包含恶意脚本,受害者第一次访问该域名时由于解析出来的ip是攻击者服务器的ip,浏览器不限制脚本内容只限制跨域请求(即一个网页的 JavaScript 代码,不能向与当前页面“源”不同的服务器发起的 HTTP 请求)故会执行该脚本,可是当ttl结束攻击者控制自己的DNS服务器修改解析域名得到的ip,比如改为12.0.0.7,此时受害者浏览器由于认为域名无变化仍会执行脚本,但此时恶意脚本执行对象却已经成为受害者的服务。
rbndr.us dns rebinding service(一个将两个ip先后绑定到同一域名的网站)