当前位置: 首页 > 图文教程 > 网络安全 > 安全基础 > 谁控制了我们的浏览器

安全基础
黑客攻击行为的特征分析及反攻击技术
Windows 2000中隐患重重的十大“服务”
网页脚本攻击防范全攻略
防患于未然 轻松做好Windows 2000安全策略
用注册表为操作系统砌九堵安全墙
完善网站程序 脚本攻击防范策略完全篇
两步修改XP远程管理默认端口可防止入侵
消除Windows XP自身的安全隐患
保护Windows不受恶意代码攻击
如何关闭和限制电脑不用的端口
修改Windows 2000远程终端默认端口
操作系统被入侵后的修复过程
利用微软基准安全分析器打造你安全的系统
数字签名技术简介
检测和删除系统中的木马
QQ密码破解程序
P2P中保障Windows网络安全
在代码中查找安全性缺陷的专家提示
QQ安全的三大纪律八项注意
如何保证文件夹的绝对安全

安全基础 中的 谁控制了我们的浏览器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-28   浏览: 82 ::
收藏到网摘: n/a

 本文遵从GPL协议,欢迎转载。

1、现象是什么?

大约从今年年初开始,很多人就发现,在浏览一些网站的时候,地址栏的url后面会被
莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。很多人
以为这是网站自己弹出的广告,也就没有在意。

我是属于很在意的那些人之一。

2、这是怎么回事?

经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行
的http客户端),与使用何种操作系统也无关(linux用户也有相关报告)。我对出现
该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统
被安装了adware或者spyware。

那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这
种情况,排除了这个可能。

那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。

伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可
思议,也一定是答案。

为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。直
接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回404错误。我写了一个
脚本,不断访问这个IP,同时记录进出的数据包。在访问进行了120次的时候,结束请
求,查看数据。120次请求中,118次返回的都是正常的404错误:

HTTP/1.1 404 Object Not Found
Server: Microsoft-IIS/5.0
Date: Mon, 19 Jul 2004 12:57:37 GMT
Connection: close
Content-Type: text/html
Content-Length: 111

<html><head><title>Site Not Found</title></head>
<body>No web site is configured at this address.</body></html>

但是有两次,返回了这个:

HTTP/1.1 200 OK
Content-type: text/html

<html>
<meta http-equiv='Pragma' content='no-cache'>
<meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'>
<script>
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
</script>
<head>
<title></title>
</head>
<body>
</body>
</html>

更进一步分析数据包,可知劫持流程如下:

A、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。这个
设备按照某种规律,对于某些HTTP请求进行特殊处理。

B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数
据作为回应包,发送给客户端。这个过程是非常快的,我们的HTTP请求发出之后,仅
过了0.008秒,就收到了上面的回应。而任何正常的服务器都不可能在这么短的时间内
做出回应。

C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,
会被当作错误的报文而不被接受。

D、浏览器会根据<meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'>
这一行,重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用
window.open函数打开广告窗口。

在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,
出现的基本上是国内网站,这表明,问题出在国内。用于inject的设备插在国内的某
个或某几个大节点上。

真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。

3、现在怎么办?

在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:

A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
B、在你自己的个人防火墙上,完全封锁211.147.5.121。
C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把
“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。

绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏
和无耻。今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒
进去,谁知道呢?我们的HTTP通信完全控制在别人手里。