XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。2 p9 n4 h( d7 [* |! Z# I2 ?8 i2 z
" A, X4 o' m- y2 L
5 B9 T/ o" Y- n& a大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
( t1 X* ]( `& a9 u
# \8 p! ]3 t% b1 P其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
& q0 G1 y4 n0 O
! o0 W9 f; y$ R% |; L5 R6 s
6 B: M, m+ s( B, {1、针对性挂马
% Q- ?( }: b7 k2 I& P3 B% n2 j+ x! A) f J5 U: s8 z
所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。- J5 V; O( e: N+ S/ d! h" [
/ o4 w" Q; `' Z# X5 o而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
* z/ }% X2 g2 b9 n: L) i+ m/ B1 o' @4 C- {
2、用户权限下操作
8 T9 n! c1 L& f8 j; f" H4 {. c
) p/ _5 J: N, o0 P1 o: ^0 P这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。 ^* L6 G- W" u, L
/ R. ?1 N' o& ~4 e; |5 |( S2 H3、Dos攻击或傀儡机3 B3 o! c' S2 z. A$ C6 ~2 H* K
( Y& x7 `+ K" I, N9 O5 A' [; o这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。- M. o3 o# P. e% d
; K7 v7 _) p* `7 ~ O4、提权
: N5 w8 s7 V' d1 x, ~# i2 \" f D! M7 C6 J3 N Z' h
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
: _: @8 Q9 N# S; R) o* f3 j6 ]- u% _8 p; @7 \6 I9 \4 \: G- ^
5、实现特殊效果
8 Q8 G: q4 `' t
& L! w4 \7 s3 X- o# H譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
; ]. M3 i1 W1 d" Z* i N$ k. V& ~% h$ Y0 f9 |1 J
结论:
+ K3 Q3 q p* y/ `
! f m+ R# N: n9 K从而你应该了解到这些网站应该具有的性质:
& H: _0 @9 L! Y) ~9 N( {: N& z# C6 E3 q3 l4 I: E5 A
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。- X" ]/ Z; k- e# G* {) k) J
, c7 X* z" z4 @5 |: O/ w: ^! T1 J如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
# o9 }0 B* i) L2 k& s2 f% r+ W4 `: I8 n
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
; ?5 e; G' k& p5 f% b) o5 X* P3 Z3 [/ [, P6 {% e, Z' R* v
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。 i+ q& X2 Y% K0 `
) y8 l3 t6 L/ S7 V2 w5 e所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。, j' \5 J" x: `! L$ ]3 b
5 C5 P- Z( B B a0 _/ P5 I
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。
& r9 d, P9 x. s7 y. A4 r* d |