最近在维护的网站底部突然冒出一个横幅广告,而且在办公网没有发现,而通过WIFI就会显示广告,两个网段用的不是一个DNS或路由器网关。
由于遇到这种情况很多了,自然而然的就会想到是DNS劫持。
DNS是把域名解析到ip地址,DNS劫持就是在一定范围内,拦截并分析解析请求,解析到假的ip地址上。
目前最常见的做法是在网站中植入恶意代码,例如植入广告。
用Chrome怎么发现DNS劫持呢?
首先通过Chrome的开发工具查看广告的域名,通过Chrome的Ctrol+Shift+F搜索域名,就可以找出恶意代码插入位置的文件,一般是js文件。
打开js文件,查看headers的last-modified,可以确定服务器上文件最后修改时间。
网站使用了CDN技术,咨询CDN售后,可以知道这个文件被植入广告的时间。
对比两个时间,发现服务器上最后修改时间明显要早于CDN上修改时间,可以确定不是服务器上植入的广告,而是通过CDN或者网络中间劫持修改的。
解决办法:
手动修改DNS地址;
修改DHCP里DNS地址;
更换CDN节点;