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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。
& E& `( j3 m4 {2 q, H* F7 E) T, ~8 h/ c/ e& i7 A

5 e7 Y9 ~1 b) t3 S: N............................................................................................................................................+ a7 G" E$ a5 L6 \8 q* W
' J: ^+ I9 p$ l/ s% h6 M! O9 e
是谁控制了我们的浏览器?/ V4 B5 a- C! a0 |1 @
1、现象是什么?  H4 ?9 l9 H5 \% P
  6 ~, s- F( ~4 K" O
大约从今年年初开始,很多人就发现,在浏览一些网站的时候,
* z# o/ g3 k1 u+ |# J地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。! {: b- w. ?0 i! J) n) w
很多人以为这是网站自己弹出的广告,也就没有在意。/ A2 Z1 L7 m/ R9 A# H4 q  r
  # V$ T& d% k: n$ Q0 r, c8 \" _
我是属于很在意的那些人之一。9 y0 w7 \3 m6 j6 x' \2 D
  
; u4 ^3 y! ~  O4 `3 f" X! a9 @2、这是怎么回事?
1 J" Z/ B. T( J" f0 J6 @  * [5 \* L8 W  D" m
经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),! t6 S2 c) G7 V  }6 d: Z0 N  z
与使用何种操作系统也无关(linux用户也有相关报告)。
- u2 T& r2 N, F! W3 C% d& H7 q我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
: o8 \; z; Z1 Y  
& s" f1 j$ i$ ~" F那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。+ e7 _2 A8 O5 D! W
  6 J  @; i+ S7 V5 N+ ?
那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,
8 ^4 h9 q4 s, W# S& w劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。" a( d0 G* {2 w2 q
  ; F  b) T6 J: |/ W) _
伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。% z, g, r. w# N5 N5 L
  
! w0 G; C' k- K为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。
! V1 O, ?" ?/ l/ @) |' m; k# c直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。  q9 A4 n2 m& u% S9 T" N
我写了一个脚本。不断访问这个IP,同时记录进出的数据包。2 J7 g: h- \5 a- P! K% x! ?
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:; _/ J) }4 O' x- n; V1 r+ N
HTTP/1.1 404 Object Not Found; S3 s8 _# ?1 N& k
Server: Microsoft-IIS/5.0
0 e- T" o2 K) y8 u9 @/ u% P0 @Date: Mon, 19 Jul 2004 12:57:37 GMT; i/ S) g1 y9 \* A
Connection: close
7 T& @! ^3 E  g- k1 |5 k1 ]1 GContent-Type: text/html
3 \: V+ g, J& L4 [3 r( j7 @' ]( ^Content-Length: 1111 R" \: |# T4 C
〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
5 V+ |4 U% W. c7 f- W! S' |〈body〉No web site is configured at this address.〈/body〉〈/html〉
- `: K3 ?$ e6 I, p5 Q* Y  
4 [4 {7 W4 T* C0 b4 p! O6 a7 w但是有两次,返回了这个:* I0 y: ]- M* e+ Y, ]; S  N7 e
HTTP/1.1 200 OK- X" u, p* `7 }+ u: X' |
Content-type: text/html
! `& W% z* x# n  y5 l  N+ y〈html〉; w% e0 _6 c, V! I1 ?% c, {# j- O
〈meta http-equiv='Pragma' content='no-cache'〉# T) S  K" W  r$ ]9 r4 q
〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉* f0 M! W: K8 T7 \3 j
〈script〉' R) Y# L; Y# g1 H
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
" k/ \0 Z( x, Z" P* R( R4 v: n! W〈/script〉
  r1 @9 Y: N/ `# Y〈head〉
- {3 Y4 P0 ~3 j3 p6 A3 @7 T〈title〉〈/title〉
4 z3 X- }; @8 R! U5 n〈/head〉
" M' d( E* t2 w- ]〈body〉
5 K. ~) |. m4 q3 E. ?# @( r2 k7 ?〈/body〉9 A+ d) @; w. q' ^
〈/html〉
% {* z7 F' f/ ]. I! r0 c2 g  
) i3 ]" T$ @" w7 m: s  R: w. b3 Y) Q更进一步分析数据包,可知劫持流程如下:+ T# F9 i1 e+ ?& x8 L
  
7 Q  ]8 l% }" ^# {0 S  _6 E, |A、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。4 e! z, o% d: G9 c" v! K) @, Y7 m0 Q
这个设备按照某种规律,对于某些HTTP请求进行特殊处理。' y7 b( V2 X# k& T& x0 r; C
  
4 K0 I* G  O4 t3 \( [2 y( `& ~4 qB、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
, K5 p. J3 n' g0 _4 a- ~这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。. W6 H- ^# @$ i! h7 F
而任何正常的服务器都不可能在这么短的时间内做出回应。
  B' v2 J& o" O" e  
; ], V  r0 Z' M9 m. e- S$ B5 R+ e; eC、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
8 ]6 F/ |$ d  c' c4 D  
% \$ ?8 h0 _/ M) @" v5 Z9 V3 i1 GD、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,
' R) v8 ~7 s6 c9 D( U! {' U0 B( ^重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。, n0 d, f5 m- T" p$ N2 N
  - B" W1 I& O8 d! |9 V5 K& }% F
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
  z6 e3 p3 q% H- j/ b; |" q这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。/ Q0 D: H- q( s6 u" l) T8 d8 I) z
  
& i# T7 E( w4 n6 L$ o9 e真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。/ h6 r# [& D; |4 G. [+ W
  
2 ^+ ]+ l$ G4 n8 ?3、现在怎么办?$ v5 v) Z2 A9 W
  
# {2 Q0 R" T" t/ S  `1 V: J+ I/ N3 K/ B在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:
7 h* v* [4 x3 A1 K  
  }5 ^4 x/ ^* h9 W( v+ e& x2 BA、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
" a) r3 i& l' w, A1 \  A2 w/ n) V  
. H, N$ f/ d! {0 @" c; p& ~B、在你自己的个人防火墙上,完全封锁211.147.5.121。
0 `1 k' z  K1 g" G/ R6 k    x6 H: r+ f" I
C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。% ^: Z( l- h: z+ P+ _& N% i, a1 t5 a& {
  7 B; [, o4 O7 Y- j; M
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
& C% v, d5 v8 ]+ {  t4 @! q7 F今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?- z4 l; {* p6 L: R7 S
我们的HTTP通信完全控制在别人手里。7 F, s$ S' U4 H  F4 z
  
* K  W2 I# G+ Q( F4、如何把坏家伙揪出来?
+ ]& N9 E6 i: E& y% y' G  $ U' m# T& r, Z. Q* T2 k2 `
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:& t6 o/ V5 k% Q2 a# q9 d8 L6 }
  
. e$ p- \4 x7 p# r2 O方法1:/ b0 s; z# D2 _5 G
  
0 p& A* l; H" d- }$ V伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。* f5 k8 q% g! o+ W
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。
4 a+ N# G; Y8 T6 O- p% S# X那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。- A* B. F1 q3 \' @" j! H0 J
只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
9 F0 V! D+ U6 D, ~% L6 o  
" M7 u4 e# D3 j; k' T2 s1 G方法2:
& |. U2 _1 N4 z* ?( ?/ [  ( y3 n( G3 o9 Z3 j3 ?
假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。+ W5 t2 }' `  t" \
在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。, z4 {+ ]- K5 [: ]* h
编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
, B6 a! f" s8 _# |5 k! i在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
( o) ^1 V" f8 N) ?) g8 [. p/ T  
& C9 \- ]& l" b7 Q9 Z上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,5 `- M  d' P/ z. g
那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。
2 m. N4 \& |: P9 x  u- S8 g* l例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:4 f) `5 x, z$ L' b' z# ~+ s! l& W
MyIP-12-13-14-15-65-[89]-15-57-A) T" U. [; g) G
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B2 e5 G6 T& S2 N# P
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
% ~" B& B: X+ ]2 s; QMyIP-22-25-29-32-65-45-[89]-58-D& ]7 O# H/ a! n$ S8 q2 q
  
8 J. G, T3 ]& I2 t* e! [6 V显然,inject设备极大可能就在“89”所在的机房。
: B9 t# b. @8 L, W8 b  % o+ d  h3 b( x, a* v( I7 _
方法3:4 P# J! U8 J1 C* w) B! b& J
  : z% O8 k. {7 \7 F
另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:! J# [7 M  H; A0 q3 W  P
inetnum: 211.147.0.0 - 211.147.7.255
8 @& U6 v, v9 Q3 d& X5 r6 Znetname: DYNEGY-COMMUNICATION
* f+ D' e0 n  ]( h; h3 Kdescr: DYNEGY-COMMUNICATION* F4 D' o6 d+ T" a! N! b1 b3 _& M7 T
descr: CO.LTD
- e% N5 P3 ]1 r$ Z) Bdescr: BEIJING
" i3 A2 B8 b/ ]3 x7 L  t2 i4 j: ^country: CN! E0 e* _3 P* ^0 D, h
admin-c: PP40-AP
7 i+ M. r5 W- H, q/ B! i$ r. m6 Ntech-c: SD76-AP
2 C  o# L) N* S: Q& Lmnt-by: MAINT-CNNIC-AP
% Q* O# d6 l, v+ ^& w6 r6 Schanged: [email protected] 200111127 G' S2 [/ J# ?2 K1 w# ?! T
status: ALLOCATED PORTABLE$ b) `  p, g. s- l2 P/ E
source: APNIC. m6 p: q/ h+ e7 i
person: Pang Patrick
% N( }: F. K* F1 xnic-hdl: PP40-AP; |0 Q' f' I- t% b8 G2 B
e-mail: [email protected]! H6 m" U( V& ~: C, U
address: Fl./8, South Building, Bridge Mansion, No. 53# i  C' t! Q. V- L, r4 Z
phone: +86-10-631815135 D# N' b  E& f5 P$ j9 d
fax-no: +86-10-63181597" @  g' s/ E1 u: ]* C+ B
country: CN7 j$ f# G8 y$ U2 ?$ S
changed: [email protected] 200303047 D2 q/ n; p+ E# [6 A
mnt-by: MAINT-CNNIC-AP
' K0 X: T7 O! Z7 Y& Z7 x/ p4 ^* y, Bsource: APNIC6 _; @3 J% {' U( m5 T, e) B( q+ Y8 [
person: ShouLan Du( `1 t/ @; u# m# x2 _6 [) e9 i
address: Fl./8, South Building, Bridge Mansion, No. 53
* A2 i! ]& Y. H, q% vcountry: CN, v2 L0 k7 H4 [( i' k8 X# B% K- ?
phone: +86-010-831600005 w3 z6 z+ ^3 Z' h0 d
fax-no: +86-010-831555289 _' G4 Y* G- w  S; \/ R% W
e-mail: [email protected]# J# Y0 }4 H$ j* _, m
nic-hdl: SD76-AP8 w- H- p$ q" p' x* o' C3 J/ q
mnt-by: MAINT-CNNIC-AP3 Z# o9 L. _' d$ Q3 ]  ]  h  X" ~; L! g7 r
changed: [email protected] 20020403
# s4 v4 O  \3 J. N* O2 R$ h9 wsource: APNIC# ?2 u2 C2 V  ^, W3 g7 `: C: d
  2 _+ ?4 y, b/ D9 p
5、我为什么要写这篇文章?
$ [- ?/ `% V8 [. C# Q1 d, o4 B  
4 X) \( y4 T2 ^) K0 B0 C+ G1 W' H新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;
- z8 v2 D; Y2 F; f( m6 b3 }+ }7 s或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。
8 g! Z  |! m: g4 O2 l. |可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。0 d  U$ c4 I5 Z1 l( `; M  i  K
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,! x0 a9 n8 T" M8 R
但是现在你既然打搅了我的生活,我就不得不说几句了。# ^3 ~) l% Q4 f4 R' J
  
( F, t* r$ c# i1 _* P" j" U% J6、我是谁?: `& X& g( w# s# T) N  k! r
  % @; _/ v- E* U1 ^9 p* n$ b& S- l
如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
& z2 c+ @* i2 A) L- Q" ^: k" B#!/usr/bin/perl -w8 r8 S0 ]# a. _; Q0 _
use Digest::MD5 qw(md5 md5_hex md5_base64);* P2 z) j4 J% j4 M' `6 p( X) o" T
$name = 'MyName';4 _* H/ ]; w( [1 n& m/ O9 o
$count = MyCount;
2 ]  o7 l% M0 g, y. ffor ($i=0; $i〈$count; $i++)2 c+ I, P+ E, L. R0 u1 O0 }& w
{/ O# s. k" b) f& {% p* x/ y' @
$name = md5_hex($name);
6 H* t1 I% \8 M3 k) h9 H}
3 e. S9 O9 }) _5 P! C  ^print $name;7 x0 E1 Z5 y4 {0 X( z" Y; C3 N
   
4 F8 \" {9 Z/ A4 j$ P以下签名,用于以后可能出现的关于此文的交流:
2 w- k& a& f5 j1 6631876c2aea042934a5c4aaeabb88e9
7 K* S4 V5 Q; Z2 Y3 A2 a6a607b3bcff63980164d793ff61d170
, k" d8 w6 m/ A8 D/ P3 6a58e8148eb75ce9c592236ef66a3448
1 q1 D" I+ p4 I4 ded96d29f7b49d0dd3f9d17187356310
4 z# V% M: S' B' B' i' [7 G5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。1 z0 x  |4 H& U, m
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。4 e# y; o' E' a1 W, N6 B

9 V" Y8 b+ Z& d3 Qrulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-26 10:14 , Processed in 0.017264 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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