XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。2 Y- X& { v; m+ Q
4 N- t0 b- V* \
8 _, T1 K: V" J大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。1 U p- E7 _% h
) e% H0 P9 Q/ @* C+ F! ^5 z
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点: - y$ R$ a0 P2 T- j
: T$ G0 g* j8 }) f
) j6 A3 w3 w$ x+ s# Q4 y
1、针对性挂马
8 D, d8 v; l4 _5 @' u% Y/ w" S
/ e% H' k. J7 y, l+ u( p所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。+ L8 [& |4 D. q
" I$ l# k5 r$ n9 I# ?
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
* z4 R+ X. W9 }# g: t P
' c8 b9 D# ^; X" m: U+ o3 V2、用户权限下操作' V4 J7 ~2 z5 I6 e* t% n
$ q% C+ @/ i7 m# w, g
这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
. u1 m3 b4 P5 Z' S
+ z J& [1 S8 l$ c; c3 R3、Dos攻击或傀儡机- g/ I) B5 Z4 E: B+ ]
4 k; J' m$ x6 q这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。
; E p6 O" t1 L) Y8 w/ i1 v4 J
% i" K" E$ k# K! ~4、提权$ }# y0 }1 p# F
7 C* |9 [* J* @一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
# O6 R) \0 }. ~! m
! X# `* @' R7 n5、实现特殊效果) S' Y" A% T( B d1 P
! @* {5 E2 r ]' I# A
譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
% W& }% M0 \: d5 v, Y0 T! i0 f2 W5 K
3 b7 a c# {$ N& X结论:
/ d9 Y! t; F6 b8 J, s9 g3 {. D4 D0 \$ |- e ?$ O
从而你应该了解到这些网站应该具有的性质:+ u& b% a4 \1 {$ ~9 W3 L9 U
, d7 V' w7 x9 x h6 c: ^
极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。& L, `2 B) G. A% E: X9 V0 k
- c) S, m Q$ m, J2 y" y- `
如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
! Z G% z5 m" _) D8 I# t5 x" ~9 T3 i [
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。
3 S' z' ~. V& B* P* \% ]. N; [ m, i) t9 J0 h
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。
+ x( e2 V p3 v. b2 g( X# r' ^- q! D. h- H0 l1 f$ p
所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。' E m, Q `, A" t n, I2 w# ~
8 L; J# X* q5 V( @ x& H; H
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。
7 h8 ?" d- c3 {+ Q, N |