XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。/ v$ I* a, \1 C, m% e1 |3 u
# j6 [8 o7 w. Y1 j4 O 7 z) ]$ ]! [5 ]2 k- W
大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
* |- O8 k9 A' T3 p5 J8 {
4 d8 w, S+ q, f I( p其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
+ C* P( J9 U$ ~4 D" ^7 n. C
! U6 |# T2 ]5 P( T8 x% l
9 ?: m( r; f, ` O& ?1、针对性挂马* Z( M) T/ a W0 q" L9 a& N3 M
% a: `- L; s: E( h7 F# e
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。& h9 j2 B7 j" r7 v; A) ^* y3 {
$ O2 [; N4 n3 O/ @; _1 U* C( [! e, v而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
$ z. \# W! m- d' L- W. m9 R4 K; U ?: ^* I/ M' \
2、用户权限下操作
5 ?/ H4 Y+ C: u& P1 a1 U* M, C- o$ Q8 d
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。8 j( d& R& z" D0 T" {: D
9 r! ?3 F4 W) F2 m* j3、Dos攻击或傀儡机1 ?1 }5 Y1 V6 J0 C& Q% K: z4 S
: @+ L* M7 W I+ x# \- t这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
5 e1 k: x5 M% Y4 s7 `, P8 P7 a; b7 Z1 m' F. Z; I
4、提权
4 l4 d* r( _6 _4 ?) E! z
& j! V" v3 |% z7 @. E一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
7 X0 L6 R- w$ ]; |* g
; M; Y( T( S$ e9 C, V5、实现特殊效果. Y! x; M" Y: \9 h5 T% Q
( W( Q0 b0 h6 D& K* M4 k: u
譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
/ p( G3 D1 e' l0 B7 U! z8 h& _: ^& ~4 E5 l
结论:% B# f& y4 L r7 V" E
; n8 ^" c, z% h5 ?4 D
从而你应该了解到这些网站应该具有的性质:
- [' J; R) j0 N# n. Y' y; w0 F* T7 @* Y8 }* [: ~6 x: J* ^, \
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。3 E, w% L) q0 J5 B k3 y
7 R9 B6 E4 Z+ B# b0 {$ V! r如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。) B" U, h0 t# r& R2 w) d$ u/ W
- i6 O# `) d: o: |9 l* L. T! l7 r
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。/ p# D' l2 Q( x8 i
9 f p& v3 N; m! z* H& f. Q
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。0 d$ _3 E; j5 O6 i& |7 D
# j7 \% j/ X9 P9 k7 a, i
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。
% ^ |8 v) [4 M: a* B/ y% R* v" b
1 ~/ @: u/ ]" t8 A5 ?这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。
? |% W! b" x) z2 p4 @ M |