XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。! N: f* E2 z% ]: u* K, J# ]8 E
; c; ]! A L# X7 p
! Q$ Y* i, {! `! {& q+ {) m大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。9 I5 @" D; v) W* g& E
3 }) W8 g: U4 V$ h( n' ^
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点: ' O% ?4 K1 Q7 _, E
; [8 B S0 D; I" i* w% w' ]6 Z! Z# j% a
1、针对性挂马3 t$ Y! N; e2 Y2 p, q) M3 D
( V, v1 i; [8 P' [, y' {9 t3 }所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。8 }7 }! ~1 W3 [' J; V8 F
% d/ F4 t' u' d2 o而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。" q% s8 @3 V3 L# |
6 T$ H/ _ Z9 D5 a' \. w" ~
2、用户权限下操作
" S8 Z' P' s: M) N+ i% j% J+ b, U- u' _0 L
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。, V) Q2 q. O8 \
, _6 o. O' p3 o2 J: F$ I; F3、Dos攻击或傀儡机& B4 e1 Y, x; {! W. s5 w2 g
" B3 o% ~" p; Q. s这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
6 W9 w" w! O0 d+ t- ?( ]' \' y2 |( |; R4 H& q9 b9 l/ E
4、提权$ k# m" n! z5 O8 f l i( J
8 N$ x1 r ~* L7 b; F! h2 X
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。, M! A4 K' s% j/ K" f5 h
$ @. q! ^+ i0 q) i
5、实现特殊效果
# b. N; a% E2 ^, v( Z1 E" C+ Y! S: D$ ^. j, ?
譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。. r# ]5 y7 m. u5 e! @
- h7 r3 z+ A) S0 u- x
结论:
3 H* k$ |# Q6 I: ?/ O5 P9 M* b% n. Q9 ?/ b: H
从而你应该了解到这些网站应该具有的性质:7 @# \5 A4 R4 x' Z$ b$ H
' D6 Y1 d1 d; u
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
& c" \1 E% J: e
5 w. B! k+ b/ Q1 l5 l- F w1 b如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
( d7 [) r$ n* m1 l, ]4 f( I, \* O) Y3 i
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
; z0 s4 s; d, h+ q- [7 H/ H! |; W
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。0 u% \' E1 e4 i
k1 C4 N \8 L所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。6 W8 `& ?5 e- d7 ^" U- n9 x9 v
5 _) A Z7 Z" A1 b: v k
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。
8 F" t" Q1 e$ n- L0 @7 K |