XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。
4 Y1 B; f# G0 G" ]$ X: u" E; e; ~+ W
, [$ m0 w5 y! i' N* [: B
大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
6 F6 j5 [8 h: N6 }: ~2 z
" C6 a1 }5 k7 g其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点: 8 Z& f: @' N8 s/ E3 h
$ B3 L9 X s9 c0 y$ M
8 v) x: I0 d4 c. w3 h7 G7 U1、针对性挂马; [+ y) |9 [' v/ S* ?
; u2 w+ i0 [2 X5 _3 |! R/ c
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。
/ i5 }% d3 ?+ U% r* p
+ Z2 l1 E8 j1 }而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
$ ]! E% T2 Z0 u; O# g! _" c: o
) }, T( C# `% B( v7 h2、用户权限下操作3 L% g9 b% r1 R( o5 U0 F; p7 _, h; c P
3 p, f- P, i. b/ H) T/ i, z这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。: J2 l8 w/ n+ o- r. _- I( A
) W& G" }& N* M, A" T: r
3、Dos攻击或傀儡机/ N' b) ]2 y& z. D% _
% s3 d# a0 Y7 U% k4 G0 }$ `
这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。( s, Q2 i o" [* z
, V- u3 R7 G5 d# q5 ?5 F& L4 ?$ M; O4、提权
$ U( U7 b/ {8 J* }6 c# @) [; e1 {! O. K8 U4 `
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。: J2 _3 J3 C$ s& ]+ r8 w( v0 `! G
% D5 Y, m: p* Q6 D J7 M; t5、实现特殊效果3 i- w+ s: \0 x; ^4 y8 U" ?
8 p2 j9 {" j) f) ~
譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
3 r5 G; H4 y2 C7 L/ i7 B. c- X( ?. A$ z* u. \- N7 }
结论:
) `1 A; z3 @/ U& t' x5 K N. V( ?( ~8 y# K8 N
从而你应该了解到这些网站应该具有的性质:+ B. C' F" \) Y
, ?9 H: x& M4 f
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
) a: O2 H+ W6 M2 P$ O; c9 T) W
# ^9 E+ q% F6 `如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。$ P* T, [, e' S2 U/ G- i5 o
) I* [7 [* }% s1 r其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。, F& l) ]+ U! i4 f E
. M; I3 }7 t, C& F. l: }2 O这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。
- u7 m Q8 x" W I L) _$ X; S) Y
; \0 p& }+ q: R$ R所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。
. a8 S. u% `* a
' l" c8 u; X6 g# ]8 G这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。: I4 e8 c6 o: Q2 I
|