XSS高手们的那些XSS,大家都是可以拿出来做些什么的,这样的东西才能算得上漏洞。
7 R, P# q1 Z" ~9 G# j- e4 E
+ [9 r& O& ?" l7 s; J0 Y
3 I* P$ h. O; L) U+ M( \. y3 I大家经常看一些高手测试XSS漏洞都是alert一个窗口来。便以为XSS即是如此,当自己alert出窗口来,便说自己发现了漏洞。
$ v8 U* r; q: r6 y, N2 Z
3 _9 n" }) ], ~其实远没这么简单。你发现的只是程序员的一个小bug而已,远谈不上XSS。它们的关系如同系统漏洞与漏洞利用的关系,不可同日而语。你的系统是否出现过“****内存不能为read”?你是否知道它是溢出漏洞的一种表现呢?但想因此做出exploit远不是那么简单的事情,你能说自己发现了溢出漏洞了么?那么利用xss漏洞能做什么?应该有几点:
' M% Q- M5 _- O; h 0 g) @7 x" G8 Z+ k/ G( O5 ^
3 C+ |1 W- z# x5 k; x) o
1、针对性挂马
+ H* h& B2 R4 w! r0 ^0 r
; m0 `3 e7 V! a" k所以这类网站一定是游戏网站,银行网站或者是关于qq、taobao或者影响力相当大的网站等,它们必须有我们平常需要盗取的帐号密码;当然也或许是这个站点的浏览量相当高,我们能将更多的马挂出去。/ H5 ]$ _/ D- _0 _$ ]/ i+ v
: Q# F6 @2 B; x' N而如果仅仅是平平常常的一个小站点的XSS漏洞,如果我们要挂马,那么莫不如就直接把木马页面地址贴出去。
, g8 x" }6 y! o) o; H$ P* g. G# m
, {: u0 s0 W" V# d/ P$ T- o' u2、用户权限下操作8 S4 D7 I8 L% _
7 V( I" N* Z" ~" z, c* z' w这类网站则必须有会员了,而且这些会员有很多有意义的操作或者有我们需要的内部个人资料,所以我们可以通过XSS对已登录访问者进行有权限操作。我认为cookies的盗取应该算作这一项,因为其目的也是获取用户操作权限(盗密码包括在内),从而获取用户某些信息或者进行权限下的相关操作。
$ ]" r7 d$ r0 S; D, k5 I% Z/ z7 a M2 P
! Z+ k: |& D, W/ @/ i1 d3、Dos攻击或傀儡机4 z0 Y' u F( h
2 B+ d3 F* H7 X' t7 s6 l& m0 U1 ?这同样需要一个访问量非常大的站点,利用小站点莫不如我们自己攻击或获取信息。我们可以通过此页的访问用户不间断地攻击其他站点,或者进行局域网扫描等等。这类js工具早已经产生,js端口扫描、jikto、xssshell等等。5 [2 T- L0 K: ~) l0 ]! o3 B
& a* M& }1 x* q7 q- t! N
4、提权
m9 m( ? S! ~. @
# s6 P1 x/ X( l7 e: ^+ W8 k/ m- B一般这主要发生在论坛或信息管理系统,总之一定要有管理员了。这需要攻击者对目标系统相当熟悉(一般这样的系统需要开源代码),从而知道怎样构造语句进行提权。
& c/ q* f7 f2 _' o' ?( P) O! f, q$ k$ d* W0 R! I8 R
5、实现特殊效果
- T6 o- f4 o# z! R' `
$ A; C# t# _, [0 G7 A譬如在百度空间的插入视频,插入版块;譬如一些人在新浪博客或者校内网实现的特殊效果等等。
- @! v8 _) W$ ]1 q/ m$ x$ J& W5 W/ ?& o
结论:/ C& q+ {1 w# C6 [) u
$ t3 H6 E# v# D- w1 r6 `1 m: W
从而你应该了解到这些网站应该具有的性质:2 C4 ~, A( ` n; L* s$ m
) p' }. O6 R4 x9 b+ h$ o( v$ M极高的访问量,有会员,有管理员,有具有价值的帐号密码,或者有意义进行特殊效果的实现。
# G; T4 c3 A( x+ \* X3 }
/ `$ T: F4 p/ @/ Y; |3 r# n6 w- O w如果你读过《Ajax Hacking with XSS》,你应该知道XSS至少包含input XSS和textarea XSS等七种方式。 b/ H, H* [$ c! ]/ c% O, `+ }
# b: j9 u* \5 p+ `/ M# [
其中url XSS属于input XSS,这些漏洞大部分属于保留式的XSS,而textarea XSS等一般属于不保留XSS。4 b i* b, K# @: V
$ E6 I( ~. f T2 @/ g这意味着正常访问一个页面是不会触发保留式的XSS的,尽管这是大部分网站具有的漏洞,其中搜索部分又称搜索式XSS漏洞。3 ]8 p! [5 T( N
" a& Y2 b. S* h( x所以当你获取了一个input XSS,你仅仅alert出一个小框框。你跟别人大吹大擂,你发现了一个漏洞,并且你可以alert一个框框给他看,但是事实上你什么都做不了。即使你能挂些小木马,那也是很没意义的事情——因为你莫不如直接在自己的虚拟主机里做XSS页面发给别人。+ I5 P* e0 U2 ~3 a A2 ?/ Y% ^4 v4 i
4 q* B+ z M$ l3 D, O
这个跟sql注入不同,XSS毕竟是客户端的东西。sql注入的目的往往是为了得到目标系统的权限,并且sql语句本身执行的就是服务端的指令;但XSS一般却是为了获得客户端的东西,执行的也是客户端的指令。) q% l+ F, G# k# P* ]% Y
|