找回密码
 加入华同
搜索
黄金广告位联系EMAIL:[email protected] 黄金广告[email protected]
查看: 1299|回复: 5

是谁控制了我们的浏览器?

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。
) z; k  a3 |: `" V" s) X# ?- Q; p+ ?* O

/ K: c# D: @$ D# h2 j; f............................................................................................................................................
- s, t+ |% p0 |$ |4 t' v1 X+ ]
$ ]1 k& U% v8 v) q7 n  i' ?& ]. E是谁控制了我们的浏览器?& W% V& O) h6 U5 p  h  ~
1、现象是什么?: ]( ]+ p5 s# U5 [+ U6 U0 {/ r
  
. x6 k* P# [2 r2 R; p大约从今年年初开始,很多人就发现,在浏览一些网站的时候,! j; h9 ]& e9 }
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。, y9 f( Y1 z- g* Y; l9 P
很多人以为这是网站自己弹出的广告,也就没有在意。" ^7 C. Q( V1 \. e
  
  @7 a* \% K! e! B我是属于很在意的那些人之一。
! k* B( T5 |, a& r4 C  % A5 r5 R# F: Z# `0 V4 I* y
2、这是怎么回事?" l& ?2 }$ ~7 y. _. R% s
  7 M5 {, Y/ p, D: q/ c
经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),
" `" o% Y9 H& j( O与使用何种操作系统也无关(linux用户也有相关报告)。& J0 u) `' n8 [. H
我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
3 L# y% v& A2 L, {: Q  
* k  j- w! A5 `8 c& @那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。9 F: y# U& U8 E( Y; S7 ~) b: I
  ) n# [3 w) H5 x& B% E" O
那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,3 H( d# t; R- |( c
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。
! h) j; E$ O+ |' M  - D3 _9 A% b  u9 ~
伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。
' u; i' W! {9 P9 p1 L  
3 X0 {( N. D" k& J为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。
/ e! R& h1 c" b" o- x直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
: E, k3 }, K% D' y& {我写了一个脚本。不断访问这个IP,同时记录进出的数据包。& r/ T9 N4 [. P2 X* T
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
/ F9 K/ s, _- T! p" k2 F$ ZHTTP/1.1 404 Object Not Found8 N" m& E$ e8 I# P
Server: Microsoft-IIS/5.0
: W: f* s2 d( M, V6 g2 q8 G: KDate: Mon, 19 Jul 2004 12:57:37 GMT
7 H: S) \: k( \2 `9 {4 D+ I! i$ i: lConnection: close
& r7 B) l# e# O' E* g3 p/ QContent-Type: text/html
5 K! I8 a; W. m" W0 EContent-Length: 111
' d& C& E" [7 X6 h0 G) y8 M' b$ F' u〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
4 |4 G. W2 A8 a2 O〈body〉No web site is configured at this address.〈/body〉〈/html〉
) j9 k5 d1 c: V# e' M" _  
' B/ p" @% b4 X$ y1 m1 n但是有两次,返回了这个:$ E9 H. p' n4 B$ I- O; `
HTTP/1.1 200 OK7 v# y) y% |4 @' C: C
Content-type: text/html" y  V/ M0 `0 e* ?% ~
〈html〉
& U7 q8 F" c% p- F5 w〈meta http-equiv='Pragma' content='no-cache'〉
0 N2 X* N+ ], s+ g0 e〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉
# _1 u: M# E4 H8 J1 u2 g9 I〈script〉! `6 F+ Y+ u2 N5 V5 K3 i
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');. ^# s1 D3 ?( V6 h
〈/script〉
0 v. |* O, \7 ^7 I3 N〈head〉
! T. W; t& }5 e  }- Z〈title〉〈/title〉
$ W. n* ]* Y4 o- B- y- {5 D〈/head〉
, U, z2 o" r1 x6 w/ V〈body〉
7 M# t4 W( o% Y9 E〈/body〉
5 g( |( X# O/ q3 u4 p4 M〈/html〉( ?! c& q1 Z  j3 d  Z7 _( H
  
" w" C% H3 C- ^( n/ I3 D更进一步分析数据包,可知劫持流程如下:: h: L; G/ j9 b
  
' ?" }: e7 [- l) YA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。6 a/ ?$ g' o: \1 k+ a" q0 G' {
这个设备按照某种规律,对于某些HTTP请求进行特殊处理。
! }' p% F. i2 ~5 o  . p0 R6 z" G. x1 G3 P- Q
B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。3 R6 n3 j0 ~1 c" r2 c9 y. \; o
这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。- D2 x  b3 g% E  a7 n
而任何正常的服务器都不可能在这么短的时间内做出回应。
+ Y. |4 \9 z% ]" @9 V. p  3 Q, U2 R, h) L1 l
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
- I8 J  n! g  p  0 Y, G8 E0 e, U0 r4 J4 [4 w
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,8 e% B1 x, C& q
重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。3 O2 `. e# `# d
  4 w+ `& S3 F: x; o4 R8 A
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,% S! C- ^! @$ j0 ]- T+ {6 {' g7 }
这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。
0 _) o- }6 P" _/ D6 T  " |. d/ T: k1 W2 R' p( F
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。4 T2 r+ Q8 q- v, M
  
& r( f% }+ b- y9 |$ {: s  _3、现在怎么办?
. B; @) O/ T1 y3 B/ @0 v7 x! d  
7 W1 U9 H  [0 l% D6 J3 J在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:; u* L8 q' x( y) P# s! x; y
  
$ P' ]& c* G! r; J$ |6 _A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
1 k/ I$ y4 p2 i/ [/ t* e6 w8 e0 m* j% N  7 Y/ m( U8 |. I4 }) p* l: k
B、在你自己的个人防火墙上,完全封锁211.147.5.121。" Q2 N. b7 y# p2 F7 ?
  
4 G1 ]' ^) d* J& A% Z0 ]* ~C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。
( R) e2 ^9 K8 E) o  Y% J  5 {8 B5 L2 e$ n+ n# e6 H
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
* y1 l7 E; @9 S% ~; F* V& S9 @" D今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?  R. E% L$ C% }1 k
我们的HTTP通信完全控制在别人手里。) {- B+ e. A) u, x  Q
  ( {+ X! o) z, d* r
4、如何把坏家伙揪出来?
' o* N: i: C- E0 d  ' _8 }) Z+ V- u# r$ P% b$ a: G
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:: j) c7 w4 h5 \5 }
  : g8 e) `' m% y
方法1:( Y* c& n$ G: B
  
, @% |4 x" n: F/ F' Q; y伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。& ?4 B  l- B- h
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。
4 u% X$ z' B7 H6 l0 g那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。7 w' I: |% L" z0 v
只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!% D9 {" U4 K6 B
  
8 R8 {$ J( ?& p方法2:( |" F5 t8 H! [6 L
  " Y8 ?+ `1 B. a- z( s; w4 i5 \
假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。* a8 a% E  {, a! z
在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。
- R* H; O* @  [; m编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,, U, O  i0 ~- U
在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
  N& x5 Q! ~) L# u% C+ A4 r+ m8 l; W  
0 L# ?3 b  g" }, d2 E' A上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,& @; {2 V  R* [
那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。; l" d4 h0 J7 z8 V
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:. G4 h7 K' |/ S
MyIP-12-13-14-15-65-[89]-15-57-A" l6 Q2 O& ?6 N9 w2 W
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B0 L8 U, i% |" j3 h. I8 F
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
& X, d# v. \- mMyIP-22-25-29-32-65-45-[89]-58-D7 C* Q& y; B- M3 p7 d1 T
    Y0 u. D+ N7 d( F8 @. h) t3 {  t
显然,inject设备极大可能就在“89”所在的机房。8 K6 I& B5 d! j# B" w4 w4 G
  
  A+ J2 v. e; }2 C, d方法3:
, F# c# n3 D, g6 f( x8 S/ u5 r/ L; l  
' C3 M& E6 O1 T另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
. T3 G/ N8 R( ^1 u" G+ ^, Q) E/ J3 `inetnum: 211.147.0.0 - 211.147.7.255
* ]* t- u- G# K* bnetname: DYNEGY-COMMUNICATION2 i( {% |! ]8 @0 z+ ~, c
descr: DYNEGY-COMMUNICATION( u) }, j: w" ?( }* K* a6 s
descr: CO.LTD
. _8 d( T% R( E8 |descr: BEIJING
, S9 p' z. W# _. s: Xcountry: CN
/ N8 M3 d7 s% Y, kadmin-c: PP40-AP
+ ]8 ]7 D  l' J" ]+ ytech-c: SD76-AP
& l$ f* L: |4 e# R4 Omnt-by: MAINT-CNNIC-AP" _% D: c/ t+ p7 |, U
changed: [email protected] 20011112
$ D0 Z9 e  i  V. g* T% W5 Tstatus: ALLOCATED PORTABLE
1 D4 s: }5 C/ |+ u/ n8 isource: APNIC# ^& @1 m) c$ s1 |( m7 G
person: Pang Patrick8 I( J1 g# [' J0 g- c7 {* H5 a, y) z
nic-hdl: PP40-AP0 C) k# e7 Q" G3 _# @4 w+ ?
e-mail: [email protected]4 n, l& l0 b7 U
address: Fl./8, South Building, Bridge Mansion, No. 532 z, U; j& b. P. q* ^$ T" ^! B6 O
phone: +86-10-63181513
/ O! P% k/ T1 _9 y$ q3 Pfax-no: +86-10-63181597
! M( |: Y& E' h6 tcountry: CN
3 q$ b. Y* ?9 k- ~& y( @' Echanged: [email protected] 20030304) X( d4 V3 W4 q& d
mnt-by: MAINT-CNNIC-AP
2 q* {/ @0 n6 H, i! U2 ^1 msource: APNIC
) h3 h" @4 l/ y/ xperson: ShouLan Du. I; H: B2 h2 i& _
address: Fl./8, South Building, Bridge Mansion, No. 53
' \  j, t6 J" r3 o6 I# g- qcountry: CN
' B- W, g. g1 U, J, `8 \& cphone: +86-010-83160000
# M: u. g$ r+ w; a% _# Yfax-no: +86-010-83155528# ]1 j9 z$ ]) s2 _
e-mail: [email protected]7 r4 X/ {$ N7 I! ~  F
nic-hdl: SD76-AP
7 R& C" f0 c# f& e3 K6 d' {6 \) o. s! Bmnt-by: MAINT-CNNIC-AP
" Q, a4 R) O: E; L! tchanged: [email protected] 20020403
' i! k- h$ Z: {# T; wsource: APNIC, u8 Q6 e6 c5 P! ^0 P
  ' i, z8 D4 J: C8 F  x
5、我为什么要写这篇文章?
6 x7 w5 @* N% T# E$ E- Z$ R5 M% Z  
8 ?4 j- y) i# E! }新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;
! i. B/ Q4 F5 n# q2 b2 \7 C或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。! C+ `7 X; _  }/ ~% f
可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。' C2 g- a' D8 ]
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,' E' C5 H6 l; x: D$ ?$ B
但是现在你既然打搅了我的生活,我就不得不说几句了。
9 |. T# h: A/ y3 I* R5 F4 e  
  ~) N& @! s. k+ {6、我是谁?
% s6 ^' U0 N1 x4 B7 ]8 K4 K. U  
( i  \6 w2 Z( K! }如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。: F$ X1 u( c5 R" ~* C% K
#!/usr/bin/perl -w3 y5 b- y' f* E0 Y9 ~" z0 C
use Digest::MD5 qw(md5 md5_hex md5_base64);& T% m4 f) H. g
$name = 'MyName';
' H* _! `/ t5 ]9 R3 i9 |$count = MyCount;+ O/ f5 D9 E$ z( A- p  v  X% P* O
for ($i=0; $i〈$count; $i++)  l- E: l4 R7 D, @
{
9 [# J5 l$ v. e2 F% \: o$name = md5_hex($name);
, O# b6 n( M6 D}. X: s/ u" m7 C6 I
print $name;
0 M6 v% A6 F3 N6 x! P   
/ |- D9 Y  e. w# f9 `8 T以下签名,用于以后可能出现的关于此文的交流:  J0 |5 S4 a$ @# R2 o2 W
1 6631876c2aea042934a5c4aaeabb88e9% U1 k+ ?2 M" z
2 a6a607b3bcff63980164d793ff61d170
2 X1 D" d1 X8 \2 y$ S4 f0 q- d3 6a58e8148eb75ce9c592236ef66a3448
3 j  y8 S8 i& k6 g4 ded96d29f7b49d0dd3f9d17187356310* t' g4 _8 e8 I+ v# l
5 cc603145bb5901a0ec8ec815d83eea66
发表于 2006-8-23 21:15:27 | 显示全部楼层
回复

使用道具 举报

发表于 2006-8-23 21:41:56 | 显示全部楼层
我有点看不懂?我太菜了。
回复

使用道具 举报

发表于 2006-8-23 23:40:54 | 显示全部楼层

谢谢版主,非常有用!

谢谢版主, 所言甚是,非常有用,稍后我将按照版主所教的方法来做!
回复

使用道具 举报

发表于 2006-8-23 23:40:58 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。
; ^: g) o9 H& e总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。. R6 g5 Y( a$ o8 H$ n
/ A$ S& y" S. p& `: s5 a
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入华同

本版积分规则

Archiver|手机版|小黑屋|华人同志

GMT+8, 2025-6-27 23:19 , Processed in 0.062664 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表