XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。
- L: A$ A. F0 f, O; Z" F
1 c4 C$ L# _; E, X" R# q* q; S - ^0 ? \& R2 ^- H3 b8 o
大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
% S( D$ m0 @4 }; k ' F( j/ U* D* o: V) z
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
1 A: z; a- h( [ 6 K3 _$ ?. U1 @7 Z, @7 D$ F1 K
/ {1 l5 v5 s: A; `) X0 ?9 s1、针对性挂马( Q3 G3 C, c0 g; {; Q; h% T
* u" r( s0 X7 i6 v
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。
8 e4 F" M1 `' @& ~) N) [/ m7 x! _# m2 Z! i% D y
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。1 n! ]4 R# E4 L) d7 R# P l
: W: f. j8 O: F# d2、用户权限下操作/ h7 l3 y5 I. g% c& y, K9 `/ c
! f+ _. p$ D9 z2 X# e4 f这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。+ W- `/ \ l3 `: T) i
9 a1 W7 w7 f$ U' c, t" M3 a* |, b% Q3、Dos攻击或傀儡机6 [/ I+ x' d. e$ {4 D5 W7 K6 n
9 i* M C$ }( F* [# x. x8 X5 s8 ^: o
这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。2 M% M! l' k7 Z: k
6 B/ R" a4 k t4、提权
3 |" B1 |) {. ?, E, `: t
1 g; b2 s$ k# i1 n) P一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
3 q& L! w( X$ i& V% _" @
+ j; O1 x- D$ }! t: }, x5、实现特殊效果& S2 R1 M/ p5 D9 H. v
7 c: o4 H6 G6 Q% M譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
5 ~) K+ }4 N3 ~& T5 |8 ~% r% F8 w
4 F# V# {2 W8 x% A结论:! g2 T# E4 [; U) E3 _& A+ t7 i3 l
* L& C& N4 j6 F+ g( u5 V1 V' {$ ^
从而你应该了解到这些网站应该具有的性质:
+ L4 f& _& V; W0 g0 [! _6 h L; R+ ~6 V. }
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。6 u5 Q7 l6 [, }; }& c
( k" Q- m: D6 a3 a7 G: [+ j$ n+ K如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
+ j3 H L# r' b' l0 w. s1 x M B5 {1 K; Y. E& A0 r- E
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
+ v0 d7 X1 U5 J& U& X' x; E* Y; o V+ w/ q% u( C
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。; M0 Z; y$ U o; u$ g6 X" t
; |8 I- ^8 z! K" s所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。
" e9 A! F' Q( p& X% ~/ v$ j1 A- k) t+ g, \! Y- w
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。2 V; e9 K; h6 E/ W, X$ S( s8 R
|