XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。* x* w. [9 C6 I; j
. N; j2 S0 ]8 A f6 k
: a9 _- }7 A# o- y8 s, C7 I大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。8 O! l3 O0 m: V
, s: P4 q5 H& |) a4 Z' J7 E其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点: / L6 Z M5 K0 j# D% ^# z
4 r, Q6 L) r6 y- ~, A/ X6 U7 V; E% d
1、针对性挂马& r$ h9 c0 O, T
# Y4 E o# g* G$ g3 K. k
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。
9 W. M( {: x# L$ p: a) _3 ~) F E$ S
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
- h- P* {- p% w* D6 w" O0 M$ d0 S0 H; w r- w
2、用户权限下操作
) L( b1 Q% L+ i. b/ C& \. R; j
- m5 C' d' R J5 \& T) x, _, E+ h2 y, T这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
3 T* p v& I5 e8 V
7 I# |+ X" u9 |5 t5 G3 Y- ^( J3、Dos攻击或傀儡机
+ b$ y. o: a9 |( w/ w" q& S) Z G4 p* X: n4 R# B$ l* ~5 \
这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
& e0 j* ^0 p7 F1 X
2 s" e( H2 w3 W0 x( k& V% Z4、提权" J/ R1 ?4 U6 V/ ~
) r3 A6 D$ K" x0 Q一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。: \8 Q5 p/ r0 T3 Q
$ g% E: \/ R8 `# V* I. s5、实现特殊效果
0 b; z. ~1 z. O, }7 y* |$ g; i4 W8 x+ b
譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
: Q! B) {- b8 r8 w
2 i& x3 p- l) B( T L* M" A结论:
8 @% }! _- E: i8 x' b$ b' v, Y( m6 Q8 u
从而你应该了解到这些网站应该具有的性质:
# S) j9 T8 l5 r' Z2 f1 r# |6 D
0 J+ R o: @7 G: b极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
. {; r z2 {: n( ?5 T: t
% p: w K8 z$ \4 D/ _5 \如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。- v- d; o/ c$ O* P& F
( G; K6 H9 e! J& V! t其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
+ f, M' v. C2 O! d/ ?! F7 q: w- a/ O& ?' ?+ G, Z4 n/ `
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。
$ e0 B- L; F, k7 u( S* Q6 _) q( C$ f5 W: y% R) n
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。+ L5 D' O$ n% s0 w% k4 h
. g2 g) y( R6 Y8 z- B- J这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。0 ~% N2 Y* @; c6 P3 i' W& H7 w$ t
|