XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。
2 I* s1 ^5 F! Z, w6 L8 Z$ A' z8 |! P- F, v, w( `4 s
2 N" y$ n8 }& l- O3 k" @ R大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。! q! ]7 ~. r: Z8 S; m' U, x
! q1 t& J) L5 k; X! n: v其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
% u% x" O1 R/ O# K$ U) r # H/ k; Q' A% D5 T7 ~" | f
$ R4 I3 v) b; l- @
1、针对性挂马0 L w1 R) i5 T: m0 ~0 H
/ W0 k$ p$ w0 `$ c, T- L) Q所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。$ p0 M1 U- V! I/ I" x9 L$ |6 ^9 v
/ V; L6 N( _4 z" \
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
5 R6 \, f4 r4 m9 p. M3 ?
. k. ~; Y! ^' d5 H% |3 T2、用户权限下操作
' T) }1 n$ T' n# L' S- P: c4 a9 T2 X6 Q4 ?3 g9 W
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。% a: p( L- M5 \0 v* }" S
# C0 z+ e* Q7 d; ~
3、Dos攻击或傀儡机9 B- w: l& M% }3 [
5 {' _+ N4 Z0 C这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。: U' ?7 w, \4 S/ N" N4 V4 c
; ~/ q6 ?, N! M" n: H% h4、提权
3 d- D, w, Q0 _' h, y8 M& K1 T2 A }& p7 ?
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
5 i. o" ]" G6 S# D$ R" s% |; f7 y4 `) _( {8 c3 s3 Y
5、实现特殊效果
. ^- |7 L& P. X' f! C" m% }# ^3 Y& E" J, X2 `( J$ L1 D" E- Z7 b
譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
" \' G; s( p& K- M/ P! }% e; Q' G: n2 `" m9 w7 K
结论:+ I% V4 B- c/ a' {6 R6 d
. g! {1 g* j$ `' B4 w4 V! j: M: ~从而你应该了解到这些网站应该具有的性质:7 H0 ^5 A# {, h: V! u
% ` \6 c" N1 R+ A7 ?) R极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
0 l0 a) S& Y1 m7 K; [$ m: ~3 L1 I8 V( x2 X" }8 H( p
如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
) P5 o( {9 V7 M3 i0 M( U4 g* e4 B+ O! l
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。, R$ |7 d3 j* q4 T
8 Z O/ @# u* E: P3 f
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。
' F1 ?# e$ X% r
6 o& _; z l$ ^所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。7 v; p; w9 \) W1 P
1 N3 v: P) _ o# Z7 Y
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。
1 I1 h# W6 b* _' ~: P |