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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。& }- ]$ |8 _+ r# {1 B. ^
6 _1 }4 v) Y3 ?: I( z

  u. M( n$ Z( x+ O............................................................................................................................................
0 x, Z" c, g) x5 W! E
' J8 G" i& T$ @" }是谁控制了我们的浏览器?
, l( \4 Z6 C4 O7 l$ \4 q
1、现象是什么?8 n) X$ a5 l* G+ N1 B, M1 \% d
  
, I' u( i+ I* L8 N& s( _大约从今年年初开始,很多人就发现,在浏览一些网站的时候,
' H2 X4 T7 i8 v) @- K, A地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。  t+ d' t. W( k; l4 X2 r; c
很多人以为这是网站自己弹出的广告,也就没有在意。# e0 Q  A2 [7 L7 s
  + z5 `6 ~. D3 i$ Y7 \7 w
我是属于很在意的那些人之一。
( t; \2 M/ I, }6 \  $ ]& o7 i' e% a/ O$ j$ b
2、这是怎么回事?
7 j- r$ \3 S$ ?; J6 {  
9 l: P0 P9 r5 Q% T, @5 @经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),8 ?! j0 {3 y. N+ W* ~
与使用何种操作系统也无关(linux用户也有相关报告)。
  ]  {& g' z' b我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
4 w$ A( N2 W, U+ ~( A( g  ! P: s3 b  z6 y4 @6 @+ h) O9 f" V8 v
那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。
( P$ }4 i/ z2 i  M( U  
* L& i+ \. T! ^3 }7 B: _* f那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,+ z: x  g6 u7 ~( _, u/ j! I
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。* O& c) J. X# Q; s# `6 G+ F' s
  
# G  c/ B( w5 i0 `1 c- E4 m4 n9 |: ?伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。
. g  d: P6 h0 ^9 G: v- K  
! d5 Y! w( J3 V# g8 U为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。8 @: I' ?4 @0 e; |
直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
' `0 u( P, B: _# f我写了一个脚本。不断访问这个IP,同时记录进出的数据包。
! X6 ^0 w1 \7 I& D) w! d% u/ A在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:6 l& C3 v3 g6 C" _
HTTP/1.1 404 Object Not Found4 Z. O2 I* V4 i3 }: T/ g
Server: Microsoft-IIS/5.04 H0 t% ?" g: [; |1 o
Date: Mon, 19 Jul 2004 12:57:37 GMT
- r0 P, }; T1 [9 c0 _Connection: close  E0 l( a% @, q/ H: d) t: _( o3 V
Content-Type: text/html1 f% c) I9 M5 Z1 Y  Y
Content-Length: 111
( p7 T1 M9 ~! l( X: _. R$ _2 [〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
! \5 a' x! p& L〈body〉No web site is configured at this address.〈/body〉〈/html〉  K; ^. n: G! @! k4 V& a% A
  
" B" t5 U/ t* g! A但是有两次,返回了这个:
" F) @3 y8 i% ?$ Q% n3 h- \HTTP/1.1 200 OK/ z3 d9 Q6 e" y
Content-type: text/html
2 F" Y0 ]% \7 w( a) I〈html〉1 i% Z5 t; D/ E5 N
〈meta http-equiv='Pragma' content='no-cache'〉
. u& C$ k9 y' A# d( ^〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉" r- V; O4 V4 |+ F1 c; n
〈script〉2 Q6 M. N. x, d, X
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
- d7 x+ O5 r% |/ |! M, g〈/script〉
1 b* w1 O% Q3 Z% F〈head〉
7 K2 D1 D- l" ~& h0 W  M. w7 g/ Z〈title〉〈/title〉
! V" g8 p9 N+ V# b〈/head〉' p8 I/ ~+ D0 F4 d, }/ L3 y
〈body〉/ K1 s3 [- h" u
〈/body〉
' n# H+ ]& [3 x: x0 c: e3 N〈/html〉
! B( h, h! [% {* q1 z8 [! x  
0 h* A9 [: B: v0 l  S& J1 ?4 F更进一步分析数据包,可知劫持流程如下:+ u+ J! V- p. I! E, b$ Q2 l( t
  
* U$ H" [: e: LA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
" N0 y8 v, E. R$ ^# r4 |这个设备按照某种规律,对于某些HTTP请求进行特殊处理。8 ?" O  `* K* r5 F1 @
  
8 X' F# I; u$ ?1 HB、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。7 c7 V0 T# j8 e( H7 {
这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
: ~# k' |7 ^/ B% U, x. M9 u! T而任何正常的服务器都不可能在这么短的时间内做出回应。
+ d. N3 X  H5 N! `  8 X3 O+ Q! A0 v; L
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
! J4 O4 Z% Q' r0 x9 }3 C  * L+ t6 y6 t; n% L
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,
: t' I6 Y+ _* E) W7 \5 ]9 a- A. m' g重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。2 I" ?8 }; A+ X. ?4 @4 d
  
( k1 b! |/ A/ b( z3 ]8 f在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
8 x' K6 Q8 G& X这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。' b6 G1 H& G3 z" V0 }3 T$ Q
  - L9 v7 v( i6 v; Y) C6 T
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。4 U* m4 T" y1 A) H1 H$ T; R& t
  " U2 S$ L8 J3 q3 {* N) ~& J
3、现在怎么办?
+ d1 E3 B  k3 ?  / w: @6 C3 K% T( F
在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:
% F* t  X' P3 F: j2 O8 B8 Y    i; S* t+ K- O7 n& n6 A
A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。- H) y3 g; }5 }. \
  
; B2 J# H6 B( g! v% _7 W* dB、在你自己的个人防火墙上,完全封锁211.147.5.121。. L6 o7 W1 i( G
  ( s4 w! c" l: D
C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。& o8 i" L" b7 @
  
( A2 R  d% ]+ z0 A" ?( g4 ~# q4 ~绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。0 B5 \9 t6 n  T7 X8 w( z
今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?
2 Z' e8 j0 q: V我们的HTTP通信完全控制在别人手里。+ Y. w) r% C) S8 j
  
; }5 a9 j0 j1 n" h; j4、如何把坏家伙揪出来?0 D. |  c  t& A8 U; X, k- D1 D
  6 p, x4 t: Q& i% g: D
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:
7 U9 I/ q2 j& B; t0 q' [  
' H& ~& L" b( t. Z* `" h方法1:
7 L& i: B) {: I$ r# G/ [# v  
/ _! o' V' t$ n: v# ?" s4 B8 d# z! w伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。
. j* v  G. U. i  m- k$ I以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。9 w$ m2 {0 a7 q* l5 C+ K
那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。
5 [/ M+ p1 P, H' Z" X$ p% K只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!2 d2 ~# q/ I  q' C1 u8 @* q( `1 B
  * @0 f: O% Y  G
方法2:
% Y( q$ U: H+ \9 N- ]0 h8 @, {  ( Z0 F* v' ]' c. g. q' h
假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。1 Q9 D) t( w" J  @0 o: s& ?1 L4 G
在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。
' F& p$ ^& F; e' s编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
' Y# u7 I4 S  V在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
1 C! P' ~2 w) T) o( }  
, E2 o# X7 Z( L& O0 b上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,5 Q! \/ Q/ d3 C
那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。( u, z$ K$ b3 }5 [- ?! ?5 l
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:
& `% L; H- n: q. p6 U) MMyIP-12-13-14-15-65-[89]-15-57-A: F% U6 V; n8 n5 ^4 F, E: j8 S2 q
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B
  h* y1 m9 z4 ?  }5 vMyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
( a4 j! p2 Q# C) \6 u8 bMyIP-22-25-29-32-65-45-[89]-58-D$ ^, f! x5 L% F$ |& y
  1 U  _- b- P9 F
显然,inject设备极大可能就在“89”所在的机房。
$ Z) u9 X6 L- e0 j2 R  ]6 b4 F  
2 m6 g8 L- a* N. {% L6 m方法3:
% _4 I7 I0 w7 b# |' E: z  * G- r- `( |* A. a5 E) N' Q  A
另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
& e; f! k: Z4 Q4 Y' z: C! L0 oinetnum: 211.147.0.0 - 211.147.7.255
* v; Z7 I( W$ d# X, C, h' I% tnetname: DYNEGY-COMMUNICATION
' X+ n( j- n# u! k! Pdescr: DYNEGY-COMMUNICATION
) ]5 Y5 ]4 a$ _; I+ U6 tdescr: CO.LTD
: ?5 t1 H- y2 b0 `, h$ Ddescr: BEIJING  u# e8 j/ [/ w: U
country: CN$ ^' Q* `( r# r1 w7 Q; B1 M
admin-c: PP40-AP
, O4 V" ~. Q4 t4 Itech-c: SD76-AP2 F# t3 {6 i9 @, C+ H4 [" s
mnt-by: MAINT-CNNIC-AP1 I" Q! V2 F$ w
changed: [email protected] 20011112
* g1 O" p; K3 X' T4 jstatus: ALLOCATED PORTABLE% v# C$ F8 b5 `
source: APNIC+ Q5 c7 U/ C/ F' k4 T' l& y
person: Pang Patrick
& N7 g" B' I4 W* J% Z9 Mnic-hdl: PP40-AP  k+ m6 N! y5 m7 L
e-mail: [email protected]
4 g$ f' f" Q( @* d, G( xaddress: Fl./8, South Building, Bridge Mansion, No. 53: T: C8 u" z2 I; L
phone: +86-10-63181513# y% O; f3 `/ ?- F5 `
fax-no: +86-10-63181597, ^' n$ Y* a0 Z, i3 v
country: CN, R- W, |9 x8 u4 F* f5 o, U" A+ ^. p
changed: [email protected] 20030304
. R5 _  d% A* u4 i. ?0 ymnt-by: MAINT-CNNIC-AP/ W- L6 u5 q4 S: D" P
source: APNIC
( Z  Q' M: y2 _/ a( ]person: ShouLan Du) b# T( E+ \8 }6 X7 N8 I- e
address: Fl./8, South Building, Bridge Mansion, No. 53
% f' |. ~0 j* w& xcountry: CN
/ a4 g. l; X5 k5 s' nphone: +86-010-83160000
, A) t# u8 C0 a( y3 bfax-no: +86-010-83155528
2 x# v% s" j4 je-mail: [email protected]
/ G( [% x, h7 W% F7 N+ Qnic-hdl: SD76-AP
: z1 k6 P1 ]8 p; }" Gmnt-by: MAINT-CNNIC-AP9 M7 L% S" a* A4 L7 W' I& B5 D* |
changed: [email protected] 20020403
) u# s% ^: l6 x& d2 d( M$ ^source: APNIC
. f% s  S/ ]# e/ R9 ?3 O0 X  
2 A, _# X+ ?8 }/ K) s& T. s4 ^& ~5、我为什么要写这篇文章?
. Y$ A' Y3 J- W* K  4 h" T, d5 e; B: B2 X( O8 [: `
新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;8 w2 i4 G5 }! b. |' N
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。
3 ]  }% U3 v) H2 B, E可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。3 `7 d: E( K# g3 n  l! g- I
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,' h0 f0 |" _" F7 ?# H# \5 N
但是现在你既然打搅了我的生活,我就不得不说几句了。
" V" ~' I3 N/ z  3 Z. l) o$ k. Z
6、我是谁?1 w+ u+ a- f( t' }& r1 R/ _
  
! e& }2 K: S! B: `9 C如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
8 f! v& t- ?: A+ }6 I( ~#!/usr/bin/perl -w, q* b7 ^9 b# U8 p0 g. P
use Digest::MD5 qw(md5 md5_hex md5_base64);
2 ~9 n, `+ B* y" u* S$name = 'MyName';. R3 ~8 ^* n5 ?1 }  U% [+ c' m
$count = MyCount;
/ |1 M- B2 ?0 N, T. v  |- nfor ($i=0; $i〈$count; $i++)
: m4 U" D  c& x) K8 B' g1 l3 X{
6 \- G0 ~8 D% C9 k/ |1 w$name = md5_hex($name);* S. f7 j: R  o. K3 O( a
}
$ b+ _4 @6 u, n: Zprint $name;
$ g+ B6 Y8 i$ ^, X   
- W9 u$ m' Y0 g6 r以下签名,用于以后可能出现的关于此文的交流:
' a/ _; T1 I0 W/ }( M4 {) `2 ~8 o% c4 u1 6631876c2aea042934a5c4aaeabb88e9  Z# J) |2 N+ w2 i
2 a6a607b3bcff63980164d793ff61d170& O! {9 @' r' D
3 6a58e8148eb75ce9c592236ef66a3448
. c/ f& _3 j3 ~. C9 L0 a4 ded96d29f7b49d0dd3f9d17187356310
  |* B3 M3 J6 N" z; x* H) t/ x# {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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。/ A: `1 C6 O% t( ?! m5 o! a
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。3 I( a8 d# p* O, t8 a

6 u; k0 l# r4 y9 t, Z8 T/ ]2 Xrulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-2 04:34 , Processed in 0.019465 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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