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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。
8 j. c0 f' N7 I, P& _
0 P, Y8 [9 r. y) I; Y  q
7 o" |2 X- V; n# k............................................................................................................................................
0 f6 [9 `0 ^" W2 D
; p3 ?2 s( X- w1 b& ^9 q是谁控制了我们的浏览器?
( y; h" P! O$ Y7 M% J0 f
1、现象是什么?
% r# N# R0 i% a* X% @  Q6 g  
# G2 T. g% o, I9 s. y7 I% t大约从今年年初开始,很多人就发现,在浏览一些网站的时候,. r/ W. j7 u( b/ F+ q, E
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
7 l9 W: l- O# ]很多人以为这是网站自己弹出的广告,也就没有在意。
9 E) G; P: V; }  o    z! a  t" G5 X* m6 I: Z
我是属于很在意的那些人之一。5 p  R4 C8 Q# g* w2 T, A* a$ |
  0 f. O: t: }5 m. D; P
2、这是怎么回事?: B6 H- \" t, k  [
  8 R; f) K5 g! c9 z
经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),
% f/ ^9 o' P4 w+ w% ]- Y; N与使用何种操作系统也无关(linux用户也有相关报告)。
3 S) Y/ z3 A* a7 x0 W我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。" s; P" c1 G7 y
  
* v% ^+ N( r5 l' j- k+ A3 D那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。1 @8 D* H: D7 l# e" ^7 Z* ]% n
  
- I3 v( G3 O' m7 ]. I那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,! s% f: Z$ v) P, t
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。; ]3 C% |6 N# g/ U% H- u8 G  O- E
  
: j1 _! ~3 E9 F! U5 V伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。
3 N/ V7 n- n" w. K. K3 K  
9 H/ W* P* ]- q3 h为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。
9 c4 C/ U) v0 g直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。% j( F/ v$ `3 c+ B$ A
我写了一个脚本。不断访问这个IP,同时记录进出的数据包。
' ~5 ?& u, V: _0 i/ ?" m1 u  y在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
; r2 y9 q% q; j. vHTTP/1.1 404 Object Not Found
) d' t" t# F, f) kServer: Microsoft-IIS/5.0
4 M3 k! U0 g% @$ R2 K( V% bDate: Mon, 19 Jul 2004 12:57:37 GMT
6 M4 J7 x* R& n, K, ~Connection: close& T% i2 V9 m, w' ~4 ]2 T$ z* t( U
Content-Type: text/html
( \# Z- Y  X/ M% j. OContent-Length: 111. M, C$ |  m, q( c
〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
7 e4 J" @0 u. |. q; D6 e〈body〉No web site is configured at this address.〈/body〉〈/html〉) m. ^0 I0 `( e" K- E  ~& t3 A
  
- d4 P6 r5 d5 e- F( r: z但是有两次,返回了这个:6 S; p0 Q( I, ~
HTTP/1.1 200 OK
3 P) p3 b+ K) WContent-type: text/html2 f3 [+ A; B' @( k/ _# }
〈html〉
7 Y6 z3 N+ f* ?0 g) x8 P- S8 \〈meta http-equiv='Pragma' content='no-cache'〉
7 A2 j1 d' W5 [5 f' D# S〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉
: q$ Z  e2 X# ^〈script〉
; |$ j9 O2 Z' Twindow.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
6 G: I3 l& ?- m$ T〈/script〉
& t0 E( d! N2 B# }〈head〉
& B# B: ^! y/ [0 ?〈title〉〈/title〉7 L% P- Z" o# M  [( Z
〈/head〉
8 C! I3 x$ {" p! ?  d〈body〉4 |- R: h. m8 T6 j$ X
〈/body〉
: W6 S* J: P2 }, S% y. `, U〈/html〉6 L- ]( M" Z/ e
  
6 j( E" D1 t$ C0 @+ @更进一步分析数据包,可知劫持流程如下:" R- i) o3 ]0 f8 r% u' [# J- {
  
  `3 V' {7 t! BA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
5 F: i6 N/ D8 b1 r! y4 f这个设备按照某种规律,对于某些HTTP请求进行特殊处理。
8 h6 B* p/ K5 N) A  # |& F& p6 B8 `- i
B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
; v: }* o# J. h6 s( g9 C2 X这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
2 r: U5 z4 M. B- N2 x/ K- B而任何正常的服务器都不可能在这么短的时间内做出回应。
# E! n1 f1 c. J; a7 U. A) n  
. l) g* l- ^' H; E# O9 j/ Z/ o8 e2 gC、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
, d$ X+ j1 Y" ]: f0 Q! ~  ' p/ ]0 B# c( k
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,' T' ?8 r& g* w
重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。
3 B2 {" h! V9 x6 k, ?) a  ' D! o$ Y" d! c* q
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
) ?8 T: F  ^& [这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。
0 M& U; Q& X! L5 [+ g3 d1 a% F  + ]$ n! k/ _6 g/ b4 K$ i5 v$ c
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。
5 Z4 _- r/ b: n2 j0 t' K  
5 ^+ q: @" e' i% y3、现在怎么办?
% c) g) S/ w* j3 e6 Z  . z$ E2 x, `( \4 A& Q; E! p
在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:2 B: [7 Z; o7 v4 j, h/ \. C( E; ^
  
" N& B" I, d/ r5 [) Q: Q* X  IA、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。: j$ C( S6 r5 F2 v: O- l: g
  3 k; f5 m( J2 G! i
B、在你自己的个人防火墙上,完全封锁211.147.5.121。' ^( V. t) g1 J8 u
  
: Z8 H7 {4 C9 WC、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。
6 R) n) ?% w; i$ q. P- S% b  
  x, w, w5 A; W2 e绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。4 E) K- u" @; V+ g7 {2 Q
今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?8 v( g( i) _: n) b; B
我们的HTTP通信完全控制在别人手里。
% Q/ N) P; Q8 }( \7 i  
3 l$ u. [6 |8 @$ s1 E4、如何把坏家伙揪出来?4 f( C  u8 a8 Z- t; E5 M
  
; T1 t9 P+ L& i. ^8 i: a3 t7 o如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:; k/ ?" U% ]7 N( r
  6 \2 q6 [- {0 Y7 F3 P
方法1:. b- y3 d) q" D" m- K0 B
  
# J6 ?. P/ R9 U/ j4 I: |伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。6 y. c( ?7 f3 A- y' a; n: b- ^
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。
, S- u! R# s# b9 z/ U( R" D9 n* L那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。
, v: i+ `2 k7 S1 k只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!! E2 ^4 {( n5 }
  6 A$ m: M  g+ ~% V
方法2:
: P  V9 @7 T, S1 ?" O" E  6 y1 }; R) j* A- h4 p% K
假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
, J; ^6 D" ?1 A) s$ h8 H% U$ v' q在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。
' @4 F9 l+ r7 M, F编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
4 |5 p' R. R' q" I5 i% ?0 X在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
4 c2 `+ J: L$ r* V( o/ E; Z  ; A. P6 G4 e! E) g- ]* T4 Z
上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备," \' V* x' G/ w3 J6 s
那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。
( C& }! V6 Z  c; d% V4 n1 E例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:5 h4 |# F, z$ X& q" ~- o- C# ], \
MyIP-12-13-14-15-65-[89]-15-57-A
7 Q' F; D; s, j& XMyIP-66-67-68-69-85-[89]-45-68-84-52-44-B
5 S5 ]7 }2 _+ I& v% U" GMyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
) X) _( ]" ~1 k5 C0 }MyIP-22-25-29-32-65-45-[89]-58-D' t2 r* S7 S, F$ t
  , j. g6 r" t; n- a
显然,inject设备极大可能就在“89”所在的机房。9 b0 R5 m, U! W8 O7 i6 `9 w) z' r
  5 T. V- A  V6 t7 v4 _! Y
方法3:* L; w0 D; L' S- Y* H& P, \# z
  
4 U. _! p3 a) k2 x: I) ?0 Z* I另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:6 m3 a* v# r% u6 q: l" ]
inetnum: 211.147.0.0 - 211.147.7.255! E, ]/ _. i, M# O: _3 G
netname: DYNEGY-COMMUNICATION
) J7 Y2 u, U4 @$ f  Jdescr: DYNEGY-COMMUNICATION' [! r: p9 w2 `& v' p
descr: CO.LTD2 {- _+ R  @% L- Y0 v; o# l+ }# @* `
descr: BEIJING
. [1 {; l/ p: acountry: CN
; Z% Q& Z& v# D# E. Wadmin-c: PP40-AP
# L6 Z* d. b- H  N: stech-c: SD76-AP
9 o8 A) Y  x  H- ?) T+ S: R! mmnt-by: MAINT-CNNIC-AP
% D6 f) R) [" h0 H8 a$ B; ]6 @) Nchanged: [email protected] 200111125 n) ^7 @5 k6 L; I( A' @& |
status: ALLOCATED PORTABLE
! Q+ e0 S" G8 y6 B: ?: Zsource: APNIC
1 S7 c. m6 C! q% M$ qperson: Pang Patrick
4 \( J* C# t- n6 Wnic-hdl: PP40-AP
5 f9 |/ r* l/ s4 Q" o) re-mail: [email protected]  e1 q7 {- M4 O( T* I( K% r1 ?- t
address: Fl./8, South Building, Bridge Mansion, No. 53
/ Z( i% F" G' T7 k% C2 rphone: +86-10-63181513% _& E" u9 g3 q
fax-no: +86-10-63181597% A- P5 N$ @1 ^/ ^0 o3 m5 ]
country: CN
  d0 E$ X7 W1 |: F& zchanged: [email protected] 200303044 Z2 f3 V- q8 d" h% \9 K- ~2 m( Y
mnt-by: MAINT-CNNIC-AP
# Q$ S8 U2 l; |) h5 Ysource: APNIC
* M4 @, z2 R1 fperson: ShouLan Du8 e. y3 f. V  J) b
address: Fl./8, South Building, Bridge Mansion, No. 53# X: Y3 Z6 g3 ?' X/ k
country: CN& l$ P" ]/ S' D! N) u3 U- ^* X, o
phone: +86-010-831600004 c- `- c$ @: B7 i
fax-no: +86-010-83155528
) t1 Z. ?9 N5 ^/ m/ p  S- \; Oe-mail: [email protected]
/ ?# n# Z7 F# ~$ z# y( r8 Tnic-hdl: SD76-AP
! @( [7 ~7 Q8 N/ p3 o1 qmnt-by: MAINT-CNNIC-AP- H4 F5 T- p1 x. L4 s2 A& @8 T& a
changed: [email protected] 20020403
6 e; b8 X8 T. t9 H9 ~# d, Osource: APNIC3 a4 S2 P/ H9 ^0 N
  8 D# U. W" R5 q* @( i6 b
5、我为什么要写这篇文章?( A. V+ v0 G+ m2 o/ L7 f
  
" S$ ^$ h4 C, g新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;. O6 v+ S7 V& I- h& U! U2 ?
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。
8 V2 J& T& M6 [! h6 \1 s2 I4 Z可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。$ S) x( }* ^, J, B6 L8 P3 v
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,! ]# S, \) X! N2 T0 n3 U3 d7 a/ v  B( q
但是现在你既然打搅了我的生活,我就不得不说几句了。
0 }" O$ K) p( N: U! U  
9 `  E6 F% x- N% j; q$ _3 Z6 d6、我是谁?
) Y" f; n4 r2 @1 L2 V* E: G  ! X5 v( \" w' z3 D2 g* r1 K! y
如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。8 I3 v& M. z+ i: m
#!/usr/bin/perl -w
: u$ ]3 y5 v& d  ?3 F1 c/ Juse Digest::MD5 qw(md5 md5_hex md5_base64);4 b5 Q7 z6 F( `% v/ k
$name = 'MyName';" C0 h9 `) q% U3 e7 v
$count = MyCount;( v. ^( ~6 t% M6 s+ D5 A
for ($i=0; $i〈$count; $i++)! o" Z5 Z! q# l" S" m% h4 X7 n6 U" w+ e
{
" c. O  B& ?$ H, m$name = md5_hex($name);3 t% _3 f9 c" h
}8 r8 l' |3 F0 N! L
print $name;; |9 @1 r+ O0 q6 C; Z
    0 w& o9 L( v9 w7 k+ [' j$ l. a
以下签名,用于以后可能出现的关于此文的交流:
5 S3 q- H  x/ L% i# ~: B; i1 6631876c2aea042934a5c4aaeabb88e90 A) Y7 S& F: i3 Q! L0 }7 u3 z
2 a6a607b3bcff63980164d793ff61d170$ Q1 {+ q$ W9 K$ T9 C3 w
3 6a58e8148eb75ce9c592236ef66a3448
+ C9 w" F5 `4 n, u2 J# C- G* s! v4 ded96d29f7b49d0dd3f9d17187356310
( F2 j8 t6 P; E2 _1 {, i5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。
# y0 B0 U) P& S& h5 G总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。
7 F& w) j( d7 E: @  I5 l; l# @! K! Z* j3 }" F  @! N
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-2 07:21 , Processed in 0.093459 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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