XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。
& Y1 D0 j% ]; t# |
8 x$ t! O4 A% o2 C$ G5 @
- U; B B2 n. x- {' a/ |3 L" R大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
4 Y# D$ }8 l+ ?) e |
5 ~7 t1 h+ v6 T. \+ m其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
/ L6 M6 e/ C4 ?3 O/ ^
2 I2 b# K) Y: q
% E9 w$ Z" K( W" e/ ~1、针对性挂马5 K6 _6 c( s% C/ ^+ l
0 @4 H: M8 Q% ~! \* X
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。9 X, w5 A* a! x: {+ F$ N' R
" S, Q' t, q1 r; m而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。5 R3 l; j2 j9 H# N
L+ o' z- a5 m2 y7 v2、用户权限下操作
" c6 k, R0 q& a1 v/ r* p# M
( n1 G0 h- \9 f$ W; E/ E这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。# C7 u& r5 a) D5 m7 x
! |% F, U" i5 D. w3、Dos攻击或傀儡机1 _2 f5 s5 ?& _
8 I2 J$ M% k2 y) z q
这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
2 \4 D8 H- v. `: D& u
# A5 s2 I% J# S- r3 i4、提权
# {" @2 J9 \% U. L: h0 ]' b- J5 U" V8 t4 e
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。8 w$ G7 `4 @7 C9 x# p" W
) ~+ b1 Y. `- a5 H7 n/ m& s: C
5、实现特殊效果; G7 B. {) a" c5 c& m3 A' F
: i9 N% Z7 ? @2 t
譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
" M' }5 Z' X: z+ q
* N6 `8 g1 Q- _( E5 A结论:
- S+ p: _7 B0 S- C2 E! `' z% W7 Z2 M9 Y# e2 q$ K( K, r
从而你应该了解到这些网站应该具有的性质:' V2 m7 k$ z; M2 l3 y s* c
( m/ Q# R% W- @/ ^9 X. \* `$ X极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
8 ~1 v# C0 x: Q! ^7 P2 _4 l: g6 q) C
如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。/ q. g5 i( P4 f- A
( P3 J3 p2 Z" F" w& j# N( f其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
3 w' ]& D( z- x- k/ B- a. T. A, @" f4 o+ D. V2 c& b, \
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。
% m T5 O" N6 u1 n# {4 f S% b. D$ i7 |/ s
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。
- f! w; T7 b# ^( a j! q/ z2 h# N$ p3 o9 }! R* l& H- l
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。4 f0 {' m" m7 G% D' ?. ~' u
|