XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。+ I( \) C. ?6 |" B- c- j7 w& }) x
" w7 V. r5 T3 O# B C
( \2 {; Y. {0 {6 L" t大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
! K2 j9 ^2 N+ j + [6 U: D( n2 `, }% L. R9 p3 K
其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
* I0 o1 o: L0 s! P% W: J4 j. [$ q
: \. F0 ~2 C3 Y6 F6 ~& C g
; c+ ?" t r) x3 I1、针对性挂马
& Q# O9 p: [, Z4 Z& k7 t7 @9 x# w c
1 {& y7 r1 c, }2 V所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。
- _; \* w# @" G$ Q1 J" [' r+ F& z& S q
而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
/ y( B; L' n" _3 U" V
$ w+ \. j" N& R Q2 D2 {2、用户权限下操作
, R" D4 a) r( a* X& E2 w
- z9 k5 m; A4 I) p0 n( b这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
: J1 x% V2 t4 d L! d) B6 N
a' L- q6 A. e6 w3、Dos攻击或傀儡机& W& Z; H, E5 j
X a9 e% K' p% L3 t8 q" i这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。5 f* f* O. l* i& a9 A
, G! y' a' L% E; T* R- Z
4、提权
' E2 P3 m8 i' {: B3 l7 _2 ~ h4 H# i, S u2 W
一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
) {9 s, b, `7 B8 U3 B+ Z5 h
/ D! k( {1 C" G9 j+ K5、实现特殊效果
& i, S5 Z9 Z) k! P3 f( S7 v% v' v
, x2 b5 u$ U; W, J譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
& _. Z5 w/ K$ d8 n3 P( x$ R
# `+ A w( z) I% D" h结论:$ d0 r. Q% l4 s" I
# X& l+ a$ A2 h* Y2 f. K) x
从而你应该了解到这些网站应该具有的性质:/ ?: b. E. l+ H }# g" @
g& `& x+ f6 }& i: e, W; ~" O. j极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
* O9 Z& u( N. k9 W: @
( l. [( _2 a m( l# k r) x: A/ P如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。
9 M8 z3 H/ K7 f7 o3 k) b" Y# U: d! v" F; u+ m" [: l" m
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。8 R& \4 z4 x$ Z/ Y+ W. G; a$ i
9 Q2 s8 b% K, V( |# o
这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。: B) D. b$ e; d2 G
4 H! B* S" B8 e: }; O0 o所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。# g& P( R/ e' g6 p& @
6 }* E# w! R$ u2 o: g& D: B
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。
6 ^) n4 r8 ~9 P7 F4 y1 B. p |