XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。( I( T7 ^$ }8 F$ H/ w" K
9 M* |( S) a9 Z8 l
" G" x( g4 H- \1 `( R" L大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
, A5 J2 t$ X+ S 9 Q/ c' J7 y7 _ | C1 _# t+ e# ^6 g
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
5 N8 d9 |! B7 j0 e 8 k) q% Y3 I7 V' h- z
. c+ A4 E9 p7 a) i$ n$ H: H
1、针对性挂马
. x+ i) r7 y. j! Y2 X g( E9 W W6 S. \9 a
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。8 L& R! N. G3 _3 d( R! H
8 e$ o0 R9 |! k! \* x! o
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
. u6 t; h# H$ \2 h6 t# F' e
$ L5 n8 G0 E0 @2 ]$ n c8 o& h. E2、用户权限下操作
, [ K+ r5 i% N3 p8 U# J- e2 @# \. D& N/ k8 ^4 Q+ R$ z
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
8 A" q% o& l$ J
S& d0 W3 f y! y" `) ]3 t3、Dos攻击或傀儡机
6 I1 C. C F5 N' P8 q$ ]4 F9 f' N3 O& Z5 B$ J' j
这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
3 K1 t6 I' @2 c. n& i' Q. z8 x& |% j7 O
4、提权
/ |6 S# Z# G6 F' m
; R* E! |. m/ q一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
3 [, F# g! z: [$ C
$ N5 V) {5 o2 d, O5、实现特殊效果9 c' K- `4 \+ [5 b
! j4 Y4 H* F- q
譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。1 n; `8 Q6 S! {. M/ k; n
1 R2 n. P8 N% J" G结论:8 t9 w: M7 [1 ?- d) V
) p( D8 E! c6 m从而你应该了解到这些网站应该具有的性质:
. o. C/ l; X, u8 [) u" J- s/ P& O C( |6 c$ a$ @" {6 K9 v$ }
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。- `7 t. e7 s7 j& |/ t
3 ^* v+ `* R+ J) o8 {9 ^如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
. Y! i5 J( m" v- O5 o9 p" P6 F8 _
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。5 a- d- w6 q3 Z* z2 s$ U4 V
8 d! {( ^) c: M) ^这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。) q6 A8 d! t: w9 t
8 e1 p6 Y+ _& W所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。
& V# G4 }; B4 f# F+ W7 k) }6 w6 i5 A; E
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。: W c/ s1 f/ O! {4 X9 h
|