XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。, z- G% J3 m! d
$ N; C. I2 W" I3 M6 c& T
1 {0 c3 ]3 c r( w
大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
" d, Y6 S7 G# K9 z / S0 H# y! W; o* h6 G8 T* ] y+ ^
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
: B7 ]$ F" o: Z( \" `9 y
5 g4 \, R7 g7 n# q0 q1 h: l$ Q0 O
8 d# b/ b- p4 J. r; z1、针对性挂马7 r( H% L* a0 c2 ]# e4 z
( O3 p& W, H. V8 B所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。. b6 {9 v5 f: H1 z$ l2 R$ w7 h5 }
; g1 k2 r" r. V2 R4 n8 l+ L5 C
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。3 Q0 c$ K6 P5 Q |# Q
! r5 g6 V, i6 k& ]7 m2、用户权限下操作/ i# M2 A0 B2 B5 e
0 b9 I5 K6 \, ?) d$ ^6 h1 w
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
: O4 Q+ G, h5 E {% p: t, D( m$ g! e% m6 z0 g
3、Dos攻击或傀儡机
/ G! z E4 j# m9 G) u
8 |, u2 M, e8 r( K& O d这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
% h0 q" P! {) o. c4 C& N C7 n) M* v: q. c9 _% k
4、提权8 Z3 l% G9 Q% L' P6 C3 u* F
I5 j; t. [0 `' `2 N. U一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。* o5 u+ {: R, v5 B9 S7 p$ @
8 M: e8 s! ?" j8 W7 B' ~5、实现特殊效果
2 @- N( Y5 V3 M. r# j2 ~$ B* }7 x
' U$ a) S$ Y% c; H: `* S" _7 Y譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
' `$ Y2 _% c! X7 a" x6 V
( B* h/ A5 W8 z4 N结论:6 u5 X0 R* w4 X" u0 y4 d! V& `
, \: P0 c& `6 w. K4 q5 U从而你应该了解到这些网站应该具有的性质:
9 ]5 x( D: ]& }+ A+ {7 r: ~- t& q1 s, m6 R
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
) ?5 {( B! \, R T' e# B& I
6 a, V- n% o4 A# Y$ S7 ]9 ?: ]如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。+ |( u. p3 F, v! j& L
" b* Z8 c% v7 W: O0 j/ t其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。) f/ \ A2 i/ ]6 _# G5 M
* O# Q& t8 j/ v6 p8 u* V9 o c这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。
6 [: q3 Y+ R F" y0 p7 l( p0 L. h0 Y6 _8 b& f' \
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。2 q4 y U& m" c0 a* ]8 y" l
( r/ M% S9 c* ?1 |5 j
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。! Z2 ^4 J# M+ s
|