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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。, C& `+ m9 {3 X  ]$ b

* R3 i: x& m' O" c
# s+ R& K7 N2 D9 U# z/ \3 _............................................................................................................................................
2 Y9 b6 c+ C+ T2 h% G4 z, `
# P+ c3 @& v! ]8 w7 K0 \: v是谁控制了我们的浏览器?
. H% S2 Q. k. l0 |+ L7 p$ X: v
1、现象是什么?
& V6 O5 [% G0 |' F) H' y+ C$ T/ H# v( F  
  h' d* Y- @7 y) ]* N. @4 q大约从今年年初开始,很多人就发现,在浏览一些网站的时候,/ e) W# x# j7 e8 G& x$ n
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。9 K8 y9 \5 \+ p: L% l5 f$ \
很多人以为这是网站自己弹出的广告,也就没有在意。
2 i  X4 i& W3 F0 ?, G; I  
& ?8 {& ]: V2 V( }7 f我是属于很在意的那些人之一。3 u9 p9 R7 \# @8 ]$ O/ C
  
2 X1 n' a1 f  A( R- T2、这是怎么回事?& i& o- ?: O' r" k( P
  
! C: ^1 F4 G1 c) N经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),
3 ]  X  p+ i4 \! @与使用何种操作系统也无关(linux用户也有相关报告)。9 h  v3 I' y: H4 @' f- P9 t- o' ]
我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
% Y9 S$ D1 H1 N2 s+ [  
  d9 r: @7 ?% t+ Y, J7 u: b3 C$ n那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。! ^# P. \, Z8 e) a8 m* y- n
  ; O. f: C- Z& T, l
那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,
  h& N2 \7 N2 n; i1 R9 v% M劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。
: W8 k1 k2 h# [  ; \8 N. E$ h; q+ T9 K& M
伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。, A% o1 a0 z& u: h: C4 r
  
* \' m* [+ b4 b" }/ U为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。  ~7 n& E1 D9 e/ E1 N
直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。# E6 |( [3 Y7 R$ C7 Z, V
我写了一个脚本。不断访问这个IP,同时记录进出的数据包。8 x. O2 ^" Y* J! n$ ?* J# a( L' @; `
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
5 x3 d9 W1 f0 S+ o; A! I0 x& ZHTTP/1.1 404 Object Not Found
8 P9 B# k* l4 {5 r: h- cServer: Microsoft-IIS/5.0
' O5 s; W* \2 S, VDate: Mon, 19 Jul 2004 12:57:37 GMT) e! K: u! ]/ d, l$ D
Connection: close' j0 Q' B* h" A/ h
Content-Type: text/html0 s6 ^: z' C6 o: I
Content-Length: 1115 r6 X' \  O/ B
〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉4 f- s  S, [9 S0 [8 X: u
〈body〉No web site is configured at this address.〈/body〉〈/html〉
0 h0 @5 Z% b& L/ V  u  ' p% ^& P: m/ C$ W7 x
但是有两次,返回了这个:
6 D) Q' o) L& h; \; k5 ZHTTP/1.1 200 OK9 h& ?2 m+ m/ G; R& E
Content-type: text/html
- ]- Z; t' H2 v; G+ e/ z2 }〈html〉
* R! r/ r8 z" r5 r8 y〈meta http-equiv='Pragma' content='no-cache'〉
8 U3 r6 i3 G- j  H- T9 |〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉* H2 d2 D) C. V% v  V8 Y# P( H5 _
〈script〉4 `6 C6 c1 i! y6 f: a
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
. }6 b! X* a5 v; H〈/script〉
( X0 r. Z  g7 j& m# Y. T& T〈head〉
; u8 X" G  v# e" M! w3 q3 P4 W〈title〉〈/title〉
6 p8 I# p" i- H( e( L& ?+ D6 Y〈/head〉
2 r. Y& }1 a% u* n4 W8 K& E〈body〉
2 L' g2 t# j/ ^5 t& K$ B〈/body〉6 A7 U8 x: V* i, i
〈/html〉2 `4 ^# y( O2 O3 b0 K
  + a" {3 L( Y6 W/ H! ^+ P
更进一步分析数据包,可知劫持流程如下:
, w6 p1 j0 l+ m6 _1 e  ( @! ?# Q1 g, X" h* v# ^2 N$ C
A、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
# L3 j! g1 P& H6 t2 Y: g. z这个设备按照某种规律,对于某些HTTP请求进行特殊处理。! z9 ~/ q* N1 q* o% \! v
  $ p3 u4 n: V" ]& L/ R
B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
3 U- o8 Y; j1 z  r; ~3 P这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。; ]* B6 G% O5 L# v- `6 O$ V) H
而任何正常的服务器都不可能在这么短的时间内做出回应。9 k4 L& H9 E; a
  * k5 [- t0 s8 Q! Y' c4 ~6 t
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
( q# K" }8 M/ V4 V/ D0 e  0 x, X' J5 v4 f& N
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,
; \) P$ U! L+ L, S9 t重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。
& K4 J; ~- v8 B9 J, T, C" @  9 w' }6 l! i+ K) {% i# j
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
: `2 s5 M5 ~* D* {$ D+ E, s5 f" n这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。
4 t* J% A4 f  D8 [- S1 n' e  $ Q1 _+ {( l; U' O: j  p( w" J
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。- H3 Q0 j6 f4 S" u- t- n- a/ x
  $ U8 ]# a; T( h% p4 w
3、现在怎么办?' _% T' r/ N; o$ b
  . P. _+ H( |; h2 @( y
在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:
4 Y& N& `/ R( {. q9 U  
' H6 s4 O6 }0 \- T0 M+ l6 L+ |8 n1 mA、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
$ d4 i# @  e+ v) I  
# X* `8 c* w0 z' `" s5 iB、在你自己的个人防火墙上,完全封锁211.147.5.121。
3 }" U6 {4 a4 P5 L/ h/ [! c, w  
' w* l5 Y+ G) E# x- N' SC、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。
, G( T/ D- R* S7 }  G  
( P5 s) R+ ?! d& n$ t绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
' }3 b* N- `) T7 c今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?
6 l8 I/ Q0 |% M, e% V$ P我们的HTTP通信完全控制在别人手里。7 e/ m  q+ c! @+ V+ A
  - e/ `0 Q0 @# I9 p6 a! ]
4、如何把坏家伙揪出来?
2 {, |' |# E" y  
  C1 _5 k" b# ]$ V2 c如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:
' {3 Z: ^4 o+ |8 Q0 R- h  
  T  T3 K% m8 R  x3 }" k+ k方法1:
, t. f8 n/ @4 J  L- o: ]8 m  0 F: x& j+ M) _# U5 P7 c' u' j
伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。
. v% D2 }$ x8 h' \( x2 o以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。
- a9 x3 j/ [: E7 l: h4 t: Y  R那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。
! O$ t2 P3 G7 R9 J& W1 o: p* I/ O; b只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
3 W. E3 {2 p9 L  ; I, b0 t2 F9 e- v
方法2:- a* g) U; v' g+ p1 H
  
; P2 Z$ n9 R* T假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
5 e. g" [- H2 N7 i! d/ \在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。2 S: ^0 m. `7 p, C
编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
# ?1 e0 Y; ]7 p" b  y' x5 {在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
; p- ~+ |9 d+ f5 p; T  
/ v$ j' V5 c% Z$ U, X% B8 a0 ?上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,
4 T2 S1 D" H- k6 ?- C- g那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。
) f+ L1 t; w, r3 {& n" ~# ]例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:* J0 B) _9 W$ r  s
MyIP-12-13-14-15-65-[89]-15-57-A& ^( Y. c9 n4 S, z1 V- p2 C- s
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B
/ t- `7 l6 c) f4 Q% R6 c8 fMyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C& K+ q4 p* Q1 K& z
MyIP-22-25-29-32-65-45-[89]-58-D  q& D+ w) [4 \2 n
  1 h% B4 |0 }$ f  l/ N
显然,inject设备极大可能就在“89”所在的机房。9 X. V% w2 ?0 w8 r- p  S$ q
  . i3 M) u4 p' b! Q
方法3:5 r, B8 c, v7 b
  - g) K: o" C( U, z6 q' G" d1 [
另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
0 H' I; {2 ~9 g; s0 e4 X, C" sinetnum: 211.147.0.0 - 211.147.7.255. t; c' K0 [, R" l* t9 s! m
netname: DYNEGY-COMMUNICATION
4 a: {3 Z# e+ m5 O- e8 }; p  l; F0 `descr: DYNEGY-COMMUNICATION( o& _, @. ?! m# R, d% D1 _
descr: CO.LTD
9 P" G6 b0 \" M8 ?descr: BEIJING
: m3 i0 F' Y6 X$ j) y0 ^country: CN, I& W' |# l2 {% }1 ]& I
admin-c: PP40-AP- L: L4 b: C, a/ J7 w9 z
tech-c: SD76-AP: T0 t5 ^6 _2 O) ]% P$ c0 U3 X
mnt-by: MAINT-CNNIC-AP9 W: g; i! R! I5 Q. n% H) g  M
changed: [email protected] 20011112
) ?1 X0 ^4 S6 v5 I. D( n4 C6 Hstatus: ALLOCATED PORTABLE
) y3 q3 ^, z% u  F+ Q) L! B1 ]source: APNIC
0 p/ H8 ^+ ~6 T4 M. H( a! A4 A" S$ Wperson: Pang Patrick
3 v) i% i, S, b  Wnic-hdl: PP40-AP
2 l) Y5 C; T  @# {e-mail: [email protected]
! _- I% q6 C& S4 Qaddress: Fl./8, South Building, Bridge Mansion, No. 53( [/ F) M* r- i2 x5 p# q( C- \
phone: +86-10-63181513& ~4 `  |# W* [3 B: d8 i8 K1 E: ^
fax-no: +86-10-63181597
/ t8 g( T+ k2 K! O7 zcountry: CN
! @( R. k8 D! k' o) Uchanged: [email protected] 20030304
* k: f7 G# f  }mnt-by: MAINT-CNNIC-AP
2 R! u) P( H4 Q8 n+ H2 E9 e% D* isource: APNIC  Z8 f" z. L3 W0 E& k0 S
person: ShouLan Du: y& V; x' ~$ b3 p% p0 G. m
address: Fl./8, South Building, Bridge Mansion, No. 53( l7 t* _0 X! q+ L
country: CN
+ A* Y  e5 Z- `phone: +86-010-83160000
( \& t% o9 W  h. ]- Q0 x. q# wfax-no: +86-010-83155528
3 G/ @/ @6 ~, C6 \$ X+ te-mail: [email protected]
: u* q4 L0 D9 s* Qnic-hdl: SD76-AP6 |8 \2 g% T6 \/ Q4 w
mnt-by: MAINT-CNNIC-AP" j6 M- G8 \8 j# s+ ?- K4 A
changed: [email protected] 20020403
2 M4 ?7 p; o4 |source: APNIC
1 N0 r* k2 Z, x, O2 s' [  ; `* h+ v6 N6 F" z
5、我为什么要写这篇文章?+ J" o/ h( w: [
  % h) o. _- m0 G) S
新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;
0 `2 Z6 f1 }1 @或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。2 Z0 p( H# B  U4 y# }6 [* I/ ?9 j
可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。+ @& e7 K) b, s! `0 A4 Q( H7 n
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,( D6 S5 n! `* @+ V6 ^" y' n
但是现在你既然打搅了我的生活,我就不得不说几句了。" I' L* P7 p6 K" M. n( u8 |8 \) M# v
  
% D! Z; r$ G$ G  J2 h7 }! [8 n4 P6、我是谁?
; w% {) K+ Z! r3 N( ~$ L5 {1 S  
7 ^+ N' z& w/ e# @1 p如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
9 B8 y. [" z: `- X$ W6 N: z#!/usr/bin/perl -w1 u% }; t+ Y0 P/ i5 H1 m
use Digest::MD5 qw(md5 md5_hex md5_base64);
3 G1 q  S! W$ f, v# c$name = 'MyName';
, T: [  D! P+ N( X2 l& w; h) @4 J$count = MyCount;! Y- R. c0 r5 e+ L5 \' U
for ($i=0; $i〈$count; $i++)
! I3 P  G; K5 r% F" c& v{0 R4 p* x# [: w
$name = md5_hex($name);
9 E- V$ K3 C+ P4 ?( p* f2 I}
2 _, M8 ?# A& G/ a6 X8 H5 uprint $name;% ?6 a! X) V' h' ^5 J
    0 ]" L$ h  k% y/ H
以下签名,用于以后可能出现的关于此文的交流:1 `- ^3 o. |8 x: x& l0 u/ z. a8 j
1 6631876c2aea042934a5c4aaeabb88e97 u4 X! F: O; b; }( }" K& a2 ?/ s
2 a6a607b3bcff63980164d793ff61d1708 Z' |4 B2 e* f& B" H8 e
3 6a58e8148eb75ce9c592236ef66a3448# u' k! J; y+ s0 _
4 ded96d29f7b49d0dd3f9d171873563103 ^0 \) M( a9 w; L/ Y
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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。% i. L/ S7 m  U3 F2 G
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。
: w% Q+ _" k6 b$ f: c. X4 b& s! l5 X$ D, t% C
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-26 10:16 , Processed in 0.017649 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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