XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。% d4 c s- ^) B+ f; T/ V
# h s# ^# W5 h" Q* Q( C
: L% o# m Y( p% m: x$ \大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
, I3 |" C, {5 M( t/ B Q! R
6 X# i. f, e' l, t. |其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点: $ f# q' h2 r2 I( x; J3 `# |
5 w W/ M& D* a4 ^ d! t# |
! W4 e1 t; `. w) v) b1、针对性挂马
9 x/ K# O9 V5 Z. g9 a
6 v, Q4 D+ s' y$ c% S* ~& J" S所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。
0 x( X7 _, X# Z# U# N U) s/ |$ Y6 w3 k; G* l
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
& Q3 N: \7 h9 ?/ s; g8 d+ i+ @' |1 z' E1 y
2、用户权限下操作7 K( _, |6 Z$ V6 r* o! v; Q
. c) M$ y. }* u( u, L
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
3 l$ t6 \$ N& L
, @+ z t: I: i8 J4 r T$ L3、Dos攻击或傀儡机
/ W. |/ ?4 Y0 g4 I. i
8 v+ z% O9 {/ o, G% N/ C( r+ \这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
% M7 E5 r9 }: a3 d" ?/ n: b* I+ n/ R+ q6 `( U% z/ W1 {4 l
4、提权( n/ ~8 O9 T% [2 ]" n
# Z+ C, l% }* F# o5 \2 S
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
# c& H2 b6 S- Y6 c" F3 f) i+ _7 [- f) K9 Z
5、实现特殊效果% H% ]3 l3 ^1 X5 d6 r; F% ^ z0 Y* y
, G( s2 C2 X* i. O譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。; P# o) V4 M1 I6 I) H2 J# v5 a
6 `/ L/ C5 H1 T8 q! W) h: ]! s) D结论:7 ~& Z. @% {7 i
( o8 [$ H3 p/ w: k从而你应该了解到这些网站应该具有的性质:
7 W) J e" _$ L" q0 e# R
6 t; l9 d& K" ~3 \+ m" U% F& b; x极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
, l3 S( K0 ]; [ {2 `! l2 A$ V3 Z; b" ?! j
如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。* B; ]! k3 _9 e: f# ^: V5 V4 [
" I* P w! |. h4 x' e其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
5 S1 |- C8 q* ~: \0 c% ~( m7 W& C! M, s- \, L
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。2 A5 r# o; |/ Q7 A
) B( @1 J+ ]# _/ U
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。* I4 W' {4 K9 u* u# W
6 d8 ]/ Y& H# N0 A. E( g
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。. [4 _- u8 e3 N2 _, A+ d2 u
|