XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。; j0 O" s# z9 n% x
: ?: P! Q: l0 H' N6 o
# |4 E" ?* s& G, X0 P大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
; q8 E- {. M: c5 q 3 n3 a: H' d+ {( k5 W
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
% a: P& C/ {. d9 k3 D2 \+ N. s, t
* s9 Z; m2 m# m8 ^! t5 h+ y( C7 ], p$ P. g, H# u- s% a
1、针对性挂马; Y/ F3 Q1 D6 P3 c& Y
" F, F6 U" y! h
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。
: [+ H, x) Z- M% ?( ]2 w% @
/ P& u' q5 m6 x3 Z4 x( _3 r而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
- s4 d# K! |' \" C1 ]7 K6 U: Z S) |* C! J! F! z6 E
2、用户权限下操作" G1 W' F6 g1 G5 g
& S0 B3 r7 F. H
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。5 @8 ~0 f+ U8 m$ G& O
' p, v' }6 H& @) H8 W3 I% J( g3、Dos攻击或傀儡机
6 R& f! j8 N- d% W- x7 e% l5 c& x" j& j# D2 }
这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。$ f! T8 a$ q0 a
* E' O" k8 n1 S) M. g6 N; A
4、提权) N& @+ r7 }4 _: j& j- Z8 @; O) N
6 e, Y. |- x5 B; `9 a- i, `/ N一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
. P4 c" ]) R/ _. N* Y1 `; E# ^* W4 d6 H
# i2 A0 E# v, b: h! z5、实现特殊效果' W, p) e! |, u1 t3 e# F3 l
6 N' S4 l% S8 b1 P4 U
譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。- H. x' W+ ?* D6 Z4 z5 \+ e
" {/ e% t4 i+ O2 \结论:
9 l5 F9 y4 k5 D7 z. o8 R7 C" L1 e( n% ~" d
从而你应该了解到这些网站应该具有的性质:2 w0 N9 Z; U* P
' F5 [: }5 H9 Q1 B' q* V
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
+ T3 g0 ?, x2 a$ \# H. x+ o$ W$ W" T+ a
如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。' D, Y/ m8 B! r: z+ E0 G7 q. u
" S7 I) K( {4 l! w3 p0 W
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。9 n) Q7 U$ s% Y/ D
( D4 o, }7 p4 s' F/ X: q$ g这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。+ c* o9 I5 m3 z2 z9 b
7 w: j' m* o& f
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。4 K( X- B+ Q. H) i7 |
( O/ H7 l7 h" } U
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。
, n4 d0 Y" U9 [7 e) L. N |