XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。 ~8 `9 Z* Z3 @3 y
, Z: [: O: `( v. b3 b' ]
, L- u+ a* z1 ]) s0 q, G+ ~大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。& U, h$ [1 v% }% }, J
# i+ R7 h \% M其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点: . R9 f3 [% W" E+ u: Y
, @- u' |+ {5 q' d9 l. G
$ b1 W% o, ^: F0 y1 R) u- A1、针对性挂马
4 F- h n4 I' e. ]. p; |: h2 R0 W" V9 ~% E
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。: x1 ]; j9 z& |! H' U* W
' q x' Z- n' E; ?1 i% b% J而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。8 [4 v4 H: x# x$ Q3 @4 H
3 V- Q M9 p, O& i8 c" t! e. p8 `
2、用户权限下操作
2 p. D1 M0 q; N$ ]
1 W" r$ x6 ` u$ m2 u2 n这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
1 L* w8 k0 S' T9 v- @3 ^0 w
) H9 K7 E) m; h5 `/ E7 n+ o( {3、Dos攻击或傀儡机
) `# d ?3 U& x' O/ @' Y9 i5 B- ^- G3 ]2 q- Y _& d
这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
& g% V$ X0 ~$ h/ \1 E
b3 e& P7 t2 [- Z' C4、提权
; t: F* P% \$ H9 b) |% h O& P# D# b2 y6 G
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
( d% }" y' W! K; o( i$ C( e3 Z8 T" {* o' k
5、实现特殊效果
h6 v# O9 @. u
. G3 d. q* A( v& k6 X譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。' g( c3 s+ [3 ~
: k, a9 |/ C3 _! O Z' o结论:
0 L9 Z' c$ X9 D6 b2 y4 ~+ X' a u9 w2 r
从而你应该了解到这些网站应该具有的性质:
$ S' R0 a9 K' |' h! N/ K. C# C( K0 a1 I
1 y5 b. v6 b8 _6 `极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。* ~* x3 i( D# q, W8 A; _/ @$ O
7 W$ P$ S9 A) `! ?如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
! B2 r, f2 I" b7 R* e& B1 K# X9 L% x- _$ r- N
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
% C+ n" B: O. d& d. h! s, U
; p- [1 L9 R! q4 `8 O这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。
5 N! V8 ]8 K+ A# R. d$ o( z: [8 J; ?3 ~) n+ a/ U
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。9 {) h. x j: Q! w0 J
( h$ y- l9 |* C* B这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。5 q1 g3 E4 ~% \2 ~8 W
|