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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。/ z. \$ l8 }; N* E  B- m# y6 K
1 y" d, u6 i2 @2 d9 C
3 ~# r, V" R. U5 `8 N
............................................................................................................................................
& o% R, ?: u& L* [, c1 D& x' J  i+ [0 g6 f. T2 W4 W: K
是谁控制了我们的浏览器?
2 V$ S) F5 k5 }% q+ w
1、现象是什么?
" y# X0 @5 ?+ P* }  
; ^2 |( S. [, A大约从今年年初开始,很多人就发现,在浏览一些网站的时候,
3 R% F) a! o  e- i3 v0 U+ M7 j% u( R地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。% C4 i2 m0 O3 d
很多人以为这是网站自己弹出的广告,也就没有在意。
# J" C1 G+ K! W) I  
* U6 @  A+ ?+ J7 T6 y我是属于很在意的那些人之一。' A- n: H# G2 E; ~9 X
  
& _* s  `- D' I2 |+ a4 P/ w; T2、这是怎么回事?! v- }3 L& ^* u4 C. G% G' P; E
  ; ?9 Y+ f: h; e* d" _7 d
经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),
& |* H5 e% h% n, B6 ]4 V与使用何种操作系统也无关(linux用户也有相关报告)。
$ O4 y! p) r5 O' k我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。& E& ^5 N  B- F* n! z
  
+ q& P; l9 M  }那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。
, G0 s1 }( A1 W8 q" K8 M9 R  
3 F, C4 n4 V9 A! B1 G那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,2 v: m' s4 h) Z, ]7 N' f, P
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。/ Q& z. C0 i' N* M) ]* }2 {
  
  Y5 O& y  P* p# K: N8 t& f伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。" g1 Y2 v, ?% p- X5 [+ I4 Y! u9 `
  : X' V$ s; z: G- V) u7 |
为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。! e9 ]: Q; m# y5 ~  {
直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
; i% w1 L/ x3 l# n& S2 M: P0 o我写了一个脚本。不断访问这个IP,同时记录进出的数据包。( w% d9 r; T3 m6 f( k/ c
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:9 Y; \+ D) ]! d, `
HTTP/1.1 404 Object Not Found
5 |9 E4 I1 c& U# pServer: Microsoft-IIS/5.0
) m0 \+ s- ~+ k. ~% }Date: Mon, 19 Jul 2004 12:57:37 GMT
/ Y- |( Q9 y: h& g2 r5 cConnection: close- D! B- F. m& j$ L/ ]- T) J
Content-Type: text/html  \  W7 @' s4 E" j( p# U
Content-Length: 111
; W9 p  d" {3 \3 j& p& e〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉! B  L1 F2 t- p6 h9 t9 }) c
〈body〉No web site is configured at this address.〈/body〉〈/html〉
6 \7 O8 Q) Z  {! |. B8 H0 i' L  
0 ], a/ a! w) g2 S+ e3 C6 D7 h9 G但是有两次,返回了这个:
  f& u$ r% z4 U$ L& P* [HTTP/1.1 200 OK
7 P% R2 d/ B% W1 t0 v3 T7 JContent-type: text/html" k- ?* f6 ?' N
〈html〉& i" _4 ^6 a$ L+ E$ v' v4 _( {
〈meta http-equiv='Pragma' content='no-cache'〉; H; H3 I" r# f- h, w# h/ J% }& B
〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉6 P+ q1 P3 L+ X' }) M. j5 ?1 `
〈script〉
" n7 ?4 N4 j5 m1 }. I  \  C. Owindow.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');7 o' g# B( P/ O" B" h/ {
〈/script〉) g+ V1 b0 f: `9 o
〈head〉8 ?- u9 ?, `' o
〈title〉〈/title〉6 _. E/ C; q0 E5 ]" P
〈/head〉
; J  M2 p7 E8 p4 N〈body〉0 ^" M( Y$ ^+ T$ l5 g: u5 O$ \
〈/body〉
2 k4 t$ M: d8 b1 U0 b1 x( a% x( u〈/html〉
! o# l( C) W# \+ X) Y8 Y) |- \  " K: J) L$ F9 f" A9 `
更进一步分析数据包,可知劫持流程如下:
( z' ], \+ A" X( E  ; p+ r" K: u# Z% E4 P$ C9 k
A、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
# [3 F7 C0 U1 b- b2 d, Q- C2 T) E这个设备按照某种规律,对于某些HTTP请求进行特殊处理。7 P4 o3 t2 }( Q* v9 t
  
8 Q, w$ U  N, k: ]: s% N2 o6 _B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
1 t# `$ D2 M, U这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
) M; L" [$ M5 Q" C3 @7 H而任何正常的服务器都不可能在这么短的时间内做出回应。, t2 w0 h4 s; g9 t+ i. j7 {
  5 S1 m  G# C* \# @" F
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。6 S' H/ {% x$ ]8 R, |  n8 Q: X2 ^5 N
  , }/ R& W7 V3 P/ r7 H1 f( [/ }
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,
: x1 Q7 M: g9 {) v! ~; i重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。) R3 Z7 J6 P6 q7 w$ C/ C
  ; o- o- U' e5 F. ~# ?' e
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,; n4 ~3 C" H# `$ L
这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。! n" S& a$ a3 k% T, U! l
  . c7 Y  o# ]  Q6 v5 e
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。
8 W, l/ z: y- x& @$ C, ^  7 y% p& ]: S  ?* q2 k
3、现在怎么办?* ^: u& N, t8 l' @4 @+ i
  1 P# T! n# c7 U2 i& b/ s! w' g3 v
在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:8 B- I7 b) m0 b3 }0 x
  
' G/ C! C& B; vA、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
) r. X1 _  X. a( A, u  
! m6 m9 R  Z6 J/ x( X+ P0 W* v; J/ NB、在你自己的个人防火墙上,完全封锁211.147.5.121。
0 S9 H2 Q$ e- S, ~" \  
; \7 |" V7 z6 P, h3 aC、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。
! D3 m, R* l' b' ~0 d+ p% Q9 a+ V! L9 z  + b5 |$ H* F8 @8 {* i% W
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
+ v4 H7 J! L& P& z4 n2 C今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?4 W; B/ N2 h$ s* r& r1 ~$ y4 d
我们的HTTP通信完全控制在别人手里。3 x7 Z4 G; o) p6 V
  / h' e: k" b; f; Z5 l6 M4 \1 l
4、如何把坏家伙揪出来?& d+ F; A6 H* [* H* y
  , H3 H) z) j( s! R; v9 F1 {
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:, U' b( B8 y: c7 J  K
  
* q# m9 J' B! Z' E' x1 c  S8 D3 Z& A方法1:
; h) A3 P0 `* u* J2 x; L# D  - {+ V* ^. }1 {; v) s
伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。6 Z4 Z6 [' W$ F; x# I4 F* {6 k$ Z
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。) d* Y( L8 J; B$ h7 Q& @
那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。0 O4 r2 G+ q. M& }& N6 |
只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!' U) K2 j8 g& g: d' q
  
  i, c3 j1 ^+ P% \8 j0 Z2 U方法2:2 y: F0 l/ M. s1 B2 }/ V
  
( w9 Q7 V) B/ w2 E+ l* i( u& ~假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
& q/ y. B, x2 {在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。
! H' f! w; `% F8 b8 Q$ y编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来," [. D) Q% O3 I8 m
在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。3 k/ ^# B6 M% {4 z. C
  
  N6 n5 F+ m  R4 W& R8 N7 J: Z上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,
0 [8 K' w5 \" Y  X那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。. G$ H5 d- Z7 _8 g
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:
) m8 z& b% Q' G4 YMyIP-12-13-14-15-65-[89]-15-57-A
# s: o& ?- C$ _, v, Q0 JMyIP-66-67-68-69-85-[89]-45-68-84-52-44-B7 S& R( S/ i4 z/ Y9 m& f. R
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C0 s" _7 S& c5 k9 ^) z7 Z( |
MyIP-22-25-29-32-65-45-[89]-58-D6 p5 `7 h9 r5 w$ f3 n" {# M8 P2 W
  8 z2 R  J; o; K# t5 |( i3 T
显然,inject设备极大可能就在“89”所在的机房。
, Y# f, v$ U# c/ V  ' W, U* A* Z4 G( V* R' z
方法3:
+ s; f2 ^; {, n+ {7 j- R0 P7 w  
3 I" `% {! S& V2 I  e& f5 q# Z另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
. x# V1 k* ^7 `7 Einetnum: 211.147.0.0 - 211.147.7.255
! o5 I8 @) K1 A4 o0 r$ Dnetname: DYNEGY-COMMUNICATION4 O; g* ]# n& Q6 U
descr: DYNEGY-COMMUNICATION# B2 d, W3 a1 W- i- {/ j. p
descr: CO.LTD
6 u( \7 w  r, [, l$ l; Q; adescr: BEIJING) \; |' B0 A$ v$ P; h- c/ a
country: CN3 s( f6 O4 i: `: p6 A5 f- p
admin-c: PP40-AP2 `3 o3 v; ~' C" H! z
tech-c: SD76-AP6 j: W* t7 g1 `5 w/ _7 ]
mnt-by: MAINT-CNNIC-AP
9 s0 P5 w% |% \. p: V; Kchanged: [email protected] 20011112) u' r' b+ N2 `$ n9 [
status: ALLOCATED PORTABLE
# r3 ?1 @8 U& n! l. O4 h% H8 [; G( `) Hsource: APNIC: R' B9 A% j5 S/ O; [
person: Pang Patrick
: K4 q  h* J0 ?7 {2 W  H7 Cnic-hdl: PP40-AP
6 B& N: s7 p( L( w( E3 j3 g% o# Ee-mail: [email protected]
2 e5 w8 h' \4 D' Gaddress: Fl./8, South Building, Bridge Mansion, No. 535 W; m9 |9 D: a- j9 ^
phone: +86-10-63181513/ a/ `0 j# h% l) q) ^; ~' [  u  s% q
fax-no: +86-10-63181597
' \- H( P; k9 ^5 \country: CN, T7 v$ r4 t% i- h
changed: [email protected] 20030304; a8 }% P! B( v8 T! a+ R$ n
mnt-by: MAINT-CNNIC-AP
* O' v% @- _  p' t% r9 A- r7 [/ {source: APNIC
* H& W6 y6 }( h- t8 l7 J& hperson: ShouLan Du* U5 F" l$ M- U" |  g! a3 X. C# `
address: Fl./8, South Building, Bridge Mansion, No. 53; W5 b1 i6 y8 ~  i. X
country: CN( U6 B+ A5 r/ |& H) F7 Y4 Z$ `) b) Z
phone: +86-010-831600004 s% t8 p7 B7 V3 W( x0 K  X
fax-no: +86-010-83155528$ |" S0 E/ U, H& S0 b
e-mail: [email protected]7 [5 N6 l. B4 Z( j* f! ]$ ~
nic-hdl: SD76-AP0 N; ~1 M* w3 O. t
mnt-by: MAINT-CNNIC-AP
! m5 Z# D( C6 Y' Mchanged: [email protected] 20020403: {1 ?9 v8 @9 ?2 ]6 t
source: APNIC) ^6 ]. a3 I  O5 [; ?! x2 x' D  m
  ) i- u. t# ^3 _
5、我为什么要写这篇文章?
) k- o: I1 X0 {7 `* O& Z9 s  
3 Y1 `% I+ K; i6 l' s. w2 y, S' p新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;! V" p8 N/ j: h, ^0 U# v2 k
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。
% l6 |9 X4 E5 Q" |. R9 M" c4 ~可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。, ?% R7 g; A7 m+ ~- W
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,
. O7 \' Y  U: u3 {  P/ Q但是现在你既然打搅了我的生活,我就不得不说几句了。+ z$ f1 ^; t+ U6 q4 y
  . g! J2 G2 l) \* M$ f, U# W
6、我是谁?
% L* E" l, `7 w" K: I% a. c9 q  
9 ~5 _2 w" A9 M! S$ U如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
4 ^8 X6 f2 l. H' t1 i# D- q5 ^#!/usr/bin/perl -w
  `( d) [$ b4 g3 wuse Digest::MD5 qw(md5 md5_hex md5_base64);
7 M1 G, J% l& k6 ~4 y! i- b/ o$name = 'MyName';; i. S7 \' h9 h) Z' \  A8 V
$count = MyCount;
$ l6 t+ p2 }% G% C4 n- ^for ($i=0; $i〈$count; $i++)
" }9 B0 t. q" T* k& l- M{
# R# F! }  \+ N$name = md5_hex($name);6 S+ G9 b3 Y6 R/ z" |
}2 W! @: |0 U) b5 J8 R0 P; p6 n: a
print $name;
8 u3 R7 J* o  b, C, k5 @0 g# @   
" Z) V* a2 X' I) U- T+ M) f2 [/ B以下签名,用于以后可能出现的关于此文的交流:! Z0 }5 S6 _) k
1 6631876c2aea042934a5c4aaeabb88e9
& |. ^  h  v6 ^1 D8 s2 a6a607b3bcff63980164d793ff61d170  }6 K9 Z: z- G2 N8 a
3 6a58e8148eb75ce9c592236ef66a3448
" V, c) I9 k* n; @- `$ {- J6 p4 ded96d29f7b49d0dd3f9d17187356310
# B) f$ s8 k2 A: W5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。7 D$ K5 U& T* O4 q* \, l
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。
" E* v  l) C& v' k5 Z) g1 y/ d1 i. r4 V: ~9 [$ E
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-4 19:30 , Processed in 0.114335 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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