XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。$ A( M- z" N0 `
* n# s1 [2 l* P/ \
# K0 ^1 r: E, J2 K0 T大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
* }7 \. N3 c+ p( |: D S$ P' H5 O/ u; O3 f$ A3 Z
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点: ! P( J. S" i$ m& t8 `
" J8 E# w J8 G% d! @, m
# M5 c# f5 S5 K1 j* }$ k1、针对性挂马# H/ C5 @9 e0 d o
5 l" K* F. {; s
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。. x$ N& o. l$ G( h& a# A2 D- S
, E5 U# K s# D. f5 o而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
" ]2 P& w5 C& F9 I- }- V. W |! ]2 v U
2、用户权限下操作
0 Y+ S9 {& @* B. S
: f& }2 n0 S5 |: y1 n6 N这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。 Z4 Y6 e/ t7 z( F+ ]( T
+ O2 H# S* y8 o0 n3、Dos攻击或傀儡机" F7 G" t5 h$ v" h7 Z# a5 c( x
, ?. j: _0 q5 M# {7 ~& s- r5 S这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。$ g3 R3 b6 c, r. ^/ h9 a
I2 b0 @: r0 T4、提权1 O8 V6 _) q. g3 O
# R7 s9 o& x' F0 s. A) k3 h
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。% n, @. v. a$ a, E! m
0 R* q7 w" Q5 `0 w2 E1 R% o5、实现特殊效果: Q3 _, X. {8 C+ I% n: V' `9 V) O
+ N; x: k9 `' Z* @4 |: }0 D" N" u9 v* P譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
9 u- w; x7 v6 @: A0 g7 D/ o! i; P7 L( x9 _# T+ ~* Z9 i
结论:
+ T! W6 H4 e ]/ @% I
7 f. L0 @' |/ a' K从而你应该了解到这些网站应该具有的性质:
* b* f% S. ?0 `& N
, F! v" ^" P1 v+ B, t极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
6 ?+ `; @' H% m6 p5 M* O
" N9 p$ Y7 ^- d9 v+ L如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
/ ^# l$ z( a4 C) g' [. T. K* s- S' x# }
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。1 d( T7 G1 u' s( f* l/ i
7 c4 B ]6 T! |% z! P/ q8 I
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。; y/ K. {* R, U8 e9 q
& n* N6 ^( \( C0 p
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。
2 O* H6 U/ n, V0 Y3 f: H. X5 G; I) y. d3 r, `) L t3 L0 m% n
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。! ]+ u/ Y! J6 M) t+ W0 s, E, d
|